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

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.

thresholdfloat, optional

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

redshiftfloat, 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_cenoccbool, 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.


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)