class halotools.empirical_models.PrebuiltHodModelFactory(model_nickname, **kwargs)[source]

Bases: HodModelFactory

Factory class providing instances of HodModelFactory models that come prebuilt with Halotools. For documentation on the methods bound to PrebuiltHodModelFactory, see the docstring of HodModelFactory. For a tutorial on all prebuilt models, see Tutorial on models pre-built by Halotools.


String used to select the appropriate prebuilt model_dictionary that will be used to build the instance. See the Examples below. The list of available options are

halo_selection_funcfunction object, optional

Function object used to place a cut on the input table. If the halo_selection_func keyword argument is passed, the input to the function must be a single positional argument storing a length-N structured numpy array or Astropy table; the function output must be a length-N boolean array that will be used as a mask. Halos that are masked will be entirely neglected during mock population.


>>> from halotools.empirical_models import PrebuiltHodModelFactory
>>> model_instance = PrebuiltHodModelFactory('zheng07')

Passing in zheng07 as the model_nickname argument triggers the factory to call the zheng07_model_dictionary function. When doing so, the remaining arguments that were passed to the PrebuiltHodModelFactory will in turn be passed on to zheng07_model_dictionary.

>>> model_instance = PrebuiltHodModelFactory('zheng07', threshold=-20)
>>> model_instance = PrebuiltHodModelFactory('zheng07', threshold=-20, modulate_with_cenocc=True)

This same syntax applies to all pre-built models.

>>> model_instance = PrebuiltHodModelFactory('hearin15', threshold = 10.5, redshift = 2)

Once you have built an instance of a composite model, you can use it to populate any simulation in the Halotools cache:

>>> from halotools.sim_manager import CachedHaloCatalog 
>>> halocat = CachedHaloCatalog(simname = 'bolshoi', redshift = 2) 
>>> model_instance.populate_mock(halocat) 

As described in the populate_mock docstring, calling the populate_mock method creates a mock attribute bound to your model_instance. After you initially populate a halo catalog using the populate_mock method, you can repopulate the halo catalog by calling the populate method bound to model_instance.mock.

Attributes Summary


Attributes Documentation

prebuilt_model_nickname_list = ('zheng07', 'leauthaud11', 'tinker13', 'hearin15', 'zu_mandelbaum15', 'zu_mandelbaum16', 'cacciato09')