clenspy.kernels.limber.LimberProjector

class clenspy.kernels.limber.LimberProjector(*, chi, pk_lin, rho_mean0, q_sigma, mean_sigma_crit, f_src_behind, sigma_gamma, n_src_arcmin2, n_ell=8000, ell_range=(0.1, 20000000.0))[source]

Bases: object

Wu et al. (2019) angular power spectra on a shared log-\(\ell\) grid.

NOTE: units and approximations are the module’s – h-free absolute, Limber with \(\ell + 1/2\), thin lens bin.

Every input is a plain callable, so a live clenspy object and a frozen snapshot table drive it identically.

Parameters:
  • chi (callable) – Comoving distance \(\chi(z)\) [Mpc].

  • pk_lin (callable) – Linear matter power \(P_{\rm lin}(k, z)\) [Mpc^3], vectorised in k.

  • rho_mean0 (float) – Comoving mean matter density \(\bar\rho\) [Msun/Mpc^3]. The \(\bar\rho\) of eq. F_Sigma; comoving, so no \(z\).

  • q_sigma (callable) – \(q_\Sigma(z_{\rm lss}, z_h)\), so that \(F_\Sigma = \bar\rho\, q_\Sigma\) – see the module NOTE.

  • mean_sigma_crit (callable) – \(\langle\Sigma_{\rm crit}\rangle(z_h)\) [Msun/Mpc^2], unnormalised (LensingKernel.mean_sigma_crit). Called with min_separation= if it accepts it; see shape_noise_Sigma.

  • f_src_behind (callable) – Fraction of sources behind \(z_h\), same calling rule. See the module’s note on the one deviation from the paper.

  • sigma_gamma (float) – Per-galaxy shape noise.

  • n_src_arcmin2 (float) – Source surface density [arcmin^-2].

  • n_ell (int, optional) – Points on the \(\ell\) grid (default N_ELL_DEFAULT).

  • ell_range (tuple of float, optional) – \(\ell\) extent (default ELL_RANGE_DEFAULT); see the note there for why.

__init__(*, chi, pk_lin, rho_mean0, q_sigma, mean_sigma_crit, f_src_behind, sigma_gamma, n_src_arcmin2, n_ell=8000, ell_range=(0.1, 20000000.0))[source]
Parameters:
Return type:

None

Methods

C_ell_SS(z_lss_min, z_lss_max, z_halo)

\(C_\ell^{\Sigma\Sigma}(z_h)\) [(Msun/Mpc^2)^2], eq.

C_ell_hS(z_min, z_max, bias, z_halo[, pk_hm])

\(C_\ell^{\rm h\Sigma}\) [Msun/Mpc^2], eq.

C_ell_hh(z_min, z_max, bias[, pk_hh])

\(C_\ell^{\rm hh}\) (dimensionless), eq.

F_Sigma(z_mid, z_halo)

