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

CTA IRF background model class. More...

#include <GCTAModelIrfBackground.hpp>

Inheritance diagram for GCTAModelIrfBackground:
GModelData GModel GBase

Classes

class  npred_roi_kern_phi
 
class  npred_roi_kern_theta
 

Public Member Functions

 GCTAModelIrfBackground (void)
 Void constructor. More...
 
 GCTAModelIrfBackground (const GXmlElement &xml)
 Constructor. More...
 
 GCTAModelIrfBackground (const GModelSpectral &spectral)
 Construct from spectral component. More...
 
 GCTAModelIrfBackground (const GCTAModelIrfBackground &bgd)
 Copy constructor. More...
 
virtual ~GCTAModelIrfBackground (void)
 Destructor. More...
 
GCTAModelIrfBackgroundoperator= (const GCTAModelIrfBackground &bgd)
 Assignment operator. More...
 
virtual void clear (void)
 Clear CTA instrument background model. More...
 
virtual GCTAModelIrfBackgroundclone (void) const
 Clone CTA instrument background model. More...
 
virtual std::string classname (void) const
 Return class name. More...
 
virtual std::string type (void) const
 Return data model type. More...
 
virtual bool is_constant (void) const
 Signals if sky model is temporally constant. More...
 
virtual double eval (const GEvent &event, const GObservation &obs, const bool &gradients=false) const
 Return background rate in units of events MeV \(^{-1}\) s \(^{-1}\) sr \(^{-1}\). More...
 
virtual double npred (const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
 Return spatially integrated background rate in units of events MeV \(^{-1}\) s \(^{-1}\). More...
 
virtual GCTAEventListmc (const GObservation &obs, GRan &ran) const
 Return simulated list of events. More...
 
virtual void read (const GXmlElement &xml)
 Read CTA instrument background model from XML element. More...
 
virtual void write (GXmlElement &xml) const
 Write CTA instrument background model into XML element. More...
 
virtual std::string print (const GChatter &chatter=NORMAL) const
 Print CTA instrument background model information. More...
 
GModelSpectralspectral (void) const
 Return spectral model component. More...
 
GModelTemporaltemporal (void) const
 Return temporal model component. More...
 
void spectral (const GModelSpectral *spectral)
 Set spectral model component. More...
 
void temporal (const GModelTemporal *temporal)
 Set temporal model component. More...
 
- Public Member Functions inherited from GModelData
 GModelData (void)
 Void constructor. More...
 
 GModelData (const GXmlElement &xml)
 XML constructor. More...
 
 GModelData (const GModelData &model)
 Copy constructor. More...
 
virtual ~GModelData (void)
 Destructor. More...
 
virtual GModelDataoperator= (const GModelData &model)
 Assignment operator. More...
 
virtual GVector eval (const GObservation &obs, GMatrixSparse *gradients=NULL) const
 Return model values and gradients. More...
 
- Public Member Functions inherited from GModel
 GModel (void)
 Void constructor. More...
 
 GModel (const GXmlElement &xml)
 XML constructor. More...
 
 GModel (const GModel &model)
 Copy constructor. More...
 
virtual ~GModel (void)
 Destructor. More...
 
virtual GModeloperator= (const GModel &model)
 Assignment operator. More...
 
virtual GModelParoperator[] (const int &index)
 Returns reference to model parameter by index. More...
 
virtual const GModelParoperator[] (const int &index) const
 Returns reference to model parameter by index (const version) More...
 
virtual GModelParoperator[] (const std::string &name)
 Returns reference to model parameter by name. More...
 
virtual const GModelParoperator[] (const std::string &name) const
 Returns reference to model parameter by name const version) More...
 
int size (void) const
 Return number of parameters in model. More...
 
int scales (void) const
 Return number of scale parameters in model. More...
 
GModelParat (const int &index)
 Returns reference to model parameter by index. More...
 
const GModelParat (const int &index) const
 Returns reference to model parameter by index (const version) More...
 
bool has_par (const std::string &name) const
 Checks if parameter name exists. More...
 
