hmfast.halos.profiles.M21CIBProfile

class hmfast.halos.profiles.M21CIBProfile(nu, eta_max=0.4028, z_c=1.5, tau=1.204, f_sub=0.134, M_min=316227766016.83795, M_eff=3981071705534.969, sigma2_LM=0.5, s_nu=None)[source]

Bases: CIBProfile

CIB profile from Maniyar et al. (2021).

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

\[u_\nu(r, M, z) = \frac{1}{4\pi} \left[L_\nu^{\mathrm{cen}}(M, z) + L_\nu^{\mathrm{sat}}(M, z) \, u_m(r, M, z)\right] \tag{1}\]

where \(u_m(r, M, z)\) is the normalized real-space NFW matter profile. Central galaxies are assumed to sit at the halo center, while the satellite contribution traces the NFW matter profile in real space.

The central and satellite luminosities are

\[L_\nu^{\mathrm{cen}}(M, z) = N_{\mathrm{cen}}(M) \, L_\nu^{\mathrm{gal}}\!\left(M(1-f_{\mathrm{sub}}), z\right) \tag{2}\]
\[L_\nu^{\mathrm{sat}}(M, z) = \int d\ln m_s \, \frac{dN}{d\ln m_s}(m_s \mid M) \, \min\!\left[ L_\nu^{\mathrm{gal}}(m_s, z), L_\nu^{\mathrm{gal}}\!\left(M_{\max}, z\right) \frac{m_s}{M_{\max}} \right] \tag{3}\]

where \(M_{\max} = M(1-f_{\mathrm{sub}})\) and \(N_{\mathrm{cen}}(M) = 1\) for \(M(1-f_{\mathrm{sub}}) > M_{\min}\) and zero otherwise.

The galaxy luminosity is

\[L_\nu^{\mathrm{gal}}(M, z) = 4\pi \, S_\nu(z, \nu) \, \mathrm{SFR}(M, z) \tag{4}\]

where

\[\mathrm{SFR}(M, z) = 10^{10} \, f_b \, \dot{M}(M, z) \, \mathrm{SFR}_c(M, z) \tag{5}\]
\[\mathrm{SFR}_c(M, z) = \eta_{\max} \exp\left[ -\frac{\left(\ln M - \ln M_{\mathrm{eff}}\right)^2} {2 \, \sigma_{\ln M}^2(M, z)} \right] \tag{6}\]
\[\sigma_{\ln M}^2(M, z) = \left[ \sigma_{\ln M}^{\star} - H\!\left(M_{\mathrm{eff}} - M\right) \, \tau \, \max\left[0, z_c - z\right] \right]^2 \tag{7}\]
\[\dot{M}(M, z) = 46.1 \, (1 + 1.11 z) \, E(z) \left(\frac{M}{10^{12} M_{\odot}}\right)^{1.1} \tag{8}\]

where \(f_b = \Omega_b / \Omega_{m,0}\) and \(E(z) = H(z) / H_0\).

The mean emissivity \(\bar{j}_\nu(z)\) and the monopole intensity \(I_\nu\) are given, respectively, by

\[\bar{j}_\nu(z) = (1+z) \, \chi^2(z) \, \frac{h^3}{4 \pi} \int d\ln M \, \frac{dn}{d\ln M}(M, z) \left[L_\nu^{\mathrm{cen}}(M, z) + L_\nu^{\mathrm{sat}}(M, z)\right] \tag{9}\]
\[I_\nu = \int dz \, \frac{d\chi}{dz} \, a(z) \, \bar{j}_\nu(z) \tag{10}\]
Attributes:
nufloat

Observed frequency \(\nu\) in GHz.

eta_maxfloat

Dimensionless maximum star-formation efficiency \(\eta_{\max}\).

z_cfloat

Dimensionless redshift pivot \(z_c\) controlling the time-dependent width term.

taufloat

Dimensionless width-evolution parameter \(\tau\).

f_subfloat

Dimensionless subhalo luminosity fraction \(f_{\mathrm{sub}}\).

M_minfloat

Minimum halo mass \(M_{\min}\) contributing to the emissivity in physical \(M_\odot\).

M_efffloat

Characteristic mass \(M_{\mathrm{eff}}\) of peak star-formation efficiency in physical \(M_\odot\).

sigma2_LMfloat

