27#ifndef GCTARESPONSECUBE_HPP
28#define GCTARESPONSECUBE_HPP
47#if defined(G_CUBE_FAST)
87 virtual void clear(
void);
89 virtual std::string
classname(
void)
const;
100 const GTime& obsTime,
128 const double& rho_obs,
131 const GTime& srcTime)
const;
133 const double& rho_obs,
134 const double& posangle_obs,
137 const GTime& srcTime)
const;
141 const GTime& srcTime)
const;
158 GMatrix* gradients = NULL)
const;
163 const GTime& srcTime,
164 const bool& grad)
const;
188 return (
"GCTAResponseCube");
CTA cube background class definition.
CTA cube analysis energy disperson class definition.
CTA cube analysis exposure class definition.
CTA cube analysis point spread function class definition.
Abstract CTA cube analysis source base class definition.
CTA response abstract base class definition.
N-dimensional array class interface definition.
CTA cube background class.
CTA energy dispersion for stacked analysis.
CTA point spread function for cube analysis.
CTA instrument direction class.
CTA cube-style response function class.
virtual GCTAResponseCube * clone(void) const
Clone instance.
GCTAResponseCube(void)
Void constructor.
const GCTACubeExposure & exposure(void) const
Return exposure cube.
virtual bool is_valid(void) const
Signal if response is valid.
GCTACubeBackground m_background
Background cube.
virtual void clear(void)
Clear instance.
std::vector< GNdarray > m_cache_values
Cached values.
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 psf_diffuse(const GModelSpatial *model, const GSkyDir &obsDir, const GEnergy &srcEng, const GTime &srcTime) const
Integrate PSF over diffuse model.
virtual bool apply_edisp(void) const
Signal if energy dispersion should be applied.
virtual bool use_tdisp(void) const
Signal if time dispersion will be used.
double irf_diffuse(const GEvent &event, const GSource &source, const GObservation &obs) const
Return instrument response to diffuse source.
virtual GCTAResponseCube & operator=(const GCTAResponseCube &rsp)
Assignment operator.
double psf_radial(const GModelSpatialRadial *model, const double &rho_obs, const GSkyDir &obsDir, const GEnergy &srcEng, const GTime &srcTime) const
Integrate Psf over radial model.
virtual bool use_edisp(void) const
Signal if response uses energy dispersion.
virtual ~GCTAResponseCube(void)
Destructor.
double psf_elliptical(const GModelSpatialElliptical *model, const double &rho_obs, const double &posangle_obs, const GSkyDir &obsDir, const GEnergy &srcEng, const GTime &srcTime) const
Integrate Psf over elliptical model.
void copy_members(const GCTAResponseCube &rsp)
Copy class members.
virtual GEbounds ebounds(const GEnergy &obsEng) const
Return true energy boundaries for a specific observed energy.
virtual void read(const GXmlElement &xml)
Read response information from XML element.
double irf_elliptical(const GEvent &event, const GSource &source, const GObservation &obs) const
Return instrument response to elliptical source.
const GCTACubePsf & psf(void) const
Return cube analysis point spread function.
const GCTACubeEdisp & edisp(void) const
Return cube analysis energy dispersion cube.
std::vector< std::string > m_cache_names
Model names.
GCTACubeEdisp m_edisp
Energy dispersion cube.
double irf_ptsrc(const GEvent &event, const GSource &source, const GObservation &obs) const
Return instrument response to point source.
virtual void write(GXmlElement &xml) const
Write response information into XML element.
GCTACubePsf m_psf
Mean point spread function.
virtual std::string classname(void) const
Return class name.
bool m_apply_edisp
Apply energy dispersion.
const GCTACubeBackground & background(void) const
Return cube analysis background cube.
double irf_radial(const GEvent &event, const GSource &source, const GObservation &obs) const
Return instrument response to radial source.
GCTACubeExposure m_exposure
Exposure cube.
virtual double irf_spatial(const GEvent &event, const GSource &source, const GObservation &obs) const
Return instrument response integrated over the spatial model.
virtual double irf(const GEvent &event, const GPhoton &photon, const GObservation &obs) const
Return instrument response.
void init_members(void)
Initialise class members.
virtual std::string print(const GChatter &chatter=NORMAL) const
Print response information.
bool m_has_edisp
Flag to indicate if energy.
void free_members(void)
Delete class members.
CTA instrument response function class.
virtual double irf(const GEvent &event, const GPhoton &photon, const GObservation &obs) const =0
Energy boundaries container class.
Class that handles energies in a unit independent way.
Abstract interface for the event classes.
Generic matrix class definition.
Abstract elliptical spatial model base class.
Abstract radial spatial model base class.
Abstract spatial model base class.
Abstract observation base class.
Class that handles photons.
Class that handles gamma-ray sources.