bool has_scales (void) const
 Signals that model has scales. More...
 
const std::string & name (void) const
 Return parameter name. More...
 
void name (const std::string &name)
 Set parameter name. More...
 
const double & ts (void) const
 Return Test Statistic value. More...
 
void ts (const double &ts)
 Set Test Statistic value. More...
 
const bool & tscalc (void) const
 Return Test Statistic computation flag. More...
 
void tscalc (const bool &tscalc)
 Set Test Statistic computation flag. More...
 
const bool & has_ts (void) const
 Signals that model has Test Statistics value. More...
 
std::string instruments (void) const
 Returns instruments to which model applies. More...
 
void instruments (const std::string &instruments)
 Set instruments to which model applies. More...
 
GModelParscale (const int &index)
 Returns reference to scale parameter by index. More...
 
const GModelParscale (const int &index) const
 Returns reference to scale parameter by index (const version) More...
 
GModelPar scale (const std::string &instrument) const
 Returns model scale factor for a given instrument. More...
 
void scale (const GModelPar &par)
 Set model scale factor for a given instrument. More...
 
std::string ids (void) const
 Returns observation identifiers to which model applies. More...
 
void ids (const std::string &ids)
 Set observation identifiers to which model applies. More...
 
bool is_valid (const std::string &instruments, const std::string &ids) const
 Verifies if model is valid for a given instrument and identifier. More...
 
const GModelAssociationsassociations (void) const
 Return model associations. More...
 
void associations (const GModelAssociations &associations)
 Set model associations. More...
 
const bool & has_eval_indices (void) const
 Signals that parameter indices updated by eval() method were set. More...
 
const std::vector< int > & eval_indices (void) const
 Return vector of parameter indices updated by eval() method. More...
 
- Public Member Functions inherited from GBase
virtual ~GBase (void)
 Destructor. More...
 

Private Member Functions

void init_members (void)
 Initialise class members. More...
 
void copy_members (const GCTAModelIrfBackground &bgd)
 Copy class members. More...
 
void free_members (void)
 Delete class members. More...
 
void set_pointers (void)
 Set pointers. More...
 
bool valid_model (void) const
 Verifies if model has all components. More...
 
GModelSpectralxml_spectral (const GXmlElement &spectral) const
 Return pointer to spectral model from XML element. More...
 
GModelTemporalxml_temporal (const GXmlElement &temporal) const
 Return pointer to temporal model from XML element. More...
 

Private Attributes

GModelSpectralm_spectral
 Spectral model. More...
 
GModelTemporalm_temporal
 Temporal model. More...
 
std::vector< std::string > m_npred_names
 Model names. More...
 
std::vector< GEnergym_npred_energies
 Model energy. More...
 
std::vector< GTimem_npred_times
 Model time. More...
 
std::vector< double > m_npred_values
 Model values. More...
 

Additional Inherited Members

- Protected Member Functions inherited from GModelData
void init_members (void)
 Initialise class members. More...
 
void copy_members (const GModelData &model)
 Copy class members. More...
 
void free_members (void)
 Delete class members. More...
 
- Protected Member Functions inherited from GModel
void init_members (void)
 Initialise class members. More...
 
void copy_members (const GModel &model)
 Copy class members. More...
 
void free_members (void)
 Delete class members. More...
 
void read_attributes (const GXmlElement &xml)
 Read model attributes. More...
 
void write_attributes (GXmlElement &xml) const
 Write model attributes. More...
 
std::string print_attributes (void) const
 Print model attributes. More...
 
void read_scales (const GXmlElement &xml)
 Read instrument scales from XML element. More...
 
void write_scales (GXmlElement &xml) const
 Write instrument scales into XML element. More...
 
- Protected Attributes inherited from GModel
std::string m_name
 Model name. More...
 
std::vector< std::string > m_instruments
 Instruments to which model applies. More...
 
std::vector< GModelParm_scales
 Model instrument scale factors. More...
 
std::vector< std::string > m_ids
 Identifiers to which model applies. More...
 
std::vector< GModelPar * > m_pars
 Pointers to all model parameters. More...
 
