halotools.empirical_models.zheng07_model_dictionary(threshold=-20, redshift=0.0, modulate_with_cenocc=False, **kwargs)[source] [edit on github]

Dictionary for an HOD-style based on Zheng et al. (2007), arXiv:0703457.

See Zheng et al. (2007) Composite Model for a tutorial on this model.

There are two populations, centrals and satellites. Central occupation statistics are given by a nearest integer distribution with first moment given by an erf function; the class governing this behavior is Zheng07Cens. Central galaxies are assumed to reside at the exact center of the host halo; the class governing this behavior is TrivialPhaseSpace.

Satellite occupation statistics are given by a Poisson distribution with first moment given by a power law that has been truncated at the low-mass end; the class governing this behavior is Zheng07Sats; satellites in this model follow an (unbiased) NFW profile, as governed by the NFWPhaseSpace class.

This composite model is built by the HodModelFactory.


threshold : float, optional

Luminosity threshold of the galaxy sample being modeled. Default is set in the model_defaults module.

redshift : float, optional

Redshift of the galaxy population being modeled. If you will be using the model instance to populate mock catalogs, you must choose a redshift that is consistent with the halo catalog. Default is set in the model_defaults module.

modulate_with_cenocc : bool, optional

If set to True, the Zheng07Sats.mean_occupation method will be multiplied by the the first moment of the centrals:

\(\langle N_{\mathrm{sat}}\rangle_{M}\Rightarrow\langle N_{\mathrm{sat}}\rangle_{M}\times\langle N_{\mathrm{cen}}\rangle_{M}\)

The \(\langle N_{\mathrm{cen}}\rangle_{M}\) function is calculated according to Zheng07Cens.mean_occupation.


model_dictionary : dict

Dictionary of keywords to be passed to HodModelFactory


Although the cenocc_model is a legitimate keyword for the Zheng07Sats class, this keyword is not permissible when building the zheng07 composite model with the PrebuiltHodModelFactory. To build a composite model that uses this feature, you will need to use the HodModelFactory directly. See Advanced usage of the zheng07 model for explicit instructions.


>>> from halotools.empirical_models import PrebuiltHodModelFactory
>>> model_instance = PrebuiltHodModelFactory('zheng07', threshold = -21)

As with all instances of the PrebuiltHodModelFactory, you can populate a mock by passing the model a halo catalog:

>>> from halotools.sim_manager import FakeSim
>>> halocat = FakeSim(redshift = model_instance.redshift)
>>> model_instance.populate_mock(halocat)