halotools.empirical_models.zu_mandelbaum16_model_dictionary(threshold=10.5, prim_haloprop_key='halo_mvir', **kwargs)[source]

Dictionary to build an HOD-style based on Zu & Mandelbaum et al. (2016), arXiv:1509.06758. The behavior of this model is governed by an assumed underlying stellar-to-halo-mass relation.

See Zu & Mandelbaum et al. (2016) 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 ZuMandelbaum15Cens. 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 ZuMandelbaum15Sats; satellites in this model follow an (unbiased) NFW profile, as governed by the NFWPhaseSpace class.

Each model galaxy is assigned a binary designation of whether or not it is``quiescent``. Central quenching is modeled by ZuMandelbaum16QuenchingCens, satellite quenching by ZuMandelbaum16QuenchingSats.

This composite model is built by the HodModelFactory.

thresholdfloat, optional

Stellar mass threshold of the mock galaxy sample. Default value is specified in the model_defaults module.

concentration_binningtuple, optional

Three-element tuple. The first entry will be the minimum value of the concentration in the lookup table for the satellite NFW profile, the second entry the maximum, the third entry the linear spacing of the grid. Default is set in model_defaults. If high-precision is not required, the lookup tables will build much faster if concentration_binning is set to (1, 25, 0.5).


Dictionary passed to HodModelFactory


Note that in the original Zu & Mandelbaum publication, satellite concentrations were slightly lower than their host dark matter halos. This is not implemented here but will be changed in a future release.

Note also that the best-fit parameters of this model are based on the halo_m200m halo mass definition. Using alternative choices of mass definition will require altering the model parameters in order to mock up the same model published in Zu & Mandelbaum 2016. The Colossus python package written by Benedikt Diemer can be used to convert between different halo mass definitions. This may be useful if you wish to use an existing halo catalog for which the halo mass definition you need is unavailable.


>>> from halotools.empirical_models import HodModelFactory
>>> model_dictionary = zu_mandelbaum16_model_dictionary()
>>> model_instance = HodModelFactory(**model_dictionary)

The default settings are set in the model_defaults module. To load a model based on a different stellar mass threshold:

>>> model_dictionary = zu_mandelbaum16_model_dictionary(threshold=11, prim_haloprop_key='halo_mvir')
>>> model_instance = HodModelFactory(**model_dictionary)

For this model, you can also use the following syntax candy, which accomplishes the same task as the above:

>>> from halotools.empirical_models import PrebuiltHodModelFactory
>>> model_instance = PrebuiltHodModelFactory('zu_mandelbaum16', threshold=11, prim_haloprop_key='halo_mvir')

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()
>>> model_instance.populate_mock(halocat)