GammaLib  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GModelSpatialRadialProfileDMBurkert Class Reference

#include <GModelSpatialRadialProfileDMBurkert.hpp>

Inheritance diagram for GModelSpatialRadialProfileDMBurkert:
GModelSpatialRadialProfile GModelSpatialRadial GModelSpatial GBase

Classes

class  halo_kernel_los
 

Public Member Functions

 GModelSpatialRadialProfileDMBurkert (void)
 Void constructor. More...
 
 GModelSpatialRadialProfileDMBurkert (const GXmlElement &xml)
 XML constructor. More...
 
 GModelSpatialRadialProfileDMBurkert (const GModelSpatialRadialProfileDMBurkert &model)
 Copy constructor. More...
 
virtual ~GModelSpatialRadialProfileDMBurkert (void)
 Destructor. More...
 
virtual
GModelSpatialRadialProfileDMBurkert
operator= (const GModelSpatialRadialProfileDMBurkert &model)
 Assignment operator. More...
 
virtual void clear (void)
 Clear radial DMBurkert profile model. More...
 
virtual
GModelSpatialRadialProfileDMBurkert
clone (void) const
 Clone radial DMBurkert 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 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 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...
 
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 GModelSpatialRadialProfileDMBurkert &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_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 GModelSpatialRadialProfileDMBurkert.hpp.

Constructor & Destructor Documentation

GModelSpatialRadialProfileDMBurkert::GModelSpatialRadialProfileDMBurkert ( void  )

Void constructor.

Constructs empty radial DMBurkert profile

Definition at line 66 of file GModelSpatialRadialProfileDMBurkert.cpp.

References init_members().

Referenced by clone().

GModelSpatialRadialProfileDMBurkert::GModelSpatialRadialProfileDMBurkert ( const GXmlElement xml)
explicit

XML constructor.

Parameters
[in]xmlXML element.

Constructs radial DMBurkert 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 GModelSpatialRadialProfileDMBurkert.cpp.

References init_members(), and read().

GModelSpatialRadialProfileDMBurkert::GModelSpatialRadialProfileDMBurkert ( const GModelSpatialRadialProfileDMBurkert model)

Copy constructor.

Parameters
[in]modelRadial DMBurkert profile model.

Copies radial DMBurkert profile model from another radial profile model.

Definition at line 107 of file GModelSpatialRadialProfileDMBurkert.cpp.

References copy_members(), and init_members().

GModelSpatialRadialProfileDMBurkert::~GModelSpatialRadialProfileDMBurkert ( void  )
virtual

Destructor.

Destructs radial DMBurkert profile model.

Definition at line 126 of file GModelSpatialRadialProfileDMBurkert.cpp.

References free_members().

Member Function Documentation

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

Return class name.

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

Implements GModelSpatialRadialProfile.

Definition at line 130 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

Clone radial DMBurkert profile model.

Returns
Pointer to deep copy of radial DMBurkert profile model.

Returns a deep copy of the radial DMBurkert profile model.

Implements GModelSpatialRadialProfile.

Definition at line 211 of file GModelSpatialRadialProfileDMBurkert.cpp.

References GModelSpatialRadialProfileDMBurkert().

void GModelSpatialRadialProfileDMBurkert::copy_members ( const GModelSpatialRadialProfileDMBurkert model)
protected

Copy class members.

Parameters
[in]modelRadial DMBurkert model.

Copies class members from another radial profile model.

Definition at line 514 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

void GModelSpatialRadialProfileDMBurkert::free_members ( void  )
protected

Delete class members.

Definition at line 541 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

double GModelSpatialRadialProfileDMBurkert::halo_distance ( void  ) const
inline

Return halo distance.

Returns
Halo distance (kpc).

Returns the distance to the halo center in kpc.

Definition at line 204 of file GModelSpatialRadialProfileDMBurkert.hpp.

References m_halo_distance, and GOptimizerPar::value().

void GModelSpatialRadialProfileDMBurkert::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 218 of file GModelSpatialRadialProfileDMBurkert.hpp.

References m_halo_distance, and GOptimizerPar::value().

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

Calculate J-factor.

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

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

Definition at line 715 of file GModelSpatialRadialProfileDMBurkert.cpp.

References profile_value(), and gammalib::twopi.

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

