GammaLib  1.7.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 std::string type (void) const
 Return model type. 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...
 
virtual GSkyRegionregion (void) const
 Return boundary sky region. 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 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...
 
double ra (void) const
 Return Right Ascencion of model centre. More...
 
double dec (void) const
 Return Declination of model centre. More...
 
void ra (const double &ra)
 Set Right Ascencion of model centre. More...
 
void dec (const double &dec)
 Set Declination of model centre. More...
 
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 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...
 
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...
 
double flux (const GSkyRegion *reg, const GEnergy &srcEng=GEnergy(), const GTime &srcTime=GTime()) const
 Returns model flux integrated in circular 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...
 
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...
 
- 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
 
int m_num_nodes
 Number of profile nodes. More...
 
GSkyRegionCircle m_region
 Bounding circle. More...
 
std::vector< profilem_profile
 Pre-computation cache. More...
 
- Protected Attributes inherited from GModelSpatialRadial
GModelPar m_ra
 Right Ascension (deg) More...
 
GModelPar m_dec
 Declination (deg) More...
 
- Protected Attributes inherited from GModelSpatial
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 246 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 259 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 137 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 537 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, and m_theta_min.

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

void GModelSpatialRadialProfileDMEinasto::free_members ( void  )
protected

Delete class members.

Definition at line 564 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 219 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 232 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 752 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 723 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 394 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 577 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(), 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 191 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 205 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 164 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 177 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().

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

Return model type.

Returns
"DMEinastoProfile".

Returns the type of the radial profile model.

Implements GModelSpatialRadialProfile.

Definition at line 151 of file GModelSpatialRadialProfileDMEinasto.hpp.

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 693 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 350 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, GModelSpatialRadial::write(), GModelPar::write(), and gammalib::xml_need_par().

Member Data Documentation

GModelPar GModelSpatialRadialProfileDMEinasto::m_alpha
protected

Einasto spatial power index.

Definition at line 120 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 119 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 125 of file GModelSpatialRadialProfileDMEinasto.hpp.

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

double GModelSpatialRadialProfileDMEinasto::m_last_scale_radius
mutableprotected

Definition at line 124 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 118 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 117 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 116 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 115 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: