GammaLib 2.1.0.dev
Loading...
Searching...
No Matches
GCTAModelSpatialGaussSpectrum Class Reference

Spatial energy dependent Gaussian model class. More...

#include <GCTAModelSpatialGaussSpectrum.hpp>

Inheritance diagram for GCTAModelSpatialGaussSpectrum:
GCTAModelSpatial GBase

Public Member Functions

 GCTAModelSpatialGaussSpectrum (void)
 Void constructor.
 
 GCTAModelSpatialGaussSpectrum (const double &sigma)
 Energy-independent Gaussian constructor.
 
 GCTAModelSpatialGaussSpectrum (const GModelSpectral &sigma)
 Gaussian spectrum constructor.
 
 GCTAModelSpatialGaussSpectrum (const GXmlElement &xml)
 XML constructor.
 
 GCTAModelSpatialGaussSpectrum (const GCTAModelSpatialGaussSpectrum &model)
 Copy constructor.
 
virtual ~GCTAModelSpatialGaussSpectrum (void)
 Destructor.
 
virtual GCTAModelSpatialGaussSpectrumoperator= (const GCTAModelSpatialGaussSpectrum &model)
 Assignment operator.
 
virtual void clear (void)
 Clear instance.
 
virtual GCTAModelSpatialGaussSpectrumclone (void) const
 Clone instance.
 
virtual std::string classname (void) const
 Return class name.
 
virtual std::string type (void) const
 Return model type.
 
virtual double eval (const GCTAInstDir &dir, const GEnergy &energy, const GTime &time, const bool &gradients=false) const
 Evaluate function.
 
virtual double mc_max_value (const GCTAObservation &obs) const
 Return maximum function value for Monte Carlo simulations.
 
virtual void read (const GXmlElement &xml)
 Read model from XML element.
 
virtual void write (GXmlElement &xml) const
 Write model into XML element.
 
virtual std::string print (const GChatter &chatter=NORMAL) const
 Print point source information.
 
const GModelSpectralsigma (void) const
 Return pointer to sigma spectrum.
 
void sigma (const double &sigma)
 Set sigma spectrum from value.
 
void sigma (const GModelSpectral &sigma)
 Set sigma spectrum.
 
- Public Member Functions inherited from GCTAModelSpatial
 GCTAModelSpatial (void)
 Void constructor.
 
 GCTAModelSpatial (const GCTAModelSpatial &model)
 Copy constructor.
 
virtual ~GCTAModelSpatial (void)
 Destructor.
 
virtual GCTAModelSpatialoperator= (const GCTAModelSpatial &model)
 Assignment operator.
 
virtual GModelParoperator[] (const int &index)
 Returns model parameter.
 
virtual const GModelParoperator[] (const int &index) const
 Returns model parameter (const version)
 
virtual GModelParoperator[] (const std::string &name)
 Returns reference to model parameter.
 
virtual const GModelParoperator[] (const std::string &name) const
 Returns reference to model parameter (const version)
 
virtual GCTAInstDir mc (const GEnergy &energy, const GTime &time, const GCTAObservation &obs, GRan &ran) const
 Returns MC instrument direction.
 
int size (void) const
 Return number of model parameters.
 
virtual double npred (const GEnergy &energy, const GTime &time, const GObservation &obs) const
 Return integral of spatial model component.
 
- Public Member Functions inherited from GBase
virtual ~GBase (void)
 Destructor.
 

Protected Member Functions

void init_members (void)
 Initialise class members.
 
void copy_members (const GCTAModelSpatialGaussSpectrum &model)
 Copy class members.
 
void free_members (void)
 Delete class members.
 
void set_pointers (void)
 Set pointers.
 
- Protected Member Functions inherited from GCTAModelSpatial
void init_members (void)
 Initialise class members.
 
void copy_members (const GCTAModelSpatial &model)
 Copy class members.
 
void free_members (void)
 Delete class members.
 

Protected Attributes

GModelSpectralm_sigma
 
- Protected Attributes inherited from GCTAModelSpatial
std::vector< GModelPar * > m_pars
 Parameter pointers.
 

Detailed Description

Spatial energy dependent Gaussian model class.

Definition at line 48 of file GCTAModelSpatialGaussSpectrum.hpp.

Constructor & Destructor Documentation

◆ GCTAModelSpatialGaussSpectrum() [1/5]

GCTAModelSpatialGaussSpectrum::GCTAModelSpatialGaussSpectrum ( void )

Void constructor.

Definition at line 68 of file GCTAModelSpatialGaussSpectrum.cpp.

References init_members().

Referenced by clone().

◆ GCTAModelSpatialGaussSpectrum() [2/5]

GCTAModelSpatialGaussSpectrum::GCTAModelSpatialGaussSpectrum ( const double & sigma)
explicit

