Source code for imagine.fields.hamx.cre_analytic

# %% IMPORTS
# IMAGINE imports
from imagine.fields import DummyField, FieldFactory
from imagine.priors import FlatPrior

# All declaration
__all__ = ['CREAna', 'CREAnaFactory']


# %% CLASS DEFINITIONS
[docs]class CREAna(DummyField): """ This dummy field instructs the :py:class:`Hammurabi <imagine.simulators.hammurabi.Hammurabi>` simulator class to use the HammurabiX's builtin analytic cosmic ray electron distribution """ NAME = 'cre_ana' FIELD_CHECKLIST = {'alpha': (['cre', 'analytic', 'alpha'], 'value'), 'beta': (['cre', 'analytic', 'beta'], 'value'), 'theta': (['cre', 'analytic', 'theta'], 'value'), 'r0': (['cre', 'analytic', 'r0'], 'value'), 'z0': (['cre', 'analytic', 'z0'], 'value'), 'E0': (['cre', 'analytic', 'E0'], 'value'), 'j0': (['cre', 'analytic', 'j0'], 'value')} SIMULATOR_CONTROLLIST = {'cue': (['cre'], {'cue': '1'}), 'type': (['cre'], {'type': 'analytic'})}
[docs]class CREAnaFactory(FieldFactory): """ Field factory that produces the dummy field :py:class:`CREAna` (see its docs for details). """ # Class attributes FIELD_CLASS = CREAna DEFAULT_PARAMETERS = {'alpha': 3, 'beta': 0, 'theta': 0, 'r0': 5, 'z0': 1, 'E0': 20.6, 'j0': 0.0217} PRIORS = {'alpha': FlatPrior(xmin=2, xmax=4), 'beta': FlatPrior(xmin=-1, xmax=1), 'theta': FlatPrior(xmin=-1, xmax=1), 'r0': FlatPrior(xmin=0.1, xmax=10), 'z0': FlatPrior(xmin=0.1, xmax=3), 'E0': FlatPrior(xmin=10, xmax=30), 'j0': FlatPrior(xmin=0, xmax=0.1)}