27#ifndef GCTAEDISPRMF_HPP
28#define GCTAEDISPRMF_HPP
73 const double& theta = 0.0,
74 const double& phi = 0.0,
75 const double& zenith = 0.0,
76 const double& azimuth = 0.0)
const;
86 const double& theta = 0.0,
87 const double& phi = 0.0,
88 const double& zenith = 0.0,
89 const double& azimuth = 0.0)
const;
91 const double& theta = 0.0,
92 const double& phi = 0.0,
93 const double& zenith = 0.0,
94 const double& azimuth = 0.0)
const;
96 const double& theta = 0.0,
97 const double& phi = 0.0,
98 const double& zenith = 0.0,
99 const double& azimuth = 0.0)
const;
103 const double& theta)
const;
161 return (
"GCTAEdispRmf");
Abstract CTA energy dispersion base class definition.
Filename class interface definition.
Sparse matrix class definition.
Node array class interface definition.
XSPEC Redistribution Matrix File class definition.
CTA Redistribution Matrix File (RMF) energy dispersion class.
bool m_ereco_bounds_computed
int m_itrue2
Index of right Etrue.
void compute_ereco_bounds(void) const
Compute m_ereco_bounds vector.
bool m_etrue_bounds_computed
void compute_etrue_bounds(void) const
Compute m_etrue_bounds vector.
GCTAEdispRmf & operator=(const GCTAEdispRmf &edisp)
Assignment operator.
GCTAEdispRmf(void)
Void constructor.
GNodeArray m_ereco
Array of log10(Ereco)
GFilename filename(void) const
Return filename.
std::vector< GEbounds > m_ereco_bounds
double operator()(const GEnergy &ereco, const GEnergy &etrue, const double &theta=0.0, const double &phi=0.0, const double &zenith=0.0, const double &azimuth=0.0) const
Return energy dispersion in units of MeV .
int m_itrue1
Index of left Etrue.
double m_wgt3
Weight of lower right node.
void set_cache(void) const
Set interpolation cache.
std::string classname(void) const
Return class name.
GNodeArray m_etrue
Array of log10(Etrue)
void set_max_edisp(void)
Set maximum energy dispersion value.
virtual ~GCTAEdispRmf(void)
Destructor.
double m_wgt2
Weight of upper left node.
void init_members(void)
Initialise class members.
void set_matrix(void)
Set redistribution matrix.
GEbounds ereco_bounds(const GEnergy &etrue, const double &theta=0.0, const double &phi=0.0, const double &zenith=0.0, const double &azimuth=0.0) const
Return observed energy interval that contains the energy dispersion.
GRmf m_rmf
Redistribution matrix file.
std::vector< GEbounds > m_etrue_bounds
GEnergy m_last_etrue
Last true energy.
GEbounds etrue_bounds(const GEnergy &ereco, const double &theta=0.0, const double &phi=0.0, const double &zenith=0.0, const double &azimuth=0.0) const
Return true energy interval that contains the energy dispersion.
double m_wgt1
Weight of lower left node.
GCTAEdispRmf * clone(void) const
Clone instance.
std::string print(const GChatter &chatter=NORMAL) const
Print RMF information.
int m_ireco1
Index of left Ereco.
GFilename m_filename
Name of response file.
void load(const GFilename &filename)
Load energy dispersion from RMF file.
GMatrixSparse m_matrix
Normalised redistribution matrix.
GEnergy m_last_ereco_bounds
void copy_members(const GCTAEdispRmf &psf)
Copy class members.
GEnergy mc(GRan &ran, const GEnergy &etrue, const double &theta=0.0, const double &phi=0.0, const double &zenith=0.0, const double &azimuth=0.0) const
Simulate energy dispersion.
double prob_erecobin(const GEnergy &ereco_min, const GEnergy &ereco_max, const GEnergy &etrue, const double &theta) const
Return energy dispersion probability for reconstructed energy interval.
void update(const GEnergy &ereco, const GEnergy &etrue) const
Update cache.
GEnergy m_last_ereco
Last reconstructed energy.
GEnergy m_last_etrue_bounds
int m_ireco2
Index of right Ereco.
double m_max_edisp
Maximum energy dispersion value for MC.
void clear(void)
Clear instance.
double m_wgt4
Weight of upper right node.
const GRmf & rmf(void) const
Return Redistribution Matrix File.
void free_members(void)
Delete class members.
Abstract base class for the CTA energy dispersion.
Energy boundaries container class.
Class that handles energies in a unit independent way.
Single parameter function abstract base class.
Sparse matrix class interface definition.
Random number generator class.
Redistribution Matrix File class.