Dimensionless variance parameter \(\sigma_{LM}^2\) entering the efficiency model.

s_nutuple

Tabulated spectral template \((z, \nu, S_\nu)\) used to interpolate \(S_\nu(z, \nu)\), with redshift grid \(z\) dimensionless, frequency grid \(\nu\) in GHz, and template values \(S_\nu\) in the luminosity-per-SFR units assumed by the Maniyar model. If not provided, it is read from the default auxiliary data files.

Methods

fourier(halo_model, k, m, z)

Compute the CIB profile in Fourier space.

l_cen(halo_model, m, z)

Compute the central-galaxy CIB luminosity.

l_gal(halo_model, m, z)

Compute the galaxy luminosity assigned to a halo.

l_sat(halo_model, m, z)

Compute the total satellite CIB luminosity.

mean_emissivity(halo_model, z)

Compute the mean emissivity.

mean_intensity(halo_model, z)

Compute the CIB mean intensity (monopole).

real(halo_model, r, m, z)

Compute the CIB profile in real space.

update([nu, eta_max, z_c, tau, f_sub, ...])

Return a new profile instance with updated CIB parameters.

update(nu=None, eta_max=None, z_c=None, tau=None, f_sub=None, M_min=None, M_eff=None, sigma2_LM=None)[source]

Return a new profile instance with updated CIB parameters.

Parameters:
nu, eta_max, z_c, tau, f_sub, M_min, M_eff, sigma2_LMfloat, optional

Replacement values for the corresponding class attributes. Any argument left as None keeps its current value.

Returns:
M21CIBProfile

New profile instance with updated parameters.

l_gal(halo_model, m, z)[source]

Compute the galaxy luminosity assigned to a halo.

Parameters:
halo_modelHaloModel

Halo model. Included for interface consistency.

mfloat or jnp.ndarray

Halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

Galaxy luminosity \(L_\nu^{\mathrm{gal}}(M, z)\) with shape \((N_m, N_z)\), where singleton dimensions get squeezed before return.

l_sat(halo_model, m, z)[source]

Compute the total satellite CIB luminosity.

Parameters:
halo_modelHaloModel

Halo model providing the subhalo mass function.

mfloat or jnp.ndarray

Host halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

Satellite luminosity \(L_\nu^{\mathrm{sat}}(M, z)\) with shape \((N_m, N_z)\), where singleton dimensions get squeezed before return.

l_cen(halo_model, m, z)[source]

Compute the central-galaxy CIB luminosity.

Parameters:
halo_modelHaloModel

Halo model. Included for interface consistency.

mfloat or jnp.ndarray

Halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

Central luminosity \(L_\nu^{\mathrm{cen}}(M, z)\) with shape \((N_m, N_z)\), where singleton dimensions get squeezed before return.

mean_emissivity(halo_model, z)[source]

Compute the mean emissivity.

Parameters:
halo_modelHaloModel

Halo model providing the cosmology and halo mass function.

zfloat or jnp.ndarray

Redshift grid.

Returns:
jnp.ndarray

Mean emissivity \(\bar{j}_\nu(z)\) in \(\mathrm{Jy}\,\mathrm{Mpc}^{-1}\,\mathrm{sr}^{-1}\) with shape \((N_z,)\), where singleton dimensions get squeezed before return.

mean_intensity(halo_model, z)[source]

Compute the CIB mean intensity (monopole).

Parameters:
halo_modelHaloModel

Halo model providing the cosmology.

zfloat or jnp.ndarray

Redshift grid.

Returns:
float or jnp.ndarray

Mean intensity \(I_\nu\) in \(\mathrm{Jy}\,\mathrm{sr}^{-1}\) as a scalar with shape \(()\), where singleton dimensions get squeezed before return.

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

Compute the CIB profile in real space.

Parameters:
halo_modelHaloModel

Halo model providing the matter profile and CIB luminosities.

rfloat or jnp.ndarray

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

mfloat or jnp.ndarray

Halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

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

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

Compute the CIB profile in Fourier space.

Parameters:
halo_modelHaloModel

Halo model providing the matter profile and CIB luminosities.

kfloat or jnp.ndarray

Comoving wavenumber(s) in \(\mathrm{Mpc}^{-1}\).

mfloat or jnp.ndarray

Halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

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