# Halo Bias¶

Halo bias quantifies the excess clustering of halos over the clustering of dark matter. Bias is, in general, a function of halo mass and scale, but this module currently implements only scale-free bias models.

## Basics¶

Bias can be evaluated as a function of either mass or peak height. The parameters that need to be passed depend on the bias model to some degree, and on whether the mass needs to be converted to peak height first:

from colossus.lss import peaks
from colossus.lss import bias

M = 1E14
z = 0.0
nu = peaks.peakHeight(M, z)
b = bias.haloBiasFromNu(nu, model = 'sheth01')
b = bias.haloBias(M, model = 'tinker10', z = z, mdef = 'vir')


Please see the Tutorials for more extensive code examples.

## Bias models¶

The simplest bias model (cole89) is based on the peak-background split model and was derived in a number of different papers. The rest of the models was calibrated using numerical simulations:

ID

Parameters

z-dependence

Reference

cole89

M/nu

No

jing98

M/nu, z

Through non-linear mass

Jing 1998

sheth01

M/nu

No

Sheth et al. 2001

seljak04

M/nu, z

Through non-linear mass

Seljak & Warren 2004

pillepich10

M/nu

No

Pillepich et al. 2010

tinker10

M/nu, z, mdef

Through mass definition

Tinker et al. 2010

bhattacharya11

M/nu, z

Yes

Bhattacharya et al. 2011

comparat17

M/nu

No

Comparat et al. 2017

The z-dependence column indicates whether a model predicts a bias that varies with redshift at fixed peak height. At fixed mass, all models predict a strongly varying bias. The Tinker et al. 2010 model was calibrated for a range of overdensities with respect to the mean density of the universe. Thus, depending on the mass definition used, this model can predict a slight redshift evolution.

## Module contents¶

 Characteristics of halo bias models. models Dictionary containing a list of models. haloBias(M, z[, mdef, model]) The halo bias at a given mass. haloBiasFromNu(nu[, z, mdef, model]) The halo bias at a given peak height. twoHaloTerm(r, M, z, mdef[, model]) The 2-halo term as a function of radius and halo mass. The peak-background split prediction for halo bias. modelJing98(nu, z) A bias model calibrated on scale-free simulations. The halo bias model of Sheth et al 2001. modelSeljak04(nu, z[, cosmo_term]) A numerically calibrated bias model. The halo bias model of Pillepich et al 2010. modelTinker10(nu, z, mdef) The halo bias model of Tinker et al 2010. A bias model based on a mass function calibration. A bias model based on a mass function calibration.

## Module reference¶

class lss.bias.HaloBiasModel

Characteristics of halo bias models.

This object contains certain characteristics of a halo bias model. Currently, this object is empty. The models dictionary contains one item of this class for each available model.

lss.bias.models = {'bhattacharya11': <lss.bias.HaloBiasModel object>, 'cole89': <lss.bias.HaloBiasModel object>, 'comparat17': <lss.bias.HaloBiasModel object>, 'jing98': <lss.bias.HaloBiasModel object>, 'pillepich10': <lss.bias.HaloBiasModel object>, 'seljak04': <lss.bias.HaloBiasModel object>, 'sheth01': <lss.bias.HaloBiasModel object>, 'tinker10': <lss.bias.HaloBiasModel object>}

Dictionary containing a list of models.

An ordered dictionary containing one HaloBiasModel entry for each model.

lss.bias.haloBiasFromNu(nu, z=None, mdef=None, model='tinker10', **kwargs)

The halo bias at a given peak height.

Redshift and mass definition are necessary only for particular models (see table above).

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

z: array_like

Redshift; can be a number or a numpy array. Only necessary for certain models.

mdef: str

The mass definition corresponding to the mass that was used to evaluate the peak height. Only necessary for certain models. See Halo Mass Definitions for details.

model: str

The bias model used.

kwargs: kwargs

Extra arguments passed to the function of the particular model. See the documentation of those functions for valid arguments.

Returns
bias: array_like

Halo bias; has the same dimensions as nu or z.

haloBias

The halo bias at a given mass.

lss.bias.haloBias(M, z, mdef=None, model='tinker10', **kwargs)

The halo bias at a given mass.

This function is a wrapper around haloBiasFromNu(). The mass definition is necessary only for certain models whereas the redshift is always necessary in order to convert mass to peak height.