GModelAssociations m_associations
 Model associations. More...
 
bool m_has_ts
 Signals if TS is available. More...
 
bool m_has_tscalc
 Signals if tscalc attribute is available. More...
 
bool m_tscalc
 Signals if TS should be computed. More...
 
double m_ts
 Test Statistic of the model. More...
 
bool m_has_eval_inx
 
std::vector< int > m_eval_inx
 

Detailed Description

CTA IRF background model class.

Definition at line 47 of file GCTAModelIrfBackground.hpp.

Constructor & Destructor Documentation

GCTAModelIrfBackground::GCTAModelIrfBackground ( void  )

Void constructor.

Definition at line 80 of file GCTAModelIrfBackground.cpp.

References init_members().

Referenced by clone().

GCTAModelIrfBackground::GCTAModelIrfBackground ( const GXmlElement xml)
explicit

Constructor.

Parameters
[in]xmlXML element.

Constructs a CTA instrumental background model from the information provided by an XML element. The XML element is expected to have the following structure

<source name="..." type="..." instrument="...">
  <spectrum type="...">
    ...
  </spectrum>
</source>

Optionally, a temporal model may be provided using the following syntax

<source name="..." type="..." instrument="...">
  <spectrum type="...">
    ...
  </spectrum>
  <temporalModel type="...">
    ...
  </temporalModel>
</source>

If no temporal component is found a constant model is assumed.

Definition at line 119 of file GCTAModelIrfBackground.cpp.

References init_members(), read(), and set_pointers().

GCTAModelIrfBackground::GCTAModelIrfBackground ( const GModelSpectral spectral)
explicit

Construct from spectral component.

Parameters
[in]spectralSpectral model component.

Constructs a CTA instrumental background model from a spectral model component. The temporal component is assumed to be constant. Please refer to the classe GModelSpectral to learn more about the definition of the spectral components.

Definition at line 146 of file GCTAModelIrfBackground.cpp.

References GModelTemporalConst::clone(), GModelSpectral::clone(), init_members(), m_spectral, m_temporal, set_pointers(), and temporal().

GCTAModelIrfBackground::GCTAModelIrfBackground ( const GCTAModelIrfBackground bgd)

Copy constructor.

Parameters
[in]bgdCTA instrument background model.

Definition at line 172 of file GCTAModelIrfBackground.cpp.

References copy_members(), and init_members().

GCTAModelIrfBackground::~GCTAModelIrfBackground ( void  )
virtual

Destructor.

Definition at line 189 of file GCTAModelIrfBackground.cpp.

References free_members().

Member Function Documentation

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

Return class name.

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

Implements GModelData.

Definition at line 149 of file GCTAModelIrfBackground.hpp.

void GCTAModelIrfBackground::clear ( void  )
virtual

Clear CTA instrument background model.

This method properly resets the CTA instrument background model to an initial state.

Implements GModelData.

Definition at line 247 of file GCTAModelIrfBackground.cpp.

References free_members(), GModelData::free_members(), init_members(), and GModelData::init_members().

Referenced by read().

GCTAModelIrfBackground * GCTAModelIrfBackground::clone ( void  ) const
virtual

Clone CTA instrument background model.

Returns
Pointer to deep copy of CTA instrument background model.

Implements GModelData.

Definition at line 267 of file GCTAModelIrfBackground.cpp.

References GCTAModelIrfBackground().

void GCTAModelIrfBackground::copy_members ( const GCTAModelIrfBackground bgd)
private

Copy class members.

Parameters
[in]bgdCTA background model.

Definition at line 918 of file GCTAModelIrfBackground.cpp.

References GModelTemporal::clone(), GModelSpectral::clone(), m_npred_energies, m_npred_names, m_npred_times, m_npred_values, m_spectral, m_temporal, and set_pointers().

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

double GCTAModelIrfBackground::eval ( const GEvent event,
const GObservation obs,
const bool &  gradients = false 
) const
virtual

Return background rate in units of events MeV \(^{-1}\) s \(^{-1}\) sr \(^{-1}\).

