pyccl.halos.profiles.hod module

class pyccl.halos.profiles.hod.HaloProfileHOD(self, *, mass_def, concentration, log10Mmin_0=12.0, log10Mmin_p=0.0, siglnM_0=0.4, siglnM_p=0.0, log10M0_0=7.0, log10M0_p=0.0, log10M1_0=13.3, log10M1_p=0.0, alpha_0=1.0, alpha_p=0.0, fc_0=1.0, fc_p=0.0, bg_0=1.0, bg_p=0.0, bmax_0=1.0, bmax_p=0.0, a_pivot=1.0, ns_independent=False, is_number_counts=True)[source]

Bases: HaloProfile

A generic halo occupation distribution (HOD) profile describing the number density of galaxies as a function of halo mass.

The parametrization for the mean profile is:

\[\langle n_g(r)|M,a\rangle = \bar{N}_c(M,a) \left[f_c(a)+\bar{N}_s(M,a) u_{\rm sat}(r|M,a)\right]\]

where \(\bar{N}_c\) and \(\bar{N}_s\) are the mean number of central and satellite galaxies respectively, \(f_c\) is the observed fraction of central galaxies, and \(u_{\rm sat}(r|M,a)\) is the distribution of satellites as a function of distance to the halo centre.

These quantities are parametrized as follows:

\[\bar{N}_c(M,a)=\frac{1}{2}\left[1+{\rm erf} \left(\frac{\log(M/M_{\rm min})}{\sigma_{{\rm ln}M}} \right)\right]\]
\[\bar{N}_s(M,a)=\Theta(M-M_0)\left(\frac{M-M_0}{M_1} \right)^\alpha\]
\[u_s(r|M,a)\propto\frac{\Theta(r_{\rm max}-r)} {(r/r_g)(1+r/r_g)^2}\]

Where \(\Theta(x)\) is the Heaviside step function, and the proportionality constant in the last equation is such that the volume integral of \(u_s\) is 1. The radius \(r_g\) is related to the NFW scale radius \(r_s\) through \(r_g=\beta_g\,r_s\), and the radius \(r_{\rm max}\) is related to the overdensity radius \(r_\Delta\) as \(r_{\rm max}=\beta_{\rm max}r_\Delta\). The scale radius is related to the comoving overdensity halo radius through the concentration-mass relation via \(r_\Delta(M) = c(M)\,r_s\).

All the quantities \(\log_{10}M_{\rm min}\), \(\log_{10}M_0\), \(\log_{10}M_1\), \(\sigma_{{\rm ln}M}\), \(f_c\), \(\alpha\), \(\beta_g\) and \(\beta_{\rm max}\) are time-dependent via a linear expansion around a pivot scale factor \(a_*\) with an offset and a tilt parameter (\(X_0\) and \(X_p\), respectively):

\[X(a) = X_0 + X_p\,(a-a_*).\]

This definition of the HOD profile draws from several papers in the literature, including: Zheng et al. 2005, Ando et al. 2018, and Nicola et al. 2020. The default values used here are roughly compatible with those found in the latter paper.

Warning

Note that \(\sigma_{{\rm ln}M}\) is defined so that all logarithms of mass entering the definition of \(\bar{N}_c(M,a)\) are natural logarithms, and not decimal. This is different from the convention used in some of the papers above, which used \(\log_{10}\).

See Profile2ptHOD for a description of the Fourier-space two-point correlator of the HOD profile.

Parameters:
  • mass_def (MassDef or str) – a mass definition object, or a name string.

  • concentration (Concentration) – concentration-mass relation to use with this profile.

  • log10Mmin_0 (float) – offset parameter for \(\log_{10}M_{\rm min}\).

  • log10Mmin_p (float) – tilt parameter for \(\log_{10}M_{\rm min}\).

  • siglnM_0 (float) – offset parameter for \(\sigma_{{\rm ln}M}\).

  • siglnM_p (float) – tilt parameter for \(\sigma_{{\rm ln}M}\).

  • log10M0_0 (float) – offset parameter for \(\log_{10}M_0\).

  • log10M0_p (float) – tilt parameter for \(\log_{10}M_0\).

  • log10M1_0 (float) – offset parameter for \(\log_{10}M_1\).

  • log10M1_p (float) – tilt parameter for \(\log_{10}M_1\).

  • alpha_0 (float) – offset parameter for \(\alpha\).

  • alpha_p (float) – tilt parameter for \(\alpha\).

  • fc_0 (float) – offset parameter for \(f_c\).

  • fc_p (float) – tilt parameter for \(f_c\).

  • bg_0 (float) – offset parameter for \(\beta_g\).

  • bg_p (float) – tilt parameter for \(\beta_g\).

  • bmax_0 (float) – offset parameter for \(\beta_{\rm max}\).

  • bmax_p (float) – tilt parameter for \(\beta_{\rm max}\).

  • a_pivot (float) – pivot scale factor \(a_*\).

  • ns_independent (bool) – drop requirement to only form satellites when centrals are present.

  • is_number_counts (bool) – set to True if this profile is meant to represent galaxy overdensity.

update_parameters(*, log10Mmin_0=None, log10Mmin_p=None, siglnM_0=None, siglnM_p=None, log10M0_0=None, log10M0_p=None, log10M1_0=None, log10M1_p=None, alpha_0=None, alpha_p=None, fc_0=None, fc_p=None, bg_0=None, bg_p=None, bmax_0=None, bmax_p=None, a_pivot=None, ns_independent=None)[source]

Update any of the parameters associated with this profile. Any parameter set to None won’t be updated.

Parameters:
  • log10Mmin_0 (float) – offset parameter for \(\log_{10}M_{\rm min}\).

  • log10Mmin_p (float) – tilt parameter for \(\log_{10}M_{\rm min}\).

  • siglnM_0 (float) – offset parameter for \(\sigma_{{\rm ln}M}\).

  • siglnM_p (float) – tilt parameter for \(\sigma_{{\rm ln}M}\).

  • log10M0_0 (float) – offset parameter for \(\log_{10}M_0\).

  • log10M0_p (float) – tilt parameter for \(\log_{10}M_0\).

  • log10M1_0 (float) – offset parameter for \(\log_{10}M_1\).

  • log10M1_p (float) – tilt parameter for \(\log_{10}M_1\).

  • alpha_0 (float) – offset parameter for \(\alpha\).

  • alpha_p (float) – tilt parameter for \(\alpha\).

  • fc_0 (float) – offset parameter for \(f_c\).

  • fc_p (float) – tilt parameter for \(f_c\).

  • bg_0 (float) – offset parameter for \(\beta_g\).

  • bg_p (float) – tilt parameter for \(\beta_g\).

  • bmax_0 (float) – offset parameter for \(\beta_{\rm max}\).

  • bmax_p (float) – tilt parameter for \(\beta_{\rm max}\).

  • a_pivot (float) – pivot scale factor \(a_*\).

  • ns_independent (bool) – drop requirement to only form satellites when centrals are present

get_normalization(cosmo, a, *, hmc)[source]

Returns the normalization of this profile, which is the mean galaxy number density.

Parameters:
Returns:

normalization factor of this profile.

Return type:

float