Parameters
M: array_like

Halo mass in $$M_{\odot}/h$$; can be a number or a numpy array.

z: array_like

Redshift; can be a number or a numpy array.

mdef: str

The mass definition in which M is given. Only necessary for certain models. See Halo Mass Definitions for details.

model: str

The bias model used.

kwargs: kwargs

Extra arguments passed to the function of the particular model. See the documentation of those functions for valid arguments.

Returns
bias: array_like

Halo bias; has the same dimensions as M or z.

haloBiasFromNu

The halo bias at a given peak height.

lss.bias.twoHaloTerm(r, M, z, mdef, model='tinker10')

The 2-halo term as a function of radius and halo mass.

The 2-halo term in the halo-matter correlation function describes the excess density around halos due to the proximity of other peaks. This contribution can be approximated as the matter- matter correlation function times a linear bias which depends on the peak height of the halo. Sometimes this term includes an additional factor of the mean density which is omitted here.

Note that this 2-halo term is also implemented as an outer profile in the Colossus halo module, see the documentation of halo.profile_outer.

Parameters
r: array_like

Halocentric radius in comoving Mpc/h; can be a number or a numpy array.

M: float

Halo mass in $$M_{\odot}/h$$

z: float

Redshift

mdef: str

The mass definition in which M is given. See Halo Mass Definitions for details.

model: str

The bias model used.

Returns
rho_2h: array_like

The density due to the 2-halo term in physical $$M_{\odot}h^2/{\rm kpc}^3$$; has the same dimensions as r.

lss.bias.modelCole89(nu)

The peak-background split prediction for halo bias.

For a derivation of this model, see Cole & Kaiser 1989 or Mo & White 1996.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.

lss.bias.modelJing98(nu, z)

A bias model calibrated on scale-free simulations.

This bias model relies on the slope of the power spectrum. It was calibrated on scale-free simulations with a power-law power spectrum, but is also applicable to LCDM cosmologies. Note that in the original notation, the peak height is only valid for scale-free models, but it is stated in Section 3 that one should use the properly defined peak height for CDM cosmologies.

Moreover, we use the zero-baryon approximation to the power spectrum of Eisenstein & Hu to avoid wiggles in the slope.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

z: float

Redshift.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.

lss.bias.modelSheth01(nu)

The halo bias model of Sheth et al 2001.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.

lss.bias.modelSeljak04(nu, z, cosmo_term=False)

A numerically calibrated bias model.

This bias model corresponds to Equation 5 in Seljak & Warren 2004. If cosmo_term == True, Equation 6 is used. Colossus currently does not implement a running of the spectral index, the corresponding parameter $$\alpha_{\rm s}$$ is thus set to zero.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

z: float

Redshift.

cosmo_term: bool

Include the cosmological term of Equation 6.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.

lss.bias.modelPillepich10(nu)

The halo bias model of Pillepich et al 2010.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.

lss.bias.modelTinker10(nu, z, mdef)

The halo bias model of Tinker et al 2010.

The mass definition mdef must correspond to the mass that was used to evaluate the peak height. Note that the Tinker bias function is universal in redshift at fixed peak height, but only for mass definitions defined wrt. the mean density of the universe. For other definitions, $$\Delta_{\rm m}$$ evolves with redshift, leading to an evolving bias at fixed peak height.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

z: array_like

Redshift; can be a number or a numpy array.

mdef: str

The mass definition. See Halo Mass Definitions for details.

Returns
bias: array_like

Halo bias; has the same dimensions as nu or z.

lss.bias.modelBhattacharya11(nu, z)

A bias model based on a mass function calibration.

This bias model is derived using the peak-background split logic of Sheth & Tormen 1999, but with the updated and z-dependent best-fit parameters derived for the mass function. The authors note that this bias function does not match the numerical results as well as direct calibrations.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

z: float

Redshift.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.

lss.bias.modelComparat17(nu)

A bias model based on a mass function calibration.

This model is equivalent to the Bhattacharya et al 2011 model in that it uses the same functional form and that its best-fit parameters are derived from a fit to the mass function rather than bias itself. However, this model does not depend on redshift. The parameters used here are updated compared to the published version of the paper.

Parameters
nu: array_like

Peak height; can be a number or a numpy array.

Returns
bias: array_like

Halo bias; has the same dimensions as nu.