hmfast.halos.profiles.Z07GalaxyHODProfile

class hmfast.halos.profiles.Z07GalaxyHODProfile(sigma_log10M=0.68, alpha_s=1.3, M1_prime=7413102413009.162, M_min=933254300796.9924, M0=0.0)[source]

Bases: GalaxyHODProfile

HOD profile from Zheng et al. (2007), generalized to match implementations such as Zehavi et al. (2011) and related extensions.

In this model, the real-space galaxy profile is written as

\[u_r(r, m, z) = \frac{1}{\bar{n}_g(z)} \left[N_{\mathrm{cen}}(m) + N_{\mathrm{sat}}(m) \, u_{\mathrm{sat}}(r, m, z)\right] \tag{1}\]

where \(u_{\mathrm{sat}}(r, m, z)\) is taken to be the NFW satellite profile. Central galaxies are naturally assumed to live at the halo center, so their real-space density profile is a Dirac delta function, while satellite galaxies are assumed to be randomly distributed according to an NFW-like radial profile.

The occupation functions are

\[N_{\mathrm{cen}}(m) = \frac{1}{2} \left[1 + \mathrm{erf}\left( \frac{\log_{10} m - \log_{10} M_{\mathrm{min}}}{\sigma_{\log_{10} M}} \right)\right] \tag{2}\]
\[N_{\mathrm{sat}}(m) = H(m - M_0) \, N_{\mathrm{cen}}(m) \, \left(\frac{m - M_0}{M_1'}\right)^{\alpha_s} \tag{3}\]

with the power-law term set to zero when \(m < M_0\).

The mean comoving galaxy number density is

\[\bar{n}_g(z) = \int d\ln M \, \frac{dn}{d\ln M}(M, z) \left[N_{\mathrm{cen}}(M) + N_{\mathrm{sat}}(M)\right] \tag{4}\]

where \(dn / d\ln M\) is the halo model’s halo mass function, and the large-scale galaxy bias is

\[b_g(z) = \frac{1}{\bar{n}_g(z)} \int d\ln M \, \frac{dn}{d\ln M}(M, z) \, b^{(1)}_h(M, z) \left[N_{\mathrm{cen}}(M) + N_{\mathrm{sat}}(M)\right] \tag{5}\]

Here \(b_h^{(1)}\) is the halo model’s first-order halo bias.

Attributes:
sigma_log10Mfloat

Scatter parameter \(\sigma_{\log_{10} M}\) controlling the width of the central-galaxy occupation threshold. Dimensionless.

alpha_sfloat

Power-law slope \(\alpha_s\) of the satellite occupation. Dimensionless.

M1_primefloat

Characteristic satellite mass scale \(M_1'\) entering the normalization of \(N_{\mathrm{sat}}\), in physical \(M_{\odot}\).

M_minfloat

Central-occupation threshold mass \(M_{\mathrm{min}}\), in physical \(M_{\odot}\).

M0float

Satellite cutoff mass \(M_0\) below which the satellite occupation vanishes, in physical \(M_{\odot}\).

Methods

fourier(halo_model, k, m, z)

Fourier-space galaxy HOD profile.

galaxy_bias(halo_model, m, z)

Large-scale galaxy bias at redshift z.

n_cen(halo_model, m)

Expected number of central galaxies in a halo of mass m.

n_sat(halo_model, m)

Expected number of satellite galaxies in a halo of mass m.

ng_bar(halo_model, m, z)

Comoving mean galaxy number density at redshift z.

real(halo_model, r, m, z)

Real-space galaxy HOD profile.

update([sigma_log10M, alpha_s, M1_prime, ...])

Return a new profile instance with updated HOD parameters.

update(sigma_log10M=None, alpha_s=None, M1_prime=None, M_min=None, M0=None)[source]

Return a new profile instance with updated HOD parameters.

Parameters:
sigma_log10M, alpha_s, M1_prime, M_min, M0float, optional

Replacement values for the corresponding class attributes. The mass parameters M1_prime, M_min, and M0 are specified in physical \(M_{\odot}\). Any argument left as None keeps its current value.

Returns:
Z07GalaxyHODProfile

New profile instance with updated parameters.

n_cen(halo_model, m)[source]

Expected number of central galaxies in a halo of mass m.

See Eq. (2) for the explicit form of \(N_{\mathrm{cen}}(m)\).

Parameters:
halo_modelHaloModel

The parent halo model instance.

marray-like

Halo mass in physical \(M_{\odot}\).

Returns:
n_cenarray-like

Expected number of central galaxies per halo.

n_sat(halo_model, m)[source]

Expected number of satellite galaxies in a halo of mass m.

See Eq. (3) for the explicit form of \(N_{\mathrm{sat}}(m)\).

Parameters:
halo_modelHaloModel

The parent halo model instance.

marray-like

Halo mass in physical \(M_{\odot}\).

Returns:
n_satarray-like

Expected number of satellite galaxies per halo.

ng_bar(halo_model, m, z)[source]

Comoving mean galaxy number density at redshift z.

See Eq. (4) for \(\bar{n}_g(z)\).

Parameters:
halo_modelHaloModel

The parent halo model instance.

marray-like

Halo mass grid in physical \(M_{\odot}\).

zarray-like

Redshift grid.

Returns:
ngarray-like

Mean galaxy number density as a function of redshift in comoving \(\mathrm{Mpc}^{-3}\), with shape \((N_z,)\), where singleton dimensions get squeezed before return.

galaxy_bias(halo_model, m, z)[source]

Large-scale galaxy bias at redshift z.

See Eq. (5) for \(b_g(z)\).

Parameters:
halo_modelHaloModel

The parent halo model instance.

marray-like

Halo mass grid in physical \(M_{\odot}\).

zarray-like

Redshift grid.

Returns:
biasarray-like

Large-scale galaxy bias as a function of redshift. Dimensionless, with shape \((N_z,)\), where singleton dimensions get squeezed before return.

real(halo_model, r, m, z)[source]

Real-space galaxy HOD profile.

This evaluates Eq. (1), with \(u_{\mathrm{sat}}\) identified with the NFW satellite profile.

Parameters:
halo_modelHaloModel

The parent halo model instance.

rfloat or jnp.ndarray

Radius or radii in \(\mathrm{Mpc}\).

mfloat or jnp.ndarray

Halo mass grid in physical \(M_{\odot}\).

zfloat or jnp.ndarray

Redshift grid.

Returns:
jnp.ndarray

Real-space profile with shape \((N_r, N_m, N_z)\), where singleton dimensions get squeezed before return.

fourier(halo_model, k, m, z)[source]

Fourier-space galaxy HOD profile.

This is the Fourier-space analogue of Eq. (1), with the satellite term traced by the NFW matter profile in Fourier space using the analytic Fourier transform of \(u_{\mathrm{sat}}\).

Parameters:
halo_modelHaloModel

The parent halo model instance.

karray-like

Wavenumber grid in \(\mathrm{Mpc}^{-1}\).

marray-like

Halo mass grid in physical \(M_{\odot}\).

zarray-like

Redshift grid.

Returns:
jnp.ndarray

Fourier-space profile with shape \((N_k, N_m, N_z)\), where singleton dimensions get squeezed before return.