Energy-independent Gaussian constructor.

Parameters
[in]sigmaGaussian width (degrees \(^2\)).

Definition at line 84 of file GCTAModelSpatialGaussSpectrum.cpp.

References init_members(), and sigma().

◆ GCTAModelSpatialGaussSpectrum() [3/5]

GCTAModelSpatialGaussSpectrum::GCTAModelSpatialGaussSpectrum ( const GModelSpectral & sigma)
explicit

Gaussian spectrum constructor.

Parameters
[in]sigmaSpectrum defining the energy-deependent Gaussian width (degrees \(^2\)).

Definition at line 104 of file GCTAModelSpatialGaussSpectrum.cpp.

References init_members(), and sigma().

◆ GCTAModelSpatialGaussSpectrum() [4/5]

GCTAModelSpatialGaussSpectrum::GCTAModelSpatialGaussSpectrum ( const GXmlElement & xml)
explicit

XML constructor.

Parameters
[in]xmlXML element.

Creates instance of a spatial energy-dependent Gaussian model by extracting information from an XML element. See GCTAModelSpatialGaussSpectrum::read() for more information about the expected structure of the XML element.

Definition at line 128 of file GCTAModelSpatialGaussSpectrum.cpp.

References init_members(), and read().

◆ GCTAModelSpatialGaussSpectrum() [5/5]

GCTAModelSpatialGaussSpectrum::GCTAModelSpatialGaussSpectrum ( const GCTAModelSpatialGaussSpectrum & model)

Copy constructor.

Parameters
[in]modelEnergy-dependent Gaussian model.

Definition at line 147 of file GCTAModelSpatialGaussSpectrum.cpp.

References copy_members(), and init_members().

◆ ~GCTAModelSpatialGaussSpectrum()

GCTAModelSpatialGaussSpectrum::~GCTAModelSpatialGaussSpectrum ( void )
virtual

Destructor.

Definition at line 164 of file GCTAModelSpatialGaussSpectrum.cpp.

References free_members().

Member Function Documentation

◆ classname()

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

Return class name.

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

Implements GCTAModelSpatial.

Definition at line 100 of file GCTAModelSpatialGaussSpectrum.hpp.

◆ clear()

void GCTAModelSpatialGaussSpectrum::clear ( void )
virtual

◆ clone()

GCTAModelSpatialGaussSpectrum * GCTAModelSpatialGaussSpectrum::clone ( void ) const
virtual

Clone instance.

Implements GCTAModelSpatial.

Definition at line 236 of file GCTAModelSpatialGaussSpectrum.cpp.

References GCTAModelSpatialGaussSpectrum().

◆ copy_members()

void GCTAModelSpatialGaussSpectrum::copy_members ( const GCTAModelSpatialGaussSpectrum & model)
protected

Copy class members.

Parameters
[in]modelEnergy-dependent Gaussian model.

Definition at line 530 of file GCTAModelSpatialGaussSpectrum.cpp.

References GModelSpectral::clone(), m_sigma, and set_pointers().

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

◆ eval()

double GCTAModelSpatialGaussSpectrum::eval ( const GCTAInstDir & dir,
const GEnergy & energy,
const GTime & time,
const bool & gradients = false ) const
virtual

Evaluate function.

Parameters
[in]dirEvent direction.
[in]energyEvent energy.
[in]timeEvent time.
[in]gradientsCompute gradients?
Returns
Function value

Evaluates the energy-dependent Gaussian model for a given event direction. The Gaussian model is defined by

\[f(\theta,E) = \exp \left(-\frac{1}{2} \left( \frac{\theta^2}{\sigma(E)} \right)^2 \right)\]

where \(\theta\) is the offset angle (in degrees), and \(\sigma(E)\) is the energy-dependent Gaussian width (in degrees \(^2\)).

If the gradients flag is true the method will also compute the partial derivatives of the parameters. The partial derivative of the Gaussian width is given by

\[\frac{df}{d\sigma_v} = f(\theta) \frac{\theta^4}{\sigma^3} \sigma_s\]

where \(\sigma_v\) is the value part, \(\sigma_s\) is the scaling part, and \(\sigma = \sigma_v \sigma_s\).

Note that this method implements a function which is unity for \(\theta=0\).

Implements GCTAModelSpatial.

Definition at line 275 of file GCTAModelSpatialGaussSpectrum.cpp.

References GModelSpectral::eval(), GOptimizerPar::gradient(), gammalib::is_infinite(), gammalib::is_notanumber(), m_sigma, gammalib::rad2deg, sigma(), GModelSpectral::size(), and GCTAInstDir::theta().

◆ free_members()

void GCTAModelSpatialGaussSpectrum::free_members ( void )
protected

Delete class members.

Definition at line 548 of file GCTAModelSpatialGaussSpectrum.cpp.