\(F_\Sigma(\chi_{\rm lss}, \chi_h) = \bar\rho\, q_\Sigma(z_{\rm lss}, z_h)\) (eq.

F_h(chi_mid, volume)

\(F_{\rm h}(\chi_h) = \chi_h^2 / V\) (eq.

__init__(*, chi, pk_lin, rho_mean0, q_sigma, ...)

c_ell_h(z_min, z_max, bias, counts, area_sr)

Deprecated alias returning (C_ell_hh, shot_noise_h).

c_ell_h_sigma(z_min, z_max, bias, z_h[, pk_hm])

Deprecated alias for C_ell_hS.

c_ell_sigma(zl_min, zl_max, z_h)

Deprecated alias for C_ell_SS.

shape_noise_Sigma(z_halo)

Shape noise on \(\Sigma\) [(Msun/Mpc^2)^2], eq.

shape_noise_sigma(z_h)

Deprecated alias for shape_noise_Sigma.

shot_noise_h(counts, area_sr)

Halo shot noise \(1/n_{\rm h}^{(2D)}\) [sr], eq.

static F_h(chi_mid, volume)[source]

\(F_{\rm h}(\chi_h) = \chi_h^2 / V\) (eq. F_h).

The halo-sample window: a normalised comoving-volume weight, so it carries units of 1/Mpc and \(C_\ell^{\rm hh}\) comes out dimensionless.

F_Sigma(z_mid, z_halo)[source]

\(F_\Sigma(\chi_{\rm lss}, \chi_h) = \bar\rho\, q_\Sigma(z_{\rm lss}, z_h)\) (eq. F_Sigma).

NOTE: the identification with \(q_\Sigma\) is exact, not an approximation – the paper’s \(\int_{\chi_{\rm lss}}^\infty d\chi_s\, p_{\rm src}\,\Sigma_{\rm crit}(z_s,z_h) / \Sigma_{\rm crit}(z_s,z_{\rm lss})\) is LensingKernel.q_sigma. Units: Msun/Mpc^3.

C_ell_SS(z_lss_min, z_lss_max, z_halo)[source]

\(C_\ell^{\Sigma\Sigma}(z_h)\) [(Msun/Mpc^2)^2], eq. clSS.

\[C_\ell^{\Sigma\Sigma} = \int_0^\infty \!\! d\chi_{\rm lss} \left(\frac{F_\Sigma}{\chi_{\rm lss}}\right)^2 P_{\rm mm}\!\left(k=\frac{\ell+1/2}{\chi_{\rm lss}}\right)\]

NOTE: the paper integrates over all line-of-sight structure, \(0\) to \(\infty\). Here the range is an argument, because \(q_\Sigma\) vanishes once no sources lie behind \(z_{\rm lss}\) and the caller knows where that is – the covariance uses \([0.1, \min(2, z_s^{\max} - 0.1)]\). Truncating it is the caller’s stated approximation, not a hidden one.

C_ell_hh(z_min, z_max, bias, pk_hh=None)[source]

\(C_\ell^{\rm hh}\) (dimensionless), eq. clhh.

\[C_\ell^{\rm hh} = \int_{\chi_{\min}}^{\chi_{\max}} \!\! d\chi_h \left(\frac{F_{\rm h}}{\chi_h}\right)^2 P_{\rm hh}\!\left(k=\frac{\ell+1/2}{\chi_h}\right)\]
Parameters:
  • z_min (float) – The cluster redshift bin.

  • z_max (float) – The cluster redshift bin.

  • bias (float) – Linear halo bias, used only for the default \(P_{\rm hh} = b^2 P_{\rm lin}\) (the paper’s choice, with the Tinker et al. 2010 bias).

  • pk_hh (callable, optional) – Full \(P_{\rm hh}(k, z)\), overriding the linear-bias form.

C_ell_hS(z_min, z_max, bias, z_halo, pk_hm=None)[source]

\(C_\ell^{\rm h\Sigma}\) [Msun/Mpc^2], eq. clhS.

\[C_\ell^{\rm h\Sigma} = \int_{\chi_{\min}}^{\chi_{\max}} \!\! d\chi \left(\frac{F_{\rm h}}{\chi}\right) \left(\frac{F_\Sigma}{\chi}\right) P_{\rm hm}\!\left(k=\frac{\ell+1/2}{\chi}\right)\]

NOTE: integrated over the halo bin, where the two fields overlap – not over all LSS as \(C_\ell^{\Sigma\Sigma}\) is.

Parameters:

pk_hm (callable, optional) – Full \(P_{\rm hm}(k, z)\). The paper uses the halo model: two-halo (\(b P_{\rm lin}\)) plus a one-halo NFW term. The default here is the two-halo part only, \(b P_{\rm lin}\), so pass pk_hm for the paper’s full form.

static shot_noise_h(counts, area_sr)[source]

Halo shot noise \(1/n_{\rm h}^{(2D)}\) [sr], eq. cov_DS.

\(n_{\rm h}^{(2D)}\) is the halo surface density per steradian, so this is area_sr / counts. It adds to \(C_\ell^{\rm hh}\), which is why both are dimensionless.

shape_noise_Sigma(z_halo)[source]

Shape noise on \(\Sigma\) [(Msun/Mpc^2)^2], eq. cov_DS.

\[N^{\Sigma} = \frac{\sigma_\gamma^2}{n_{\rm s}^{(2D)} f_{\rm src}(z_h)} \left[\frac{\langle\Sigma_{\rm crit}\rangle(z_h)} {f_{\rm src}(z_h)}\right]^2\]

where \(\langle\Sigma_{\rm crit}\rangle\) is the unnormalised integral of LensingKernel.mean_sigma_crit, so the bracket is the conditional average over sources behind the lens. Both integrals start at \(z_h + 0.1\) (MIN_LENS_SOURCE_SEPARATION_NOISE). This is the convention of cluster-lensing-cov cddbb2a.

NOTE: the cut is passed as min_separation= to the mean_sigma_crit and f_src_behind callables when they accept it (a LensingKernel method does). A plain callable of \(z\) alone is used as given and must already carry the cut it wants.

NOTE: the \(f_{\rm src}\) in the denominator is the one deviation from the paper – see the module NOTE. Passing f_src_behind=lambda z: 1.0 gives the paper’s form.

c_ell_sigma(zl_min, zl_max, z_h)[source]

Deprecated alias for C_ell_SS.

c_ell_h(z_min, z_max, bias, counts, area_sr, pk_hh=None)[source]

Deprecated alias returning (C_ell_hh, shot_noise_h).

Parameters:

pk_hh (Callable | None)

c_ell_h_sigma(z_min, z_max, bias, z_h, pk_hm=None)[source]

Deprecated alias for C_ell_hS.

Parameters:

pk_hm (Callable | None)

shape_noise_sigma(z_h)[source]

Deprecated alias for shape_noise_Sigma.