Calculate Halo Mass Density.

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

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

Definition at line 687 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

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

Assignment operator.

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

Assigns radial DMBurkert profile model.

Definition at line 150 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

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

Print information.

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

Implements GModelSpatialRadialProfile.

Definition at line 382 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

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

Radial profile.

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

Implements GModelSpatialRadialProfile.

Definition at line 554 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

Referenced by jfactor().

void GModelSpatialRadialProfileDMBurkert::read ( const GXmlElement xml)
virtual

Read model from XML element.

Parameters
[in]xmlXML element.

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

<spatialModel type="DMBurkertProfile">
  <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="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 289 of file GModelSpatialRadialProfileDMBurkert.cpp.

References G_READ, 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 GModelSpatialRadialProfileDMBurkert().

double GModelSpatialRadialProfileDMBurkert::scale_density ( void  ) const
inline

Return scale density.

Returns
Scale density (GeV/cm^3).

Returns the scale density (mass/volume density at the scale radius) of the halo profile in GeV/cm^3.

Definition at line 174 of file GModelSpatialRadialProfileDMBurkert.hpp.

References m_scale_density, and GOptimizerPar::value().

Referenced by update().

void GModelSpatialRadialProfileDMBurkert::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 189 of file GModelSpatialRadialProfileDMBurkert.hpp.

References m_scale_density, and GOptimizerPar::value().

double GModelSpatialRadialProfileDMBurkert::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 144 of file GModelSpatialRadialProfileDMBurkert.hpp.

References m_scale_radius, and GOptimizerPar::value().

Referenced by update().

void GModelSpatialRadialProfileDMBurkert::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 158 of file GModelSpatialRadialProfileDMBurkert.hpp.

References m_scale_radius, and GOptimizerPar::value().

double GModelSpatialRadialProfileDMBurkert::theta_max ( void  ) const
virtual

Return maximum model radius (in radians)

Returns
Maximum model radius (in radians).

Implements GModelSpatialRadialProfile.

Definition at line 237 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

double GModelSpatialRadialProfileDMBurkert::theta_min ( void  ) const
virtual

Return minimum model radius (in radians)

Returns
Minimum model radius (in radians).

Implements GModelSpatialRadialProfile.

Definition at line 222 of file GModelSpatialRadialProfileDMBurkert.cpp.

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

void GModelSpatialRadialProfileDMBurkert::update ( void  ) const
protected

Update precomputation cache.

Computes the mass_radius calculation, determining the radius around the halo that contains 99.99% of the mass. For an Burket halo profile, this is just 80.0 * scale_radius.

Definition at line 654 of file GModelSpatialRadialProfileDMBurkert.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 GModelSpatialRadialProfileDMBurkert::write ( GXmlElement xml) const
virtual

Write model into XML element.

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

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

<spatialModel type="DMBurkertProfile">
  <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="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 339 of file GModelSpatialRadialProfileDMBurkert.cpp.

References G_WRITE, 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 GModelSpatialRadialProfileDMBurkert::m_core_radius
protected
GModelPar GModelSpatialRadialProfileDMBurkert::m_halo_distance
protected

Distance from Earth to halo center.

Definition at line 113 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

double GModelSpatialRadialProfileDMBurkert::m_last_scale_density
mutableprotected

Definition at line 118 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

double GModelSpatialRadialProfileDMBurkert::m_last_scale_radius
mutableprotected

Definition at line 117 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

double GModelSpatialRadialProfileDMBurkert::m_mass_radius
mutableprotected
GModelPar GModelSpatialRadialProfileDMBurkert::m_scale_density
protected

Scale density of halo profile.

Definition at line 112 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

double GModelSpatialRadialProfileDMBurkert::m_scale_density_squared
mutableprotected
GModelPar GModelSpatialRadialProfileDMBurkert::m_scale_radius
protected

Scale radius of halo profile.

Definition at line 111 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

GModelPar GModelSpatialRadialProfileDMBurkert::m_theta_max
protected

Maximum theta angle.

Definition at line 110 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

GModelPar GModelSpatialRadialProfileDMBurkert::m_theta_min
protected

Minimum theta angle.

Definition at line 109 of file GModelSpatialRadialProfileDMBurkert.hpp.

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


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