halomod.halo_exclusion.NoExclusion

class halomod.halo_exclusion.NoExclusion(m: ndarray, density: ndarray, power_integrand: ndarray, bias: ndarray, r: ndarray, halo_density: float, xmin: float | None = None)[source]

Bases: Exclusion

A model where there’s no halo exclusion.

property density_mod

The modified integrated density with halo exclusion.

Calculated in the matter case by

\[\bar{n}^{-1} \sqrt{\int_0^{m'_1} \int_0^{m'_2} n(m_1) m_1 n(m_2) m_2 dm_1 dm_2},\]

and in the tracer case by replacing n(m).m with n(m) N(m).

See Eq. 47 of https://arxiv.org/pdf/2009.14066.

The array is a vector of length r.

classmethod get_models() dict[str, type]

Get a dictionary of all implemented models for this component.

integrate() ndarray[source]

Integrate the raw_integrand() over mass.

Returns:

An array of shape (1, k) when bias is 1D (no r-dependence), or (r, k) when bias is 2D, to be multiplied by P_m(k) to obtain the 2-halo power spectrum.

Return type:

np.ndarray

Notes

When bias is 1D the integrand does not depend on r. In that case this method avoids allocating the full (r, k, m) intermediate array (which can be several gigabytes for typical grid sizes) by integrating directly over the (k, m) plane and returning a (1, k) result.

property r_halo

The virial radius of the halo.

raw_integrand() ndarray

Compute the full power spectrum integrand.

The output is always a 3D array, with shape (r, k, m).