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 Cole & Kaiser 1989, Mo & White 1996
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

HaloBiasModel() 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.
modelCole89(nu) The peak-background split prediction for halo bias.
modelJing98(nu, z) A bias model calibrated on scale-free simulations.
modelSheth01(nu) The halo bias model of Sheth et al 2001.
modelSeljak04(nu, z[, cosmo_term]) A numerically calibrated bias model.
modelPillepich10(nu) The halo bias model of Pillepich et al 2010.
modelTinker10(nu, z, mdef) The halo bias model of Tinker et al 2010.
modelBhattacharya11(nu, z) A bias model based on a mass function calibration.
modelComparat17(nu) 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 at 0x11a48f240>, 'cole89': <lss.bias.HaloBiasModel object at 0x11a48f5c0>, 'comparat17': <lss.bias.HaloBiasModel object at 0x11abbb630>, 'jing98': <lss.bias.HaloBiasModel object at 0x11a48f518>, 'pillepich10': <lss.bias.HaloBiasModel object at 0x11a48fc88>, 'seljak04': <lss.bias.HaloBiasModel object at 0x11a48f978>, 'sheth01': <lss.bias.HaloBiasModel object at 0x11a48f208>, 'tinker10': <lss.bias.HaloBiasModel object at 0x11a48ff60>}

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.

See also

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.

See also

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.