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.

delta_virs

fsigma

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

lnsigma

Negative log of sigma.

normalized

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

References to cite when this model is used, each a formatted citation string.

req_dhalo

req_mass

Whether m is required for this subclass

req_neff

Whether n_eff is required for this subclass

req_z

sigma

The sqrt of mass variance as a function of mass.

sim_definition

Details of the defining simulation, instance of SimDetails

warn_delta_extrapolation

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.