Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,32 @@ Leauthaud et al. (2011) Composite Model

.. currentmodule:: halotools.empirical_models

This section of the documentation describes the basic behavior of
the ``leauthaud11`` composite HOD model. To see how this composite
model is built by the `~halotools.empirical_models.PrebuiltHodModelFactory` class,
see `~halotools.empirical_models.leauthaud11_model_dictionary`.
This section of the documentation describes the basic behavior of
the ``leauthaud11`` composite HOD model. To see how this composite
model is built by the `~halotools.empirical_models.PrebuiltHodModelFactory` class,
see `~halotools.empirical_models.leauthaud11_model_dictionary`.

Overview of the Leauthaud et al. (2011) Model Features
========================================================
This HOD-style model is based on Leauthaud et al. (2011), arXiv:1103.2077.
The behavior of this model is governed by an assumed underlying stellar-to-halo-mass relation.

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 `~halotools.empirical_models.Leauthaud11Cens`.
Central galaxies are assumed to reside at the exact center of the host halo;
the class governing this behavior is `~halotools.empirical_models.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 `~halotools.empirical_models.Leauthaud11Sats`;
satellites in this model follow an (unbiased) NFW profile, as governed by the
`~halotools.empirical_models.NFWPhaseSpace` class.

Building the Leauthaud et al. (2011) Model
This HOD-style model is based on Leauthaud et al. (2011), arXiv:1103.2077.
The behavior of this model is governed by an assumed underlying stellar-to-halo-mass relation.

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 `~halotools.empirical_models.Leauthaud11Cens`.
Central galaxies are assumed to reside at the exact center of the host halo;
the class governing this behavior is `~halotools.empirical_models.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 `~halotools.empirical_models.Leauthaud11Sats`;
satellites in this model follow an (unbiased) NFW profile, as governed by the
`~halotools.empirical_models.NFWPhaseSpace` class.

Building the Leauthaud et al. (2011) Model
============================================
You can build an instance of this model using the
You can build an instance of this model using the
`~halotools.empirical_models.PrebuiltHodModelFactory` class as follows:

>>> from halotools.empirical_models import PrebuiltHodModelFactory
Expand All @@ -41,55 +41,55 @@ You can build an instance of this model using the
Customizing the Leauthaud et al. (2011) Model
=================================================

There are two keyword arguments you can use to customize
There are two keyword arguments you can use to customize
the instance returned by the factory:

First, the ``threshold`` keyword argument pertains to the minimum
First, the ``threshold`` keyword argument pertains to the minimum
stellar mass of the galaxy sample, in logarithmic units of Msun in h=1 units:

>>> model = PrebuiltHodModelFactory('leauthaud11', threshold = 10.75)

Second, the ``redshift`` keyword argument must be set to the redshift of the
halo catalog you might populate with this model.
Second, the ``redshift`` keyword argument must be set to the redshift of the
halo catalog you might populate with this model.

>>> model = PrebuiltHodModelFactory('leauthaud11', threshold = 11, redshift = 2)

It is not permissible to dynamically change the ``threshold`` and ``redshift``
of the model instance. If you want to explore the effects of different
thresholds and redshifts, you should instantiate multiple models.
It is not permissible to dynamically change the ``threshold`` and ``redshift``
of the model instance. If you want to explore the effects of different
thresholds and redshifts, you should instantiate multiple models.

As described in :ref:`altering_param_dict`, you can always change the model parameters
after instantiation by changing the values in the ``param_dict`` dictionary. For example,
As described in :ref:`altering_param_dict`, you can always change the model parameters
after instantiation by changing the values in the ``param_dict`` dictionary. For example,

>>> model.param_dict['alphasat'] = 1.1

The above line of code changes the power law slope between
halo mass and satellite occupation number, :math:`\langle N_{\rm sat} \rangle \propto M_{\rm halo}^{\alpha}`.
See :ref:`leauthaud11_parameters` for a description of all parameters of this model.
The above line of code changes the power law slope between
halo mass and satellite occupation number, :math:`\langle N_{\rm sat} \rangle \propto M_{\rm halo}^{\alpha}`.
See :ref:`leauthaud11_parameters` for a description of all parameters of this model.

Populating Mocks and Generating Leauthaud et al. (2011) Model Predictions
===========================================================================

As with any Halotools composite model, the model instance
can populate N-body simulations with mock galaxy catalogs.
In the following, we'll show how to do this
with fake simulation data via the ``halocat`` argument.
As with any Halotools composite model, the model instance
can populate N-body simulations with mock galaxy catalogs.
In the following, we'll show how to do this
with fake simulation data via the ``halocat`` argument.

>>> from halotools.sim_manager import FakeSim
>>> halocat = FakeSim()
>>> model = PrebuiltHodModelFactory('leauthaud11')
>>> model.populate_mock(halocat = halocat)
>>> model.populate_mock(halocat) # doctest: +SKIP

See `ModelFactory.populate_mock` for information about how to
populate your model into different simulations.
See :ref:`galaxy_catalog_analysis_tutorial` for a sequence of worked examples
on how to use the `~halotools.mock_observables` sub-package
to study a wide range of astronomical statistics predicted by your model.
See `ModelFactory.populate_mock` for information about how to
populate your model into different simulations.
See :ref:`galaxy_catalog_analysis_tutorial` for a sequence of worked examples
on how to use the `~halotools.mock_observables` sub-package
to study a wide range of astronomical statistics predicted by your model.

