27#ifndef GCTARESPONSEIRF_HPP
28#define GCTARESPONSEIRF_HPP
79 virtual void clear(
void);
81 virtual std::string
classname(
void)
const;
104 const std::string&
rspname(
void)
const;
124 double aeff(
const double& theta,
126 const double& zenith,
127 const double& azimuth,
128 const double& srcLogEng)
const;
129 double psf(
const double& delta,
132 const double& zenith,
133 const double& azimuth,
134 const double& srcLogEng)
const;
137 const double& zenith,
138 const double& azimuth,
139 const double& srcLogEng)
const;
144 const double& zenith,
145 const double& azimuth)
const;
148 const GTime& srcTime,
150 const GTime& obsTime,
154 const GTime& obsTime,
157 const double& srcLogEng,
158 const GTime& srcTime,
182 const GTime& srcTime,
184 const GTime& obsTime,
188 const GTime& srcTime,
190 const GTime& obsTime,
194 const GTime& srcTime,
196 const GTime& obsTime,
200 const GTime& srcTime,
202 const GTime& obsTime,
206 const GTime& srcTime,
208 const GTime& obsTime,
236 return (
"GCTAResponseIrf");
CTA effective area base class definition.
CTA background model base class definition.
Abstract CTA energy dispersion base class definition.
CTA point spread function base class definition.
CTA response abstract base class definition.
Calibration database class interface definition.
Energy value class definition.
Time class interface definition.
Abstract base class for the CTA effective area.
virtual GCTAAeff * clone(void) const =0
Clones object.
Abstract base class for the CTA background model.
virtual GCTABackground * clone(void) const =0
Clones object.
Abstract base class for the CTA energy dispersion.
virtual GCTAEdisp * clone(void) const =0
Clones object.
CTA instrument direction class.
Abstract base class for the CTA point spread function.
virtual GCTAPsf * clone(void) const =0
Clones object.
CTA instrument response function class.
const double & lo_safe_thres(void) const
Return low energy threshold from IRF.
const GCTAAeff * aeff(void) const
Return pointer to effective area response.
virtual bool apply_edisp(void) const
Signal if energy dispersion should be applied.
double nroi_composite(const GModelSky &model, const GEnergy &srcEng, const GTime &srcTime, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of composite source model.
void load_edisp(const GFilename &filename)
Load energy dispersion information.
double offset_sigma(void) const
Return offset angle dependence (degrees)
virtual bool use_edisp(void) const
Signal if response uses energy dispersion.
double nroi_diffuse(const GModelSky &model, const GEnergy &srcEng, const GTime &srcTime, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of diffuse source model.
GCTAAeff * m_aeff
Effective area.
virtual std::string print(const GChatter &chatter=NORMAL) const
Print CTA response information.
void load_psf(const GFilename &filename)
Load CTA PSF vector.
bool m_apply_edisp
Apply energy dispersion.
double irf_ptsrc(const GEvent &event, const GSource &source, const GObservation &obs) const
Return value of point source instrument response function.
GCTABackground * m_background
Background.
GCTAEventAtom * mc(const double &area, const GPhoton &photon, const GObservation &obs, GRan &ran) const
Simulate event from photon.
GFilename irf_filename(const std::string &filename) const
Return filename with appropriate extension.
virtual bool is_valid(void) const
Signal if response is valid.
double psf_delta_max(const double &theta, const double &phi, const double &zenith, const double &azimuth, const double &srcLogEng) const
Return maximum angular separation (in radians)
const GCTABackground * background(void) const
Return pointer to background model.
virtual GCTAResponseIrf * clone(void) const
Clone instance.
std::string m_xml_rspname
Response name in XML file.
const GCTAPsf * psf(void) const
Return pointer to point spread function.
void copy_members(const GCTAResponseIrf &rsp)
Copy class members.
double irf_elliptical(const GEvent &event, const GSource &source, const GObservation &obs) const
Return Irf value for elliptical source model.
virtual double nroi(const GModelSky &model, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return integral of event probability for a given sky model over ROI.
double m_lo_safe_thres
Safe low energy threshold.
void init_members(void)
Initialise class members.
GCTAEdisp * m_edisp
Energy dispersion.
void free_members(void)
Delete class members.
void load(const std::string &rspname)
Load CTA response.
void load_aeff(const GFilename &filename)
Load effective area.
double npsf(const GSkyDir &srcDir, const double &srcLogEng, const GTime &srcTime, const GCTAPointing &pnt, const GCTARoi &roi) const
Return result of PSF integration over ROI.
virtual std::string classname(void) const
Return class name.
virtual void clear(void)
Clear instance.
virtual GEbounds ebounds(const GEnergy &obsEnergy) const
Return true energy boundaries for a specific observed energy.
virtual double irf(const GEvent &event, const GPhoton &photon, const GObservation &obs) const
Return value of instrument response function.
const GCaldb & caldb(void) const
Return calibration database.
GCaldb m_caldb
Calibration database.
const double & hi_safe_thres(void) const
Return high energy threshold from IRF.
double nroi_ptsrc(const GModelSky &model, const GEnergy &srcEng, const GTime &srcTime, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of point source model.
double m_hi_safe_thres
Safe high energy threshold.
const std::string & rspname(void) const
Return response name.
std::string m_xml_caldb
Calibration database string in XML file.
void load_background(const GFilename &filename)
Load background model.
double irf_radial(const GEvent &event, const GSource &source, const GObservation &obs) const
Return IRF value for radial source model.
virtual void read(const GXmlElement &xml)
Read response from XML element.
double nirf(const GPhoton &photon, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of Instrument Response Function.
GCTAResponseIrf(void)
Void constructor.
const GCTAEdisp * edisp(void) const
Return pointer to energy dispersion.
double irf_diffuse(const GEvent &event, const GSource &source, const GObservation &obs) const
Return value of diffuse source instrument response function.
double nroi_elliptical(const GModelSky &model, const GEnergy &srcEng, const GTime &srcTime, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of elliptical source model.
virtual void write(GXmlElement &xml) const
Write response information into XML element.
GCTAPsf * m_psf
Point spread function.
double nroi_radial(const GModelSky &model, const GEnergy &srcEng, const GTime &srcTime, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of radial source model.
std::string m_rspname
Name of the instrument response.
virtual bool use_tdisp(void) const
Signal if time dispersion will be used.
virtual ~GCTAResponseIrf(void)
Destructor.
virtual GCTAResponseIrf & operator=(const GCTAResponseIrf &rsp)
Assignment operator.
CTA instrument response function class.
virtual double irf(const GEvent &event, const GPhoton &photon, const GObservation &obs) const =0
Interface for the CTA region of interest class.
Calibration database class.
Energy boundaries container class.
Class that handles energies in a unit independent way.
Abstract interface for the event classes.
Abstract observation base class.
Class that handles photons.
Random number generator class.
Class that handles gamma-ray sources.