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

Bases: SubhaloModelFactory

Factory class providing instances of SubhaloModelFactory models that come prebuilt with Halotools. For documentation on the methods bound to PrebuiltSubhaloModelFactory, see the docstring of SubhaloModelFactory. 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

galaxy_selection_funcfunction object, optional

Function object that imposes a cut on the mock galaxies. Function should take a length-k Astropy table as a single positional argument, and return a length-k numpy boolean array that will be treated as a mask over the rows of the table. If not None, the mask defined by galaxy_selection_func will be applied to the galaxy_table after the table is generated by the populate_mock method. Default is None.

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.


>>> model_instance = PrebuiltSubhaloModelFactory('behroozi10', redshift = 2)

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

Now that we have built an instance of a composite model, we 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 = ['behroozi10']