# Halo mass function

Pylians provides the routine `MF_theory`

to compute the halo mass function of a given model. The arguments of this function are:

k_in, Pk_in, OmegaM, Masses, author, bins=10000, z=0, delta=200.0

`k`

. 1D numpy array with the value of the linear matter power spectrum wavenumbers.`Pk`

. 1D numpy array with the amplitude of the linear matter power spectrum on the wavenumbers`k`

.`OmegaM`

. Value of \(\Omega_{\rm m}\).`Masses`

. 1D numpy array with the value of the halo masses over which compute the halo mass function.`author`

. The model for the halo mass function. Options are:`ST`

,`Tinker`

,`Tinker10`

,`Crocce`

,`Jenkins`

,`Warren`

,`Watson`

,`Watson_FoF`

,`Angulo`

.`bins`

. In order to carry out the integrals, the k bins need to be sorted and equally spaced in log10. This parameter determines the number of bins to use. The more the better, but a very large number will have very little impact. Default 10000.`z`

. Redshift at which to estimate the halo mass function. Only needed for the`Tinker`

,`Tinker10`

, and`Crocce`

mass functions.`delta`

. The overdensity value. Default is 200. Only needed for`Tinker`

and`Tinker10`

.

Note

For cosmologies with massive neutrinos, \(\Omega_{\rm m}\) should be set to \(\Omega_{\rm c}+\Omega_{\rm b}\) and the linear power spectrum should be the CDM+baryons linear power spectrum; see e.g. 1311.1212 and 1311.1514.

An example of how to use this routine is this:

```
import numpy as np
import mass_function_library as MFL
# halo mass function parameters
f_Pk = 'Pk_linear_z=0.txt' #file with linear Pk
OmegaM = 0.3175
Masses = np.logspace(11, 15, 100) #array with halo masses
author = 'ST' #Sheth-Tormen halo mass function
bins = 10000 #number of bins to use for Pk
z = 0.0 #redshift; only used for Tinker, Tinker10 and Crocce
delta = 200.0 #overdensity; only for Tinker and Tinker10
# read linear matter Pk
k, Pk = np.loadtxt(f_Pk, unpack=True)
# compute halo mass function
HMF = MFL.MF_theory(k, Pk, OmegaM, Masses, author, bins, z, delta)
```

## variance

Pylians provides the routine `sigma`

that can be used to compute \(\sigma_R\), defined as

where \(W(k,R)\) is the Fourier transform of a top-hat function with radius \(R\):

The most standard applicaiton of this routine is to compute the value of \(\sigma_8\) given a linear power spectrum:

```
import numpy as np
import mass_function_library as MFL
# read linear power spectrum
k, Pk = np.loadtxt('My_linear_Pk.txt', unpack=True)
# compute the value of sigma_8
sigma_8 = MFL.sigma(k, Pk, 8.0)
```