Parameters
[in]eventObserved event.
[in]obsObservation.
[in]gradientsCompute gradients?
Returns
Background rate (events MeV \(^{-1}\) s \(^{-1}\) sr \(^{-1}\)).

The method returns a real rate, defined by the number of counts per MeV, steradian and ontime.

If the gradients flag is true the method will also set the parameter gradients of the model parameters.

Implements GModelData.

Definition at line 342 of file GCTAModelIrfBackground.cpp.

References gammalib::cta_dir(), gammalib::cta_pnt(), gammalib::cta_rsp_bkg(), GCTAInstDir::detx(), GCTAInstDir::dety(), GCTAInstDir::dir(), GCTAEventBin::emin(), GEvent::energy(), GModelTemporal::eval(), GModelSpectral::eval(), GCTAEventBin::ewidth(), G_EVAL, GCTAPointing::instdir(), GEvent::is_atom(), GEnergy::MeV(), norm(), GCTABackground::rate_ebin(), GModelTemporal::size(), GModelSpectral::size(), spectral(), temporal(), and GEvent::time().

void GCTAModelIrfBackground::free_members ( void  )
private

Delete class members.

Definition at line 941 of file GCTAModelIrfBackground.cpp.

References m_spectral, and m_temporal.

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

void GCTAModelIrfBackground::init_members ( void  )
private

Initialise class members.

Definition at line 896 of file GCTAModelIrfBackground.cpp.

References m_npred_energies, m_npred_names, m_npred_times, m_npred_values, m_spectral, and m_temporal.

Referenced by clear(), GCTAModelIrfBackground(), and operator=().

bool GCTAModelIrfBackground::is_constant ( void  ) const
inlinevirtual

Signals if sky model is temporally constant.

Returns
True if sky model is temporally constant, false otherwise.

Signals if the sky model is temporally constant. A temporally constant model is a model that has a temporal component of type "Constant".

Implements GModelData.

Definition at line 178 of file GCTAModelIrfBackground.hpp.

References m_temporal, and GModelTemporal::type().

GCTAEventList * GCTAModelIrfBackground::mc ( const GObservation obs,
GRan ran 
) const
virtual

Return simulated list of events.

Parameters
[in]obsObservation.
[in]ranRandom number generator.
Returns
Pointer to list of simulated events (needs to be de-allocated by client)

Draws a sample of events from the background model using a Monte Carlo simulation. The region of interest, the energy boundaries and the good time interval for the sampling will be extracted from the observation argument that is passed to the method. The method also requires a random number generator of type GRan which is passed by reference, hence the state of the random number generator will be changed by the method.

For each event in the returned event list, the sky direction, the nominal coordinates (DETX and DETY), the energy and the time will be set.

Implements GModelData.

Definition at line 550 of file GCTAModelIrfBackground.cpp.

References GCTAEventList::append(), gammalib::cta_event_list(), gammalib::cta_pnt(), gammalib::cta_rsp_bkg(), GCTAEventAtom::dir(), GCTAInstDir::dir(), GEvents::ebounds(), GEbounds::emax(), GEbounds::emin(), GModelSpectral::eval(), GModelSpectral::flux(), G_MC, GEvents::gti(), m_spectral, m_temporal, GCTABackground::mc(), GModelTemporal::mc(), GModelSpectral::mc(), GModel::name(), norm(), GCTAEventList::reserve(), GCTAEventList::roi(), GTimes::size(), GGti::size(), GEbounds::size(), GCTAPointing::skydir(), spectral(), GCTABackground::spectrum(), GGti::tstart(), GGti::tstop(), and valid_model().

double GCTAModelIrfBackground::npred ( const GEnergy obsEng,
const GTime obsTime,
const GObservation obs 
) const
virtual

Return spatially integrated background rate in units of events MeV \(^{-1}\) s \(^{-1}\).

Parameters
[in]obsEngMeasured event energy.
[in]obsTimeMeasured event time.
[in]obsObservation.
Returns
Spatially integrated background rate (events MeV \(^{-1}\) s \(^{-1}\))

