Behroozi

class hmf.mass_function.fitting_functions.Behroozi(**model_parameters)[source]

Behroozi mass function fit [1].

This is an empirical modification to the Tinker08 fit, to improve accuracy at high redshift.

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 used by models that depend on redshift. 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) – 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 hmf.cosmology.cosmo.DEFAULT_COSMOLOGY (Planck18), as for the frameworks. Either omegam_z or cosmo is required if req_omz is True. If both are passed, omegam_z takes precedence.

  • **model_parameters (unpacked-dictionary) – These parameters are model-specific. The available parameters and their defaults are listed in the Notes section of each model (and are also available as <model>._defaults).

Notes

\(f(\sigma)\) is that of Tinker08. The mass function is then modified (Appendix G of [1]; masses in \(M_\odot\)) as

\[\frac{dn}{dM} = \theta \frac{dn_{\rm T08}}{dM} - n_{\rm T08}(>M) \frac{d\theta}{dM},\]

where

\[\begin{split}\theta &= 10^{\alpha (M/M_\star)^\gamma}, \\ \alpha &= \frac{0.144}{1 + \exp[14.79 (a - 0.213)]}, \\ \gamma &= \frac{0.5}{1 + \exp(6.5 a)},\end{split}\]

with \(a = 1/(1+z)\) and \(M_\star = 10^{11.5} M_\odot\).

Default model parameters (override them with keyword arguments, or with hmf_params in MassFunction):

Parameter

Default

A_200

0.1858659

A_300

0.1995973

A_400

0.2115659

A_600

0.2184113

A_800

0.2480968

A_1200

0.2546053

A_1600

0.26

A_2400

0.26

A_3200

0.26

a_200

1.466904

a_300

1.521782

a_400

1.559186

a_600

1.614585

a_800

1.869936

a_1200

2.128056

a_1600

2.301275

a_2400

2.529241

a_3200

2.661983

b_200

2.571104

b_300

2.254217

b_400

2.048674

b_600

1.869559

b_800

1.588649

b_1200

1.507134

b_1600

1.464374

b_2400

1.436827

b_3200

1.40521

c_200

1.193958

c_300

1.270316

c_400

1.335191

c_600

1.446266

c_800

1.581345

c_1200

1.79505

c_1600

1.965613

c_2400

2.237466

c_3200

2.439729

A_exp

0.14

a_exp

0.06

References

[1] (1,2)

Behroozi, P. S., Wechsler, R. H., Conroy, C., 2013. ApJ 770, 57. https://doi.org/10.1088/0004-637X/770/1/57

Attributes

cutmask

Boolean mask of the elements within the fit’s calibrated range.

Has the same length as nu2. An element is True if the corresponding mass (or \(\sigma\), depending on the model) lies inside the range over which the fit was calibrated against simulations, as given in the reference paper. Elements outside that range are False: fsigma is still computed there, but is an extrapolation. The default is True everywhere. The mask is informational only; it is not applied anywhere in hmf.

delta_virs = array([ 200,  300,  400,  600,  800, 1200, 1600, 2400, 3200])
fsigma

The function \(f(\sigma)\equiv\nu f(\nu)\).

lnsigma

Negative log of sigma.

normalized = False

Whether this model is normalized so that all mass is in halos

nu

The peak height, \(\nu = \delta_c/\sigma\).

omegam_z

Normalised matter density at current redshift.

references: ClassVar[tuple[str, ...]] = ('Behroozi, P. S., Wechsler, R. H., Conroy, C., 2013. ApJ 770, 57. https://doi.org/10.1088/0004-637X/770/1/57',)

References to cite when this model is used, each a formatted citation string. Subclasses inherit their parent’s references unless they set their own.

req_dhalo = True
req_mass = False

Whether m is required for this subclass

req_neff = False

Whether n_eff is required for this subclass

req_z = True
sigma

The sqrt of mass variance as a function of mass.

sim_definition = <hmf.mass_function.fitting_functions.SimDetails object>

Details of the defining simulation, instance of SimDetails

warn_delta_extrapolation: ClassVar[bool] = False

Whether to warn when the halo overdensity is outside the calibrated range.

Methods

classmethod get_measured_mdef()

Get the mass definition used in the defining simulation.

classmethod get_models() → Mapping[str, type]

Get a read-only mapping of all implemented models for this component.

The mapping is a live view of the registry, so it shows models registered later, but it can not be used to add or remove models.