Source code for halotools.empirical_models.composite_models.sfr_models.smhm_binary_sfr

"""
Module containing a pre-built subhalo-based model
that has a binary quenching feature.
"""
from __future__ import division, print_function, absolute_import

from ... import model_defaults
from ...smhm_models import Behroozi10SmHm
from ...component_model_templates import BinaryGalpropInterpolModel

from ....sim_manager import sim_defaults


__all__ = ['smhm_binary_sfr_model_dictionary']


[docs] def smhm_binary_sfr_model_dictionary( prim_haloprop_key=model_defaults.default_smhm_haloprop, smhm_model=Behroozi10SmHm, scatter_level=0.2, redshift=sim_defaults.default_redshift, sfr_abscissa=[12, 15], sfr_ordinates=[0.25, 0.75], logparam=True, **kwargs): """ Dictionary to build a subhalo-based model for both stellar mass and star-formation rate. Stellar masses are based on `~halotools.empirical_models.Behroozi10SmHm` by default. SFR-designation is binary and is based on an input quenched fraction as a function of some halo property such as virial mass. In particular, SFR designation is determined by interpolating between a set of input control points, with default behavior being a 25% quiescent fraction for galaxies residing in Milky Way halos, and 75% for cluster galaxies. Since `smhm_binary_sfr_model_dictionary` does not discriminate between centrals and satellites in the SFR assignment, this model is physically unrealistic and is included here primarily for demonstration purposes. Parameters ---------- prim_haloprop_key : string, optional String giving the column name of the primary halo property governing the galaxy propery being modeled. Default is set in the `~halotools.empirical_models.model_defaults` module. smhm_model : object, optional Sub-class of `~halotools.empirical_models.PrimGalpropModel` governing the stellar-to-halo-mass relation. Default is `Behroozi10SmHm`. scatter_level : float, optional Constant amount of scatter in stellar mass, in dex. Default is 0.2. redshift : float, optional Redshift of the halo hosting the galaxy. Used to evaluate the stellar-to-halo-mass relation. Default is set in `~halotools.sim_manager.sim_defaults`. sfr_abscissa : array, optional Values of the primary halo property at which the quiescent fraction is specified. Default is [12, 15], in accord with the default True value for ``logparam``. sfr_ordinates : array, optional Values of the quiescent fraction when evaluated at the input abscissa. Default is [0.25, 0.75] logparam : bool, optional If set to True, the interpolation will be done in the base-10 logarithm of the primary halo property, rather than linearly. Default is True. threshold : float, optional Stellar mass threshold of mock galaxy catalog. Default is None, in which case the lower bound on stellar mass will be entirely determined by the resolution of the N-body simulation and the model parameters. Returns ------- model : object Instance of `~halotools.empirical_models.SubhaloModelFactory` Examples -------- >>> from halotools.empirical_models import SubhaloModelFactory >>> model_dictionary = smhm_binary_sfr_model_dictionary() >>> model_instance = SubhaloModelFactory(**model_dictionary) """ sfr_model = BinaryGalpropInterpolModel(sfr_abscissa, sfr_ordinates, galprop_name='quiescent', prim_haloprop_key=prim_haloprop_key, logparam=logparam, **kwargs) sm_model = smhm_model( prim_haloprop_key=prim_haloprop_key, redshift=redshift, scatter_abscissa=[12], scatter_ordinates=[scatter_level], **kwargs) model_dictionary = {'stellar_mass': sm_model, 'quiescent': sfr_model} return model_dictionary