hmfast.halos.profiles.S12CIBProfile
- class hmfast.halos.profiles.S12CIBProfile(nu, L0=6.4e-08, alpha=0.36, beta=1.75, gamma=1.7, T0=24.4, M_eff=3981071705534.969, sigma2_LM=0.5, delta=3.6, z_p=1e+100, M_min=316227766016.83795)[source]
Bases:
CIBProfileCIB profile from Shang et al. (2012).
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 live at the halo center, so their real-space profile is a Dirac delta function, while satellite galaxies are assumed to trace the NFW matter profile.
The central and satellite luminosities are
\[L_\nu^{\mathrm{cen}}(M, z) = N_{\mathrm{cen}}(M) \, L_\nu^{\mathrm{gal}}(M, z) \tag{2}\]\[L_\nu^{\mathrm{sat}}(M, z) = \int d\ln m_s \, \frac{dN}{d\ln m_s}(m_s \mid M) \, L_\nu^{\mathrm{gal}}(m_s, z) \tag{3}\]where \(N_{\mathrm{cen}}(M) = 1\) for \(M > M_{\min}\) and zero otherwise.
The galaxy luminosity is
\[L_\nu^{\mathrm{gal}}(M, z) = L_0 \, \Phi(z) \, \Sigma(M) \, \Theta\!\left((1+z)\nu, z\right) \tag{4}\]where
\[\Sigma(M) = \frac{M}{\sqrt{2 \pi \, \sigma_{LM}^2}} \exp\left[ -\frac{\left(\log_{10} M - \log_{10} M_{\mathrm{eff}}\right)^2} {2 \sigma_{LM}^2} \right]\]\[\Phi(z) = \begin{cases} (1 + z)^{\delta}, & z < z_p, \ 1, & z \ge z_p, \end{cases} \tag{6}\]\[\Theta(\nu, z) = \begin{cases} \left(\nu / \nu_0\right)^{-\gamma}, & \nu \ge \nu_0, \ \left(\nu / \nu_0\right)^{\beta} \dfrac{B_\nu(\nu, T_d)}{B_\nu(\nu_0, T_d)}, & \nu < \nu_0, \end{cases} \tag{7}\]with \(T_d(z) = T_0 (1 + z)^{\alpha}\) and \(B_\nu(\nu, T)\) the Planck blackbody function. In the implementation, the observed frequency \(\nu\) is stored in GHz, so the SED is evaluated at the rest-frame frequency \((1+z)\nu\).
The mean emissivity \(\bar{j}_\nu(z)\) and the monopole intensity \(I_\nu\) are given, respectively, by
\[\bar{j}_\nu(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{8}\]\[I_\nu = \int dz \, \frac{d\chi}{dz} \, a(z) \, \bar{j}_\nu(z) \tag{9}\]- Attributes:
- nufloat
Observed frequency \(\nu\) in GHz.
- L0float
Luminosity normalization \(L_0\) in \(\mathrm{Jy}\,\mathrm{Mpc}^2 / M_\odot\).
- alphafloat
Dimensionless redshift scaling exponent \(\alpha\) of the dust temperature.
- betafloat
Dimensionless low-frequency spectral slope \(\beta\) of the SED.
- gammafloat
Dimensionless high-frequency spectral slope \(\gamma\) of the SED.
- T0float
Dust temperature normalization \(T_0\) at \(z = 0\) in Kelvin.
- M_efffloat
Characteristic halo mass \(M_{\mathrm{eff}}\) of peak emissivity in physical \(M_\odot\).
- sigma2_LMfloat
Dimensionless log-normal variance \(\sigma_{LM}^2\) entering \(\Sigma(M)\).
- deltafloat
Dimensionless redshift evolution exponent \(\delta\) in \(\Phi(z)\).
- z_pfloat
Dimensionless pivot redshift \(z_p\) above which \(\Phi(z)\) saturates.
- M_minfloat
Minimum halo mass \(M_{\min}\) entering the central and satellite terms in physical \(M_\odot\).
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, m, z)Compute the mean emissivity.
monopole(halo_model, m, z)Compute the CIB monopole intensity.
real(halo_model, r, m, z)Compute the CIB profile in real space.
update([nu, L0, alpha, beta, gamma, T0, ...])Return a new profile instance with updated Shang CIB parameters.
- update(nu=None, L0=None, alpha=None, beta=None, gamma=None, T0=None, M_eff=None, sigma2_LM=None, delta=None, z_p=None, M_min=None)[source]
Return a new profile instance with updated Shang CIB parameters.
- Parameters:
- nu, L0, alpha, beta, gamma, T0, M_eff, sigma2_LM, delta, z_p, M_minfloat, optional
Replacement values for the corresponding class attributes. Any argument left as
Nonekeeps its current value.
- Returns:
- S12CIBProfile
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, m, z)[source]
Compute the mean emissivity.
- Parameters:
- halo_modelHaloModel
Halo model providing the cosmology and halo mass function.
- mfloat or jnp.ndarray
Halo mass grid in physical \(M_\odot\).
- zfloat or jnp.ndarray
Redshift grid.
- Returns:
- jnp.ndarray
Mean emissivity \(\bar{j}_\nu(z)\) with shape \((N_z,)\), where singleton dimensions get squeezed before return.
- monopole(halo_model, m, z)[source]
Compute the CIB monopole intensity.
- Parameters:
- halo_modelHaloModel
Halo model providing the cosmology.
- mfloat or jnp.ndarray
Halo mass grid.
- zfloat or jnp.ndarray
Redshift grid.
- Returns:
- float or jnp.ndarray
Monopole intensity \(I_\nu\) 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.