GammaLib  1.7.0.dev
 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 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 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 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...
 
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_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 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 131 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 505 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, and m_theta_min.

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

void GModelSpatialRadialProfileDMBurkert::free_members ( void  )
protected

Delete class members.

Definition at line 531 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 214 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 227 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 705 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 677 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 376 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 544 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(), 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 186 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 200 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 158 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 171 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().

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

Return model type.

Returns
"DMBurkertProfile".

Returns the type of the radial profile model.

Implements GModelSpatialRadialProfile.

Definition at line 145 of file GModelSpatialRadialProfileDMBurkert.hpp.

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 644 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 336 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, GModelSpatialRadial::write(), GModelPar::write(), 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 114 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 119 of file GModelSpatialRadialProfileDMBurkert.hpp.

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

double GModelSpatialRadialProfileDMBurkert::m_last_scale_radius
mutableprotected

Definition at line 118 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 113 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 112 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 111 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 110 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: