GammaLib
2.0.0
|
#include <GModelSpatialRadialProfileDMZhao.hpp>
Classes | |
class | halo_kernel_los |
Public Member Functions | |
GModelSpatialRadialProfileDMZhao (void) | |
Void constructor. More... | |
GModelSpatialRadialProfileDMZhao (const GXmlElement &xml) | |
XML constructor. More... | |
GModelSpatialRadialProfileDMZhao (const GModelSpatialRadialProfileDMZhao &model) | |
Copy constructor. More... | |
virtual | ~GModelSpatialRadialProfileDMZhao (void) |
Destructor. More... | |
virtual GModelSpatialRadialProfileDMZhao & | operator= (const GModelSpatialRadialProfileDMZhao &model) |
Assignment operator. More... | |
virtual void | clear (void) |
Clear radial DMZhao profile model. More... | |
virtual GModelSpatialRadialProfileDMZhao * | clone (void) const |
Clone radial DMZhao profile model. More... | |
virtual std::string | classname (void) const |
Return class name. More... | |
virtual double | theta_min (void) const |
Return minimum model radius (in radians) More... | |
virtual double | theta_max (void) const |
Return maximum model radius (in radians) More... | |
virtual void | read (const GXmlElement &xml) |
Read model from XML element. More... | |
virtual void | write (GXmlElement &xml) const |
Write model into XML element. More... | |
virtual std::string | print (const GChatter &chatter=NORMAL) const |
Print information. More... | |
double | scale_radius (void) const |
Return scale radius. More... | |
void | scale_radius (const double &scale_radius) |
Set scale radius. More... | |
double | scale_density (void) const |
Return scale density. More... | |
void | scale_density (const double &scale_density) |
Set scale density. More... | |
double | halo_distance (void) const |
Return halo distance. More... | |
void | halo_distance (const double &halo_distance) |
Set halo distance. More... | |
double | alpha (void) const |
Return Zhao alpha power index. More... | |
void | alpha (const double &alpha) |
Set Zhao alpha power index. More... | |
double | beta (void) const |
Return Zhao beta power index. More... | |
void | beta (const double &beta) |
Set Zhao beta power index. More... | |
double | gamma (void) const |
Return Zhao gamma power index. More... | |
void | gamma (const double &gamma) |
Set Zhao gamma power index. More... | |
double | mass_density (const double &radius) const |
Calculate Halo Mass Density. More... | |
double | jfactor (const double &angle) const |
Calculate J-factor. More... | |
Public Member Functions inherited from GModelSpatialRadialProfile | |
GModelSpatialRadialProfile (void) | |
Void constructor. More... | |
GModelSpatialRadialProfile (const GXmlElement &xml) | |
XML constructor. More... | |
GModelSpatialRadialProfile (const GModelSpatialRadialProfile &model) | |
Copy constructor. More... | |
virtual | ~GModelSpatialRadialProfile (void) |
Destructor. More... | |
virtual GModelSpatialRadialProfile & | operator= (const GModelSpatialRadialProfile &model) |
Assignment operator. More... | |
virtual double | eval (const double &theta, const GEnergy &energy, const GTime &time, const bool &gradients=false) const |
Evaluate function (in units of sr^-1) More... | |
virtual GSkyDir | mc (const GEnergy &energy, const GTime &time, GRan &ran) const |
Return MC sky direction. More... | |
virtual bool | contains (const GSkyDir &dir, const double &margin=0.0) const |
Checks where model contains specified sky direction. More... | |
int | num_nodes (void) const |
Return number of nodes. More... | |
void | num_nodes (const int &number) |
Set number of nodes. More... | |
Public Member Functions inherited from GModelSpatialRadial | |
GModelSpatialRadial (void) | |
Void constructor. More... | |
GModelSpatialRadial (const GModelSpatialRadial &model) | |
Copy constructor. More... | |
GModelSpatialRadial (const GXmlElement &xml) | |
XML constructor. More... | |
virtual | ~GModelSpatialRadial (void) |
Destructor. More... | |
virtual GModelSpatialRadial & | operator= (const GModelSpatialRadial &model) |
Assignment operator. More... | |
virtual GClassCode | code (void) const |
Return class code. More... | |
virtual bool | is_energy_dependent (void) const |
Signals whether radial model is energy dependent. More... | |
virtual bool | is_time_dependent (void) const |
Signals whether radial model is time dependent. More... | |
virtual double | eval (const GPhoton &photon, const bool &gradients=false) const |
Return model value. More... | |
virtual double | mc_norm (const GSkyDir &dir, const double &radius) const |
Return normalization of radial source for Monte Carlo simulations. More... | |
std::string | coordsys (void) const |
Return coordinate system. More... | |
const GSkyDir & | dir (void) const |
Return position of radial spatial model. More... | |
void | dir (const GSkyDir &dir) |
Set position of radial spatial model. More... | |
Public Member Functions inherited from GModelSpatial | |
GModelSpatial (void) | |
Void constructor. More... | |
GModelSpatial (const GModelSpatial &model) | |
Copy constructor. More... | |
virtual | ~GModelSpatial (void) |
Destructor. More... | |
virtual GModelSpatial & | operator= (const GModelSpatial &model) |
Assignment operator. More... | |
virtual GModelPar & | operator[] (const int &index) |
Returns model parameter. More... | |
virtual const GModelPar & | operator[] (const int &index) const |
Returns model parameter (const version) More... | |
virtual GModelPar & | operator[] (const std::string &name) |
Returns model parameter. More... | |
virtual const GModelPar & | operator[] (const std::string &name) const |
Returns model parameter (const version) More... | |
virtual double | flux (const GSkyRegion ®ion, const GEnergy &srcEng=GEnergy(), const GTime &srcTime=GTime()) const |
Returns model flux integrated in circular sky region. More... | |
std::string | type (void) const |
Return model type. More... | |
void | type (const std::string &type) |
Set model type. More... | |
GModelPar & | at (const int &index) |
Returns model parameter. More... | |
const GModelPar & | at (const int &index) const |
Returns model parameter (const version) More... | |
bool | has_par (const std::string &name) const |
Checks if parameter name exists. More... | |
bool | has_free_pars (void) const |
Checks if the spatial model has free parameters. More... | |
int | size (void) const |
Return number of parameters. More... | |
void | autoscale (void) |
Autoscale parameters. More... | |
const GSkyRegion * | region (void) const |
Return boundary sky region. More... | |
Public Member Functions inherited from GBase | |
virtual | ~GBase (void) |
Destructor. More... | |
Protected Member Functions | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GModelSpatialRadialProfileDMZhao &model) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
void | update (void) const |
Update precomputation cache. More... | |
virtual double | profile_value (const double &theta) const |
Radial profile. More... | |
Protected Member Functions inherited from GModelSpatialRadialProfile | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GModelSpatialRadialProfile &model) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
int | cache_index (void) const |
Return index to pre-computation cache. More... | |
virtual void | set_region (void) const |
Set boundary sky region. More... | |
Protected Member Functions inherited from GModelSpatialRadial | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GModelSpatialRadial &model) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
bool | is_celestial (void) const |
Check if model holds celestial coordinates. More... | |
Protected Member Functions inherited from GModelSpatial | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GModelSpatial &model) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
Protected Attributes | |
GModelPar | m_theta_min |
Minimum theta angle. More... | |
GModelPar | m_theta_max |
Maximum theta angle. More... | |
GModelPar | m_scale_radius |
Scale radius of halo profile. More... | |
GModelPar | m_scale_density |
Scale density of halo profile. More... | |
GModelPar | m_halo_distance |
Distance from earth to halo center. More... | |
GModelPar | m_alpha |
Power index, inverse transition region width. More... | |
GModelPar | m_beta |
Power index, slope at >> m_scale_radius. More... | |
GModelPar | m_gamma |
Power index, slope at << m_scale_radius. More... | |
GModelPar | m_core_radius |
Core radius. More... | |
double | m_last_scale_radius |
double | m_last_scale_density |
double | m_mass_radius |
double | m_scale_density_squared |
Protected Attributes inherited from GModelSpatialRadialProfile | |
bool | m_coord_indep |
True if model independent of sky coordinates. More... | |
int | m_num_nodes |
Number of profile nodes. More... | |
std::vector< profile > | m_profile |
Pre-computation cache. More... | |
Protected Attributes inherited from GModelSpatialRadial | |
GModelPar | m_lon |
Right Ascension or Galactic longitude (deg) More... | |
GModelPar | m_lat |
Declination or Galactic latitude (deg) More... | |
GSkyDir | m_dir |
Sky direction representing parameters. More... | |
double | m_last_lon |
Last longitude. More... | |
double | m_last_lat |
Last latitude. More... | |
Protected Attributes inherited from GModelSpatial | |
std::string | m_type |
Spatial model type. More... | |
GSkyRegionCircle | m_region |
Bounding circle. More... | |
std::vector< GModelPar * > | m_pars |
Parameter pointers. More... | |
Definition at line 49 of file GModelSpatialRadialProfileDMZhao.hpp.
GModelSpatialRadialProfileDMZhao::GModelSpatialRadialProfileDMZhao | ( | void | ) |
Void constructor.
Constructs empty radial DMZhao profile
Definition at line 66 of file GModelSpatialRadialProfileDMZhao.cpp.
References init_members().
Referenced by clone().
|
explicit |
XML constructor.
[in] | xml | XML element. |
Constructs radial DMZhao profile model by extracting information from an XML element. See the read() method for more information about the expected structure of the XML element.
Definition at line 86 of file GModelSpatialRadialProfileDMZhao.cpp.
References init_members(), and read().
GModelSpatialRadialProfileDMZhao::GModelSpatialRadialProfileDMZhao | ( | const GModelSpatialRadialProfileDMZhao & | model | ) |
Copy constructor.
[in] | model | Radial DMZhao profile model. |
Copies radial DMZhao profile model from another radial profile model.
Definition at line 107 of file GModelSpatialRadialProfileDMZhao.cpp.
References copy_members(), and init_members().
|
virtual |
Destructor.
Destructs radial DMZhao profile model.
Definition at line 126 of file GModelSpatialRadialProfileDMZhao.cpp.
References free_members().
|
inline |
Return Zhao alpha power index.
Returns the alpha power index in the Zhao halo density function
Definition at line 251 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_alpha, and GOptimizerPar::value().
|
inline |
Set Zhao alpha power index.
[in] | alpha | (unitless). |
Sets the Zhao profile alpha power index.
Definition at line 265 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_alpha, and GOptimizerPar::value().
|
inline |
Return Zhao beta power index.
Returns the beta power index in the Zhao halo density function
Definition at line 280 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_beta, and GOptimizerPar::value().
|
inline |
Set Zhao beta power index.
[in] | beta | (unitless). |
Sets the Zhao profile beta power index.
Definition at line 294 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_beta, and GOptimizerPar::value().
|
inlinevirtual |
Return class name.
Implements GModelSpatialRadialProfile.
Definition at line 148 of file GModelSpatialRadialProfileDMZhao.hpp.
|
virtual |
Clear radial DMZhao profile model.
Clears radial DMZhao profile model.
Implements GModelSpatialRadialProfile.
Definition at line 185 of file GModelSpatialRadialProfileDMZhao.cpp.
References GModelSpatialRadialProfile::free_members(), free_members(), GModelSpatialRadial::free_members(), GModelSpatial::free_members(), GModelSpatialRadialProfile::init_members(), init_members(), GModelSpatialRadial::init_members(), and GModelSpatial::init_members().
|
virtual |
Clone radial DMZhao profile model.
Returns a deep copy of the radial DMZhao profile model.
Implements GModelSpatialRadialProfile.
Definition at line 211 of file GModelSpatialRadialProfileDMZhao.cpp.
References GModelSpatialRadialProfileDMZhao().
|
protected |
Copy class members.
[in] | model | Radial DMZhao model. |
Copies class members from another radial profile model.
Definition at line 588 of file GModelSpatialRadialProfileDMZhao.cpp.
References m_alpha, m_beta, m_core_radius, m_gamma, m_halo_distance, m_last_scale_density, m_last_scale_radius, m_mass_radius, m_scale_density, m_scale_density_squared, m_scale_radius, m_theta_max, m_theta_min, and GModelSpatial::m_type.
Referenced by GModelSpatialRadialProfileDMZhao(), and operator=().
|
protected |
Delete class members.
Definition at line 618 of file GModelSpatialRadialProfileDMZhao.cpp.
Referenced by clear(), operator=(), and ~GModelSpatialRadialProfileDMZhao().
|
inline |
Return Zhao gamma power index.
Returns the gamma power index in the Zhao halo density function
Definition at line 309 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_gamma, and GOptimizerPar::value().
|
inline |
Set Zhao gamma power index.
[in] | gamma | (unitless). |
Sets the Zhao profile gamma power index.
Definition at line 323 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_gamma, and GOptimizerPar::value().
|
inline |
Return halo distance.
Returns the distance to the halo center in kpc.
Definition at line 222 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_halo_distance, and GOptimizerPar::value().
|
inline |
Set halo distance.
[in] | distance | Halo distance (kpc). |
Sets the distance between the observer and the halo center in kpc.
Definition at line 236 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_halo_distance, and GOptimizerPar::value().
|
protected |
Initialise class members.
Definition at line 452 of file GModelSpatialRadialProfileDMZhao.cpp.
References GOptimizerPar::clear(), GOptimizerPar::fix(), GOptimizerPar::free(), GOptimizerPar::gradient(), GOptimizerPar::has_grad(), m_alpha, m_beta, m_core_radius, m_gamma, m_halo_distance, m_last_scale_density, m_last_scale_radius, m_mass_radius, GModelSpatial::m_pars, m_scale_density, m_scale_density_squared, m_scale_radius, m_theta_max, m_theta_min, GModelSpatial::m_type, GOptimizerPar::max(), GOptimizerPar::min(), GOptimizerPar::name(), GOptimizerPar::scale(), GOptimizerPar::unit(), and GOptimizerPar::value().
Referenced by clear(), GModelSpatialRadialProfileDMZhao(), and operator=().
double GModelSpatialRadialProfileDMZhao::jfactor | ( | const double & | angle | ) | const |
Calculate J-factor.
[in] | angle | from halo center (radians) |
Calculates the halo's J-factor at an angle from the halo center.
Definition at line 805 of file GModelSpatialRadialProfileDMZhao.cpp.
References profile_value(), and gammalib::twopi.
double GModelSpatialRadialProfileDMZhao::mass_density | ( | const double & | radius | ) | const |
Calculate Halo Mass Density.
[in] | radius | Distance from halo center (kpc). |
Calculates the halo's mass density at a given radial distance from the halo center.
Definition at line 775 of file GModelSpatialRadialProfileDMZhao.cpp.
References m_alpha, m_beta, m_core_radius, m_gamma, m_halo_distance, m_scale_density, m_scale_radius, sqrt(), and GOptimizerPar::value().
|
virtual |
Assignment operator.
[in] | model | Radial DMZhao profile model. |
Assigns radial DMZhao profile model.
Definition at line 150 of file GModelSpatialRadialProfileDMZhao.cpp.
References copy_members(), free_members(), init_members(), and GModelSpatialRadialProfile::operator=().
|
virtual |
Print information.
[in] | chatter | Chattiness. |
Implements GModelSpatialRadialProfile.
Definition at line 418 of file GModelSpatialRadialProfileDMZhao.cpp.
References GModelSpatial::m_pars, gammalib::parformat(), SILENT, GModelSpatial::size(), and gammalib::str().
|
protectedvirtual |
Radial profile.
[in] | theta | Angular distance from DMZhao centre (radians). |
Implements GModelSpatialRadialProfile.
Definition at line 631 of file GModelSpatialRadialProfileDMZhao.cpp.
References m_alpha, m_beta, m_core_radius, m_gamma, m_halo_distance, m_mass_radius, m_scale_density_squared, m_scale_radius, update(), and GOptimizerPar::value().
Referenced by jfactor().
|
virtual |
Read model from XML element.
[in] | xml | XML element. |
Reads the DMZhao radial profile model information from an XML element. The XML element shall have the format
<spatialModel type="DMZhaoProfile"> <parameter name="RA" scale=.. value=.. min=.. max=.. free=../> <parameter name="DEC" scale=.. value=.. min=.. max=.. free=../> <parameter name="ScaleRadius" scale=.. value=.. min=.. max=.. free=../> <parameter name="ScaleDensity" scale=.. value=.. min=.. max=.. free=../> <parameter name="HaloDistance" scale=.. value=.. min=.. max=.. free=../> <parameter name="Alpha" scale=.. value=.. min=.. max=.. free=../> <parameter name="Beta" scale=.. value=.. min=.. max=.. free=../> <parameter name="Gamma" scale=.. value=.. min=.. max=.. free=../> <parameter name="ThetaMin" scale=.. value=.. min=.. max=.. free=../> <parameter name="ThetaMax" scale=.. value=.. min=.. max=.. free=../> <parameter name="CoreRadius" scale=.. value=.. min=.. max=.. free=../> </spatialModel>
Reimplemented from GModelSpatialRadial.
Definition at line 292 of file GModelSpatialRadialProfileDMZhao.cpp.
References G_READ, m_alpha, m_beta, m_core_radius, m_gamma, m_halo_distance, m_scale_density, m_scale_radius, m_theta_max, m_theta_min, GModelSpatialRadial::read(), GModelPar::read(), gammalib::xml_check_parnum(), and gammalib::xml_get_par().
Referenced by GModelSpatialRadialProfileDMZhao().
|
inline |
Return scale density.
Returns the scale density (mass/volume density at the scale radius) of the halo profile in GeV/cm^3.
Definition at line 192 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_scale_density, and GOptimizerPar::value().
Referenced by update().
|
inline |
Set scale density.
[in] | density | Scale density (GeV/cm^3). |
Sets the scale density (mass/volume density at the scale radius) of the halo profile in GeV/cm^3.
Definition at line 207 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_scale_density, and GOptimizerPar::value().
|
inline |
Return scale radius.
Returns the scale radius of the halo profile in kpc.
Definition at line 162 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_scale_radius, and GOptimizerPar::value().
Referenced by update().
|
inline |
Set scale radius.
[in] | radius | Scale radius (kpc). |
Sets the scale radius of the halo profile in kpc.
Definition at line 176 of file GModelSpatialRadialProfileDMZhao.hpp.
References m_scale_radius, and GOptimizerPar::value().
|
virtual |
Return maximum model radius (in radians)
Implements GModelSpatialRadialProfile.
Definition at line 238 of file GModelSpatialRadialProfileDMZhao.cpp.
References atan(), gammalib::deg2rad, m_halo_distance, m_mass_radius, m_theta_max, gammalib::pi, update(), and GOptimizerPar::value().
|
virtual |
Return minimum model radius (in radians)
Implements GModelSpatialRadialProfile.
Definition at line 222 of file GModelSpatialRadialProfileDMZhao.cpp.
References m_theta_min, update(), and GOptimizerPar::value().
|
protected |
Update precomputation cache.
Computes the m_mass_radius calculation, determining the radius around the halo that contains 99.99% of the mass. For a Zhao halo profile, this is just 10.0 * scale_radius .
Definition at line 745 of file GModelSpatialRadialProfileDMZhao.cpp.
References m_last_scale_density, m_last_scale_radius, m_mass_radius, m_scale_density_squared, scale_density(), and scale_radius().
Referenced by profile_value(), theta_max(), and theta_min().
|
virtual |
Write model into XML element.
[in] | xml | XML element into which model information is written. |
Writes the DMZhao radial profile model information into an XML element. The XML element will have the format
<spatialModel type="DMZhaoProfile"> <parameter name="RA" scale=.. value=.. min=.. max=.. free=../> <parameter name="DEC" scale=.. value=.. min=.. max=.. free=../> <parameter name="ScaleRadius" scale=.. value=.. min=.. max=.. free=../> <parameter name="ScaleDensity" scale=.. value=.. min=.. max=.. free=../> <parameter name="HaloDistance" scale=.. value=.. min=.. max=.. free=../> <parameter name="Alpha" scale=.. value=.. min=.. max=.. free=../> <parameter name="Beta" scale=.. value=.. min=.. max=.. free=../> <parameter name="Gamma" scale=.. value=.. min=.. max=.. free=../> <parameter name="ThetaMin" scale=.. value=.. min=.. max=.. free=../> <parameter name="ThetaMax" scale=.. value=.. min=.. max=.. free=../> <parameter name="CoreRadius" scale=.. value=.. min=.. max=.. free=../> </spatialModel>
Reimplemented from GModelSpatialRadial.
Definition at line 363 of file GModelSpatialRadialProfileDMZhao.cpp.
References G_WRITE, m_alpha, m_beta, m_core_radius, m_gamma, m_halo_distance, m_scale_density, m_scale_radius, m_theta_max, m_theta_min, GModelSpatial::type(), GModelSpatialRadial::write(), GModelPar::write(), gammalib::xml_check_type(), and gammalib::xml_need_par().
|
protected |
Power index, inverse transition region width.
Definition at line 129 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by alpha(), copy_members(), init_members(), mass_density(), profile_value(), read(), and write().
|
protected |
Power index, slope at >> m_scale_radius.
Definition at line 130 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by beta(), copy_members(), init_members(), mass_density(), profile_value(), read(), and write().
|
protected |
Core radius.
Definition at line 132 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), mass_density(), profile_value(), read(), and write().
|
protected |
Power index, slope at << m_scale_radius.
Definition at line 131 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), gamma(), init_members(), mass_density(), profile_value(), read(), and write().
|
protected |
Distance from earth to halo center.
Definition at line 128 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), halo_distance(), init_members(), mass_density(), profile_value(), read(), theta_max(), and write().
|
mutableprotected |
Definition at line 136 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), and update().
|
mutableprotected |
Definition at line 135 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), and update().
|
mutableprotected |
Definition at line 137 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), profile_value(), theta_max(), and update().
|
protected |
Scale density of halo profile.
Definition at line 127 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), mass_density(), read(), scale_density(), and write().
|
mutableprotected |
Definition at line 138 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), profile_value(), and update().
|
protected |
Scale radius of halo profile.
Definition at line 126 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), mass_density(), profile_value(), read(), scale_radius(), and write().
|
protected |
Maximum theta angle.
Definition at line 125 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), read(), theta_max(), and write().
|
protected |
Minimum theta angle.
Definition at line 124 of file GModelSpatialRadialProfileDMZhao.hpp.
Referenced by copy_members(), init_members(), read(), theta_min(), and write().