hmf.mass_function.fitting_functions.FittingFunction¶
- class hmf.mass_function.fitting_functions.FittingFunction[source]¶
Base-class for a halo mass function fit.
This class should not be called directly, rather use a subclass which is specific to a certain fitting formula. The only method necessary to define for any subclass is fsigma, as well as a dictionary of default parameters as a class variable _defaults. Model parameters defined here are accessed through the
params
instance attribute (and may be overridden at instantiation by the user). A subclass may optionally define acutmask
property, to override the default behaviour of returning True for the whole range.In addition, several class attributes, req_*, identify the required arguments for a given subclass. These must be set accordingly.
Examples
The following would be an example of defining the Sheth-Tormen mass function (which is already included), showing the basic idea of subclassing this class:
>>> class SMT(FittingFunction): >>> # Subclass requirements >>> req_sigma = False >>> req_z = False >>> >>> # Default parameters >>> _defaults = {"a":0.707, "p":0.3, "A":0.3222} >>> >>> @property >>> def fsigma(self): >>> A = self.params['A'] >>> a = self.params["a"] >>> p = self.params['p'] >>> >>> return (A * np.sqrt(2.0 * a / np.pi) * self.nu * np.exp(-(a * self.nu2) / 2.0) >>> * (1 + (1.0 / (a * self.nu2)) ** p))
In that example, we did not specify
cutmask
.- Parameters
nu2 (array_like) – A vector of peak-heights, \(\delta_c^2/\sigma^2\) corresponding to m
m (array_like, optional) – A vector of halo masses [units M_sun/h]. Only necessary if
req_mass
is True. Typically provides limits of applicability. Must correspond to nu2.z (float, optional) – The redshift. Only required if
req_z
is True, in which case the default is 0.n_eff (array_like, optional) – The effective spectral index at m. Only required if
req_neff
is True.mass_definition (
hmf.halos.mass_definitions.MassDefinition
instance, optional) – A halo mass definition. Only required for fits which explicitly include a parameterization for halo definition.cosmo (
astropy.cosmology.FLRW
instance, optional) – A cosmology. Default is Planck15. Either omegam_z or cosmo is required ifreq_omz
is True. If both are passed, omegam_z takes precedence.**model_parameters (unpacked-dictionary) – These parameters are model-specific. For any model, list the available parameters (and their defaults) using
<model>._defaults
Methods
__init__
(nu2[, m, z, n_eff, …])Initialize self.
Get a dictionary of all implemented models for this component.
Attributes
A logical mask array specifying which elements of
fsigma
are within the fitted range.The function \(f(\sigma)\equiv\nu f(\nu)\).
Negative log of sigma.
The peak height, sigma/delta_c.
Normalised matter density at current redshift.
Whether m is required for this subclass
Whether n_eff is required for this subclass
The sqrt of mass variance as a function of mass.
Details of the defining simulation, subclass of
SimDetails