References m_sigma.

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

◆ init_members()

void GCTAModelSpatialGaussSpectrum::init_members ( void )
protected

◆ mc_max_value()

double GCTAModelSpatialGaussSpectrum::mc_max_value ( const GCTAObservation & obs) const
inlinevirtual

Return maximum function value for Monte Carlo simulations.

Parameters
[in]obsCTA Observation.
Returns
Maximum function value for Monte Carlo simulations.

This method always returns 1.

Implements GCTAModelSpatial.

Definition at line 127 of file GCTAModelSpatialGaussSpectrum.hpp.

◆ operator=()

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

Assignment operator.

Parameters
[in]modelEnergy-dependent Gaussian model.

Definition at line 185 of file GCTAModelSpatialGaussSpectrum.cpp.

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

◆ print()

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

Print point source information.

Parameters
[in]chatterChattiness.
Returns
String containing point source information.

Implements GCTAModelSpatial.

Definition at line 471 of file GCTAModelSpatialGaussSpectrum.cpp.

References m_sigma, gammalib::parformat(), SILENT, GModelSpectral::size(), and GModelSpectral::type().

◆ read()

void GCTAModelSpatialGaussSpectrum::read ( const GXmlElement & xml)
virtual

Read model from XML element.

Parameters
[in]xmlXML element.

Read the energy-dependent Gaussian spatial model information from an XML element. The XML element needs to be of the following format:

<spatialModel type="EnergyDependentGaussian">
  <sigma type="...">
    ...
  </sigma>
</spatialModel>

where any spectral model type can be provided for the sigma tag.

Implements GCTAModelSpatial.

Definition at line 351 of file GCTAModelSpatialGaussSpectrum.cpp.

References GModelSpectralRegistry::alloc(), clear(), GXmlNode::element(), m_sigma, set_pointers(), and sigma().

Referenced by GCTAModelSpatialGaussSpectrum().

◆ set_pointers()

void GCTAModelSpatialGaussSpectrum::set_pointers ( void )
protected

Set pointers.

Set pointers to all model parameters. The pointers are stored in a vector that is member of the GModelData base class.

Definition at line 567 of file GCTAModelSpatialGaussSpectrum.cpp.

References GCTAModelSpatial::m_pars, m_sigma, and GModelSpectral::size().

Referenced by copy_members(), read(), sigma(), and sigma().

◆ sigma() [1/3]

void GCTAModelSpatialGaussSpectrum::sigma ( const double & sigma)

Set sigma spectrum from value.

Parameters
[in]sigmaConstant sigma value.

Definition at line 428 of file GCTAModelSpatialGaussSpectrum.cpp.

References clear(), m_sigma, set_pointers(), and sigma().

◆ sigma() [2/3]

void GCTAModelSpatialGaussSpectrum::sigma ( const GModelSpectral & sigma)

Set sigma spectrum.

Parameters
[in]sigmaSigma spectrum.

Definition at line 449 of file GCTAModelSpatialGaussSpectrum.cpp.

References clear(), GModelSpectral::clone(), m_sigma, set_pointers(), and sigma().

◆ sigma() [3/3]

const GModelSpectral * GCTAModelSpatialGaussSpectrum::sigma ( void ) const
inline

Return pointer to sigma spectrum.

Returns
Pointer to sigma spectrum.

Definition at line 139 of file GCTAModelSpatialGaussSpectrum.hpp.

References m_sigma.

Referenced by eval(), GCTAModelSpatialGaussSpectrum(), GCTAModelSpatialGaussSpectrum(), read(), sigma(), sigma(), and write().

◆ type()

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

Return model type.

Returns
Model type "EnergyDependentGaussian".

Implements GCTAModelSpatial.

Definition at line 112 of file GCTAModelSpatialGaussSpectrum.hpp.

Referenced by write().

◆ write()

void GCTAModelSpatialGaussSpectrum::write ( GXmlElement & xml) const
virtual

Write model into XML element.

Parameters
[in]xmlXML element.
Exceptions
GException::invalid_valueSpatial model is not of valid type.

Write the energy-dependent Gaussian spatial model information into an XML element. The XML element will be of the following format:

<spatialModel type="EnergyDependentGaussian">
  <sigma type="...">
    ...
  </sigma>
</spatialModel>

where the spectral sigma model will be written into the sigma tag.

Implements GCTAModelSpatial.

Definition at line 390 of file GCTAModelSpatialGaussSpectrum.cpp.

References GXmlNode::append(), GXmlElement::attribute(), GXmlNode::element(), GXmlNode::elements(), G_WRITE, m_sigma, sigma(), type(), and GModelSpectral::write().

Member Data Documentation

◆ m_sigma

GModelSpectral* GCTAModelSpatialGaussSpectrum::m_sigma
protected

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