Spatially integrates the instrumental background model for a given measured event energy and event time. The method returns a real rate, defined as the number of counts per MeV and ontime.

Implements GModelData.

Definition at line 427 of file GCTAModelIrfBackground.cpp.

References gammalib::cta_event_list(), gammalib::cta_pnt(), gammalib::cta_rsp_bkg(), gammalib::deg2rad, GModelTemporal::eval(), GModelSpectral::eval(), GIntegral::fixed_iter(), G_NPRED, GObservation::id(), GCTAPointing::instdir(), GObservation::instrument(), gammalib::is_infinite(), gammalib::is_notanumber(), gammalib::iter_phi(), GEnergy::log10TeV(), m_npred_energies, m_npred_names, m_npred_times, m_npred_values, GCTAEventList::roi(), GIntegral::romberg(), spectral(), gammalib::str(), temporal(), valid_model(), and gammalib::warning().

GCTAModelIrfBackground & GCTAModelIrfBackground::operator= ( const GCTAModelIrfBackground bgd)

Assignment operator.

Parameters
[in]bgdCTA instrument background model.
Returns
CTA instrument background model.

Definition at line 211 of file GCTAModelIrfBackground.cpp.

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

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

Print CTA instrument background model information.

Parameters
[in]chatterChattiness.
Returns
String containing CTA instrument background model information.

Implements GModelData.

Definition at line 836 of file GCTAModelIrfBackground.cpp.

References gammalib::parformat(), GModel::print_attributes(), SILENT, GModelTemporal::size(), GModelSpectral::size(), GModel::size(), spectral(), gammalib::str(), temporal(), and type().

void GCTAModelIrfBackground::read ( const GXmlElement xml)
virtual

Read CTA instrument background model from XML element.

Parameters
[in]xmlXML element.

Set up CTA instrument background model from the information provided by an XML element. The XML element is expected to have the following structure

<source name="..." type="..." instrument="...">
  <spectrum type="...">
    ...
  </spectrum>
</source>

Optionally, a temporal model may be provided using the following syntax

<source name="..." type="..." instrument="...">
  <spectrum type="...">
    ...
  </spectrum>
  <temporal type="...">
    ...
  </temporal>
</source>

If no temporal component is found a constant model is assumed.

Implements GModelData.

Definition at line 714 of file GCTAModelIrfBackground.cpp.

References clear(), GModelTemporalConst::clone(), GXmlNode::element(), GXmlNode::elements(), m_spectral, m_temporal, GModel::read_attributes(), set_pointers(), spectral(), temporal(), xml_spectral(), and xml_temporal().

Referenced by GCTAModelIrfBackground().

void GCTAModelIrfBackground::set_pointers ( void  )
private

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 962 of file GCTAModelIrfBackground.cpp.

References GModel::m_pars, GModelTemporal::size(), GModelSpectral::size(), spectral(), and temporal().

Referenced by copy_members(), GCTAModelIrfBackground(), read(), spectral(), and temporal().

GModelSpectral * GCTAModelIrfBackground::spectral ( void  ) const
inline

Return spectral model component.

Returns
Pointer to spectral model component.

Returns a pointer to the spectral model component of the model. The pointer is of type GModelSpectral. Note that a NULL pointer may be returned if the sky model has no spectral model component.

Definition at line 194 of file GCTAModelIrfBackground.hpp.

References m_spectral.

Referenced by gammalib::cta_model_spectral(), eval(), mc(), npred(), print(), read(), set_pointers(), valid_model(), and write().

void GCTAModelIrfBackground::spectral ( const GModelSpectral spectral)

Set spectral model component.

Parameters
[in]spectralPointer to spectral model component.

Sets the spectral model component of the model.

Definition at line 280 of file GCTAModelIrfBackground.cpp.

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

GModelTemporal * GCTAModelIrfBackground::temporal ( void  ) const
inline

Return temporal model component.

Returns
Pointer to temporal model component.

Returns a pointer to the temporal model component of the model. The pointer is of type GModelTemporal. Note that a NULL pointer may be returned if the sky model has no temporal model component.

