Source code for imagine.fields.hamx.breg_jf12

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

# All declaration
__all__ = ['BregJF12', 'BregJF12Factory']

[docs]class BregJF12(DummyField): """ This dummy field instructs the :py:class:`Hammurabi <imagine.simulators.hammurabi.Hammurabi>` simulator class to use the HammurabiX's builtin regular magnetic field for the Jansson & Farrar model, https://ui.adsabs.harvard.edu/abs/2012ApJ...757...14J/abstract """ NAME = 'breg_jf12' FIELD_CHECKLIST = {'b_arm1': (['magneticfield', 'regular', 'jf12', 'b_arm1'], 'value'), 'b_arm2': (['magneticfield', 'regular', 'jf12', 'b_arm2'], 'value'), 'b_arm3': (['magneticfield', 'regular', 'jf12', 'b_arm3'], 'value'), 'b_arm4': (['magneticfield', 'regular', 'jf12', 'b_arm4'], 'value'), 'b_arm5': (['magneticfield', 'regular', 'jf12', 'b_arm5'], 'value'), 'b_arm6': (['magneticfield', 'regular', 'jf12', 'b_arm6'], 'value'), 'b_arm7': (['magneticfield', 'regular', 'jf12', 'b_arm7'], 'value'), 'b_ring': (['magneticfield', 'regular', 'jf12', 'b_ring'], 'value'), 'h_disk': (['magneticfield', 'regular', 'jf12', 'h_disk'], 'value'), 'w_disk': (['magneticfield', 'regular', 'jf12', 'w_disk'], 'value'), 'Bn': (['magneticfield', 'regular', 'jf12', 'Bn'], 'value'), 'Bs': (['magneticfield', 'regular', 'jf12', 'Bs'], 'value'), 'rn': (['magneticfield', 'regular', 'jf12', 'rn'], 'value'), 'rs': (['magneticfield', 'regular', 'jf12', 'rs'], 'value'), 'wh': (['magneticfield', 'regular', 'jf12', 'wh'], 'value'), 'z0': (['magneticfield', 'regular', 'jf12', 'z0'], 'value'), 'B0_X': (['magneticfield', 'regular', 'jf12', 'B0_X'], 'value'), 'Xtheta': (['magneticfield', 'regular', 'jf12', 'Xtheta'], 'value'), 'rpc_X': (['magneticfield', 'regular', 'jf12', 'rpc_X'], 'value'), 'r0_X': (['magneticfield', 'regular', 'jf12', 'r0_X'], 'value')} SIMULATOR_CONTROLLIST = {'cue': (['magneticfield', 'regular'], {'cue': '1'}), 'type': (['magneticfield', 'regular'], {'type': 'jf12'})}
[docs]class BregJF12Factory(FieldFactory): """ Field factory that produces the dummy field :py:class:`BregJF12` (see its docs for details). """ FIELD_CLASS = BregJF12 DEFAULT_PARAMETERS = {'b_arm1': 0.1, 'b_arm2': 3.0, 'b_arm3': -0.9, 'b_arm4': -0.8, 'b_arm5': -2.0, 'b_arm6': -4.2, 'b_arm7': 0.0, 'b_ring': 0.1, 'h_disk': 0.40, 'w_disk': 0.27, 'Bn': 1.4, 'Bs': -1.1, 'rn': 9.22, 'rs': 16.7, 'wh': 0.20, 'z0': 5.3, 'B0_X': 4.6,'Xtheta': 49, 'rpc_X': 4.8, 'r0_X': 2.9} PRIORS = { 'b_arm1': FlatPrior(xmin =-1., xmax =1.), 'b_arm2': FlatPrior(xmin = 2., xmax = 4.), 'b_arm3': FlatPrior(xmin =-1.,xmax =1.), 'b_arm4': FlatPrior(xmin =-1.,xmax =1.), 'b_arm5': FlatPrior(xmin =-3.,xmax =-1.), 'b_arm6': FlatPrior(xmin =-5.,xmax =-3.), 'b_arm7': FlatPrior(xmin =-1.,xmax =1.), 'b_ring': FlatPrior(xmin =-1.,xmax =1.), 'h_disk': FlatPrior(xmin =-1.,xmax =1.), 'w_disk': FlatPrior(xmin =-1.,xmax =1.), 'Bn' : FlatPrior(xmin =0.,xmax =2.), 'Bs' : FlatPrior(xmin =-2.,xmax =0.), 'rn' : FlatPrior(xmin =8.,xmax =10.), 'rs' : FlatPrior(xmin =15.,xmax =17.), 'wh' : FlatPrior(xmin =0.,xmax =2.), 'z0' : FlatPrior(xmin =4.,xmax =6.), 'B0_X' : FlatPrior(xmin =4.,xmax =6.), 'Xtheta': FlatPrior(xmin =48.,xmax =50.), 'rpc_X' : FlatPrior(xmin =4.,xmax =6.), 'r0_X': FlatPrior(xmin =2., xmax =4.)}