Source code for pyccl.halos.hmfunc.press74

__all__ = ("MassFuncPress74",)

import numpy as np

from . import MassFunc, get_delta_c


[docs]class MassFuncPress74(MassFunc): """Implements the mass function of `Press & Schechter 1974 <https://ui.adsabs.harvard.edu/abs/1974ApJ...187..425P/abstract>`_. This parametrization is only valid for 'fof' masses. Args: mass_def (:class:`~pyccl.halos.massdef.MassDef` or :obj:`str`): a mass definition object, or a name string. mass_def_strict (:obj:`bool`): if ``False``, consistency of the mass definition will be ignored. """ name = 'Press74' def __init__(self, *, mass_def="fof", mass_def_strict=True): super().__init__(mass_def=mass_def, mass_def_strict=mass_def_strict) self._norm = np.sqrt(2/np.pi) def _check_mass_def_strict(self, mass_def): return mass_def.Delta != "fof" def _get_fsigma(self, cosmo, sigM, a, lnM): delta_c = get_delta_c(cosmo, a, kind='EdS') nu = delta_c/sigM return self._norm * nu * np.exp(-0.5 * nu**2)