Definition at line 210 of file GCTAModelIrfBackground.hpp.

References m_temporal.

Referenced by gammalib::cta_model_temporal(), eval(), GCTAModelIrfBackground(), npred(), print(), read(), set_pointers(), valid_model(), and write().

void GCTAModelIrfBackground::temporal ( const GModelTemporal temporal)

Set temporal model component.

Parameters
[in]temporalPointer to temporal model component.

Sets the temporal model component of the model.

Definition at line 307 of file GCTAModelIrfBackground.cpp.

References GModelTemporal::clone(), m_temporal, and set_pointers().

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

Return data model type.

Returns
Data model type.

Returns the type of the data model.

Implements GModelData.

Definition at line 163 of file GCTAModelIrfBackground.hpp.

Referenced by print().

bool GCTAModelIrfBackground::valid_model ( void  ) const
private

Verifies if model has all components.

Returns 'true' if models has a spectral and a temporal component. Otherwise returns 'false'.

Definition at line 998 of file GCTAModelIrfBackground.cpp.

References spectral(), and temporal().

Referenced by mc(), and npred().

void GCTAModelIrfBackground::write ( GXmlElement xml) const
virtual

Write CTA instrument background model into XML element.

Parameters
[in]xmlXML element.

Write CTA instrument background model information into an XML element. The XML element will have the following structure

<source name="..." type="..." instrument="...">
  <spectrum type="...">
    ...
  </spectrum>
</source>

If the model contains a non-constant temporal model, the temporal component will also be written following the syntax

<source name="..." type="..." instrument="...">
  <spectrum type="...">
    ...
  </spectrum>
  <temporal type="...">
    ...
  </temporal>
</source>

If no temporal component is found a constant model is assumed.

Implements GModelData.

Definition at line 777 of file GCTAModelIrfBackground.cpp.

References GXmlNode::append(), GXmlElement::attribute(), GXmlNode::element(), GXmlNode::elements(), m_temporal, GModel::name(), spectral(), temporal(), GModelTemporal::type(), GModelTemporal::write(), GModelSpectral::write(), and GModel::write_attributes().

GModelSpectral * GCTAModelIrfBackground::xml_spectral ( const GXmlElement spectral) const
private

Return pointer to spectral model from XML element.

Parameters
[in]spectralXML element.
Returns
Pointer to spectral model.

Returns pointer to spectral model that is defined in an XML element.

Definition at line 1016 of file GCTAModelIrfBackground.cpp.

References GModelSpectralRegistry::alloc().

Referenced by read().

GModelTemporal * GCTAModelIrfBackground::xml_temporal ( const GXmlElement temporal) const
private

Return pointer to temporal model from XML element.

Parameters
[in]temporalXML element.
Returns
Pointer to temporal model.

Returns pointer to temporal model that is defined in an XML element.

Definition at line 1035 of file GCTAModelIrfBackground.cpp.

References GModelTemporalRegistry::alloc().

Referenced by read().

Member Data Documentation

std::vector<GEnergy> GCTAModelIrfBackground::m_npred_energies
mutableprivate

Model energy.

Definition at line 137 of file GCTAModelIrfBackground.hpp.

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

std::vector<std::string> GCTAModelIrfBackground::m_npred_names
mutableprivate

Model names.

Definition at line 136 of file GCTAModelIrfBackground.hpp.

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

std::vector<GTime> GCTAModelIrfBackground::m_npred_times
mutableprivate

Model time.

Definition at line 138 of file GCTAModelIrfBackground.hpp.

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

std::vector<double> GCTAModelIrfBackground::m_npred_values
mutableprivate

Model values.

Definition at line 139 of file GCTAModelIrfBackground.hpp.

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

GModelSpectral* GCTAModelIrfBackground::m_spectral
private

Spectral model.

Definition at line 132 of file GCTAModelIrfBackground.hpp.

Referenced by copy_members(), free_members(), GCTAModelIrfBackground(), init_members(), mc(), read(), and spectral().

GModelTemporal* GCTAModelIrfBackground::m_temporal
private

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