Studying the Leauthaud et al. (2011) Model Features
Studying the Leauthaud et al. (2011) Model Features
======================================================

In addition to populating mocks, the ``leauthaud11`` model also gives you access to
In addition to populating mocks, the ``leauthaud11`` model also gives you access to
its underlying analytical relations. Here are a few examples:

>>> import numpy as np
Expand All @@ -114,49 +114,49 @@ Now suppose you wish to know the mean halo mass of a central galaxy with known s
Parameters of the Leauthaud et al. (2011) model
=================================================

The best way to learn what the parameters of a model do is to
just play with the code: change parameter values, make plots of how the
underying analytical relations vary, and also of how the
mock observables vary. Here we just give a simple description of the meaning
of each parameter. You can also refer to the original
Leauthaud et al. (2011) publication, arXiv:1103.2077, and also the original
Behroozi et al. (2010) publication, arXiv:1001.0015,
for further details. A succinct summary also appears in Section 2.4 of arXiv:1512.03050.
The best way to learn what the parameters of a model do is to
just play with the code: change parameter values, make plots of how the
underying analytical relations vary, and also of how the
mock observables vary. Here we just give a simple description of the meaning
of each parameter. You can also refer to the original
Leauthaud et al. (2011) publication, arXiv:1103.2077, and also the original
Behroozi et al. (2010) publication, arXiv:1001.0015,
for further details. A succinct summary also appears in Section 2.4 of arXiv:1512.03050.

To see how the following parameters are implemented, see `Leauthaud11Cens.mean_occupation` and `Behroozi10SmHm.mean_stellar_mass`.

* param_dict['smhm_m0_0'] - Characteristic stellar mass at redshift-zero in the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.
* param_dict['smhm_m0_0'] - Characteristic stellar mass at redshift-zero in the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.

* param_dict['smhm_m0_a'] - Redshift evolution of the characteristic stellar mass.
* param_dict['smhm_m0_a'] - Redshift evolution of the characteristic stellar mass.

* param_dict['smhm_m1_0'] - Characteristic halo mass at redshift-zero in the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.
* param_dict['smhm_m1_0'] - Characteristic halo mass at redshift-zero in the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.

* param_dict['smhm_m1_a'] - Redshift evolution of the characteristic halo mass.
* param_dict['smhm_m1_a'] - Redshift evolution of the characteristic halo mass.

* param_dict['smhm_beta_0'] - Low-mass slope at redshift-zero of the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.
* param_dict['smhm_beta_0'] - Low-mass slope at redshift-zero of the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.

* param_dict['smhm_beta_a'] - Redshift evolution of the low-mass slope.
* param_dict['smhm_beta_a'] - Redshift evolution of the low-mass slope.

* param_dict['smhm_delta_0'] - High-mass slope at redshift-zero of the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.
* param_dict['smhm_delta_0'] - High-mass slope at redshift-zero of the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.

* param_dict['smhm_delta_a'] - Redshift evolution of the high-mass slope.
* param_dict['smhm_delta_a'] - Redshift evolution of the high-mass slope.

* param_dict['smhm_gamma_0'] - Transition between low- and high-mass behavior at redshift-zero of the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.
* param_dict['smhm_gamma_0'] - Transition between low- and high-mass behavior at redshift-zero of the :math:`\langle M_{\ast} \rangle(M_{\rm halo})` map.

* param_dict['smhm_gamma_a'] - Redshift evolution of the transition.
* param_dict['smhm_gamma_a'] - Redshift evolution of the transition.

* param_dict['u'scatter_model_param1'] - Log-normal scatter in the stellar-to-halo mass relation.
* param_dict['u'scatter_model_param1'] - Log-normal scatter in the stellar-to-halo mass relation.

To see how the following parameters are implemented, see `Leauthaud11Sats.mean_occupation` and `Behroozi10SmHm.mean_stellar_mass`.

* param_dict['alphasat'] - Power law slope of the relation between halo mass and :math:`\langle N_{\rm sat} \rangle`.
* param_dict['alphasat'] - Power law slope of the relation between halo mass and :math:`\langle N_{\rm sat} \rangle`.

* param_dict['betasat'] - Controls the amplitude of the power law slope :math:`\langle N_{\rm sat} \rangle`.
* param_dict['betasat'] - Controls the amplitude of the power law slope :math:`\langle N_{\rm sat} \rangle`.

* param_dict['bsat'] - Also controls the amplitude of the power law slope :math:`\langle N_{\rm sat} \rangle`.
* param_dict['bsat'] - Also controls the amplitude of the power law slope :math:`\langle N_{\rm sat} \rangle`.

* param_dict['betacut'] - Controls the low-mass cutoff of :math:`\langle N_{\rm sat} \rangle`.
* param_dict['betacut'] - Controls the low-mass cutoff of :math:`\langle N_{\rm sat} \rangle`.

* param_dict['bcut'] - Also controls the low-mass cutoff of :math:`\langle N_{\rm sat} \rangle`.
* param_dict['bcut'] - Also controls the low-mass cutoff of :math:`\langle N_{\rm sat} \rangle`.


Loading