GammaLib  2.1.0.dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GModelSpatialRadialProfileDMEinasto Class Reference

#include <GModelSpatialRadialProfileDMEinasto.hpp>

Inheritance diagram for GModelSpatialRadialProfileDMEinasto:
GModelSpatialRadialProfile GModelSpatialRadial GModelSpatial GBase

Classes

class  halo_kernel_los
 

Public Member Functions

 GModelSpatialRadialProfileDMEinasto (void)
 Void constructor. More...
 
 GModelSpatialRadialProfileDMEinasto (const GXmlElement &xml)
 XML constructor. More...
 
 GModelSpatialRadialProfileDMEinasto (const GModelSpatialRadialProfileDMEinasto &model)
 Copy constructor. More...
 
virtual ~GModelSpatialRadialProfileDMEinasto (void)
 Destructor. More...
 
virtual
GModelSpatialRadialProfileDMEinasto
operator= (const GModelSpatialRadialProfileDMEinasto &model)
 Assignment operator. More...
 
virtual void clear (void)
 Clear radial DMEinasto profile model. More...
 
virtual
GModelSpatialRadialProfileDMEinasto
clone (void) const
 Clone radial DMEinasto 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 Einasto alpha power index. More...
 
void alpha (const double &alpha)
 Set Einasto profile 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 GModelSpatialRadialoperator= (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 GSkyDirdir (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 GModelSpatialoperator= (const GModelSpatial &model)
 Assignment operator. More...
 
virtual GModelParoperator[] (const int &index)
 Returns model parameter. More...
 
virtual const GModelParoperator[] (const int &index) const
 Returns model parameter (const version) More...
 
virtual GModelParoperator[] (const std::string &name)
 Returns model parameter. More...
 
virtual const GModelParoperator[] (const std::string &name) const
 Returns model parameter (const version) More...
 
virtual double flux (const GSkyRegion &region, const GEnergy &srcEng=GEnergy(), const GTime &srcTime=GTime()) const
 Returns model flux within sky region. More...
 
std::string type (void) const
 Return model type. More...
 
void type (const std::string &type)
 Set model type. More...
 
GModelParat (const int &index)
 Returns model parameter. More...
 
const GModelParat (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 GSkyRegionregion (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 GModelSpatialRadialProfileDMEinasto &model)
 Copy class members. More...
 
void free_members (void)
 Delete class members. More...
 
virtual double profile_value (const double &theta) const
 Radial profile. More...
 
void update (void) const
 Update precomputation cache. 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
 Einasto spatial power index. 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< profilem_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...
 

Detailed Description

Definition at line 49 of file GModelSpatialRadialProfileDMEinasto.hpp.

Constructor & Destructor Documentation

GModelSpatialRadialProfileDMEinasto::GModelSpatialRadialProfileDMEinasto ( void  )

Void constructor.

Constructs empty radial DMEinasto profile

Definition at line 66 of file GModelSpatialRadialProfileDMEinasto.cpp.

References init_members().

Referenced by clone().

GModelSpatialRadialProfileDMEinasto::GModelSpatialRadialProfileDMEinasto ( const GXmlElement xml)
explicit

XML constructor.

Parameters
[in]xmlXML element.

Constructs radial DMEinasto 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 GModelSpatialRadialProfileDMEinasto.cpp.

References init_members(), and read().

GModelSpatialRadialProfileDMEinasto::GModelSpatialRadialProfileDMEinasto ( const GModelSpatialRadialProfileDMEinasto model)

Copy constructor.

Parameters
[in]modelRadial DMEinasto profile model.

Copies radial DMEinasto profile model from another radial profile model.

Definition at line 107 of file GModelSpatialRadialProfileDMEinasto.cpp.

References copy_members(), and init_members().

GModelSpatialRadialProfileDMEinasto::~GModelSpatialRadialProfileDMEinasto ( void  )
virtual

Destructor.

Destructs radial DMEinasto profile model.

Definition at line 126 of file GModelSpatialRadialProfileDMEinasto.cpp.

References free_members().

Member Function Documentation

double GModelSpatialRadialProfileDMEinasto::alpha ( void  ) const
inline

Return Einasto alpha power index.

Returns
Einasto profile power index alpha (unitless).

Returns the alpha power index in the Einasto halo density function.

Definition at line 238 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_alpha, and GOptimizerPar::value().

void GModelSpatialRadialProfileDMEinasto::alpha ( const double &  alpha)
inline

Set Einasto profile power index.

Parameters
[in]alphaEinasto profile power index (unitless).

Sets the Einasto profile power index, should be positive.

Definition at line 252 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_alpha, and GOptimizerPar::value().

std::string GModelSpatialRadialProfileDMEinasto::classname ( void  ) const
inlinevirtual

Return class name.

Returns
String containing the class name ("GModelSpatialRadialProfileDMEinasto").

Implements GModelSpatialRadialProfile.

Definition at line 136 of file GModelSpatialRadialProfileDMEinasto.hpp.

void GModelSpatialRadialProfileDMEinasto::clear ( void  )
virtual
GModelSpatialRadialProfileDMEinasto * GModelSpatialRadialProfileDMEinasto::clone ( void  ) const
virtual

Clone radial DMEinasto profile model.

Returns
Pointer to deep copy of radial DMEinasto profile model.

Returns a deep copy of the radial DMEinasto profile model.

Implements GModelSpatialRadialProfile.

Definition at line 211 of file GModelSpatialRadialProfileDMEinasto.cpp.

References GModelSpatialRadialProfileDMEinasto().

void GModelSpatialRadialProfileDMEinasto::copy_members ( const GModelSpatialRadialProfileDMEinasto model)
protected

Copy class members.

Parameters
[in]modelRadial DMEinasto model.

Copies class members from another radial profile model.

Definition at line 545 of file GModelSpatialRadialProfileDMEinasto.cpp.

References m_alpha, m_core_radius, 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 GModelSpatialRadialProfileDMEinasto(), and operator=().

void GModelSpatialRadialProfileDMEinasto::free_members ( void  )
protected

Delete class members.

Definition at line 573 of file GModelSpatialRadialProfileDMEinasto.cpp.

Referenced by clear(), operator=(), and ~GModelSpatialRadialProfileDMEinasto().

double GModelSpatialRadialProfileDMEinasto::halo_distance ( void  ) const
inline

Return halo distance.

Returns
Halo distance (kpc).

Returns the distance to the halo center in kpc.

Definition at line 209 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_halo_distance, and GOptimizerPar::value().

void GModelSpatialRadialProfileDMEinasto::halo_distance ( const double &  distance)
inline

Set halo distance.

Parameters
[in]distanceHalo distance (kpc).

Sets the distance between the observer and the halo center in kpc.

Definition at line 223 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_halo_distance, and GOptimizerPar::value().

double GModelSpatialRadialProfileDMEinasto::jfactor ( const double &  angle) const

Calculate J-factor.

Parameters
[in]anglefrom halo center (radians)
Returns
J-factor.

Calculates the halo's J-factor at an angle from the halo center.

Definition at line 761 of file GModelSpatialRadialProfileDMEinasto.cpp.

References profile_value(), and gammalib::twopi.

double GModelSpatialRadialProfileDMEinasto::mass_density ( const double &  radius) const

Calculate halo mass density.

Parameters
[in]radiusDistance from halo center (kpc).
Returns
Halo mass density.

Calculates the halo's mass density at a given radial distance from the halo center.

Definition at line 732 of file GModelSpatialRadialProfileDMEinasto.cpp.

References m_alpha, m_core_radius, m_halo_distance, m_scale_density, m_scale_radius, sqrt(), and GOptimizerPar::value().

GModelSpatialRadialProfileDMEinasto & GModelSpatialRadialProfileDMEinasto::operator= ( const GModelSpatialRadialProfileDMEinasto model)
virtual

Assignment operator.

Parameters
[in]modelRadial DMEinasto profile model.
Returns
Radial DMEinasto profile model.

Assigns radial DMEinasto profile model.

Definition at line 150 of file GModelSpatialRadialProfileDMEinasto.cpp.

References copy_members(), free_members(), init_members(), and GModelSpatialRadialProfile::operator=().

std::string GModelSpatialRadialProfileDMEinasto::print ( const GChatter chatter = NORMAL) const
virtual

Print information.

Parameters
[in]chatterChattiness.
Returns
String containing model information.

Implements GModelSpatialRadialProfile.

Definition at line 400 of file GModelSpatialRadialProfileDMEinasto.cpp.

References GModelSpatial::m_pars, gammalib::parformat(), SILENT, GModelSpatial::size(), and gammalib::str().

double GModelSpatialRadialProfileDMEinasto::profile_value ( const double &  theta) const
protectedvirtual

Radial profile.

Parameters
[in]thetaAngular distance from DMEinasto centre (radians).
Returns
Profile value.

Implements GModelSpatialRadialProfile.

Definition at line 586 of file GModelSpatialRadialProfileDMEinasto.cpp.

References m_alpha, m_core_radius, m_halo_distance, m_mass_radius, m_scale_density_squared, m_scale_radius, update(), and GOptimizerPar::value().

Referenced by jfactor().

void GModelSpatialRadialProfileDMEinasto::read ( const GXmlElement xml)
virtual

Read model from XML element.

Parameters
[in]xmlXML element.

Reads the DMEinasto radial profile model information from an XML element. The XML element shall have the format

<spatialModel type="DMEinastoProfile">
  <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="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 GModelSpatialRadialProfileDMEinasto.cpp.

References G_READ, m_alpha, m_core_radius, 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 GModelSpatialRadialProfileDMEinasto().

double GModelSpatialRadialProfileDMEinasto::scale_density ( void  ) const
inline

Return scale density.

Returns
Scale density (GeV/cm^3).

Returns the scale radius of the halo profile in kpc.

Definition at line 179 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_scale_density, and GOptimizerPar::value().

Referenced by update().

void GModelSpatialRadialProfileDMEinasto::scale_density ( const double &  density)
inline

Set scale density.

Parameters
[in]densityScale 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 194 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_scale_density, and GOptimizerPar::value().

double GModelSpatialRadialProfileDMEinasto::scale_radius ( void  ) const
inline

Return scale radius.

Returns
scale radius (kpc).

Returns the scale radius of the halo profile in kpc.

Definition at line 150 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_scale_radius, and GOptimizerPar::value().

Referenced by update().

void GModelSpatialRadialProfileDMEinasto::scale_radius ( const double &  radius)
inline

Set scale radius.

Parameters
[in]radiusScale radius (kpc).

Sets the scale radius of the halo profile in kpc.

Definition at line 164 of file GModelSpatialRadialProfileDMEinasto.hpp.

References m_scale_radius, and GOptimizerPar::value().

double GModelSpatialRadialProfileDMEinasto::theta_max ( void  ) const
virtual

Return maximum model radius (in radians)

Returns
Maximum model radius (in radians).

Implements GModelSpatialRadialProfile.

Definition at line 239 of file GModelSpatialRadialProfileDMEinasto.cpp.

References atan(), gammalib::deg2rad, m_halo_distance, m_mass_radius, m_theta_max, gammalib::pi, update(), and GOptimizerPar::value().

double GModelSpatialRadialProfileDMEinasto::theta_min ( void  ) const
virtual

Return minimum model radius (in radians)

Returns
Minimum model radius (in radians).

Implements GModelSpatialRadialProfile.

Definition at line 223 of file GModelSpatialRadialProfileDMEinasto.cpp.

References m_theta_min, update(), and GOptimizerPar::value().

void GModelSpatialRadialProfileDMEinasto::update ( void  ) const
protected

Update precomputation cache.

Computes the m_mass_radius calculation, determining the radius around the halo that contains 99.99% of the mass. For an Einasto halo profile, this is just 10.0 * scale_radius .

Definition at line 702 of file GModelSpatialRadialProfileDMEinasto.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().

void GModelSpatialRadialProfileDMEinasto::write ( GXmlElement xml) const
virtual

Write model into XML element.

Parameters
[in]xmlXML element into which model information is written.

Writes the DMEinasto radial profile model information into an XML element. The XML element will have the format

<spatialModel type="DMEinastoProfile">
  <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="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 353 of file GModelSpatialRadialProfileDMEinasto.cpp.

References G_WRITE, m_alpha, m_core_radius, 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().

Member Data Documentation

GModelPar GModelSpatialRadialProfileDMEinasto::m_alpha
protected

Einasto spatial power index.

Definition at line 119 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by alpha(), copy_members(), init_members(), mass_density(), profile_value(), read(), and write().

GModelPar GModelSpatialRadialProfileDMEinasto::m_core_radius
protected
GModelPar GModelSpatialRadialProfileDMEinasto::m_halo_distance
protected

Distance from earth to halo center.

Definition at line 118 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), halo_distance(), init_members(), mass_density(), profile_value(), read(), theta_max(), and write().

double GModelSpatialRadialProfileDMEinasto::m_last_scale_density
mutableprotected

Definition at line 124 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), init_members(), and update().

double GModelSpatialRadialProfileDMEinasto::m_last_scale_radius
mutableprotected

Definition at line 123 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), init_members(), and update().

double GModelSpatialRadialProfileDMEinasto::m_mass_radius
mutableprotected
GModelPar GModelSpatialRadialProfileDMEinasto::m_scale_density
protected

Scale density of halo profile.

Definition at line 117 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), init_members(), mass_density(), read(), scale_density(), and write().

double GModelSpatialRadialProfileDMEinasto::m_scale_density_squared
mutableprotected
GModelPar GModelSpatialRadialProfileDMEinasto::m_scale_radius
protected

Scale radius of halo profile.

Definition at line 116 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), init_members(), mass_density(), profile_value(), read(), scale_radius(), and write().

GModelPar GModelSpatialRadialProfileDMEinasto::m_theta_max
protected

Maximum theta angle.

Definition at line 115 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), init_members(), read(), theta_max(), and write().

GModelPar GModelSpatialRadialProfileDMEinasto::m_theta_min
protected

Minimum theta angle.

Definition at line 114 of file GModelSpatialRadialProfileDMEinasto.hpp.

Referenced by copy_members(), init_members(), read(), theta_min(), and write().


The documentation for this class was generated from the following files: