27 #ifndef GCOMD2RESPONSE_HPP
28 #define GCOMD2RESPONSE_HPP
60 double operator()(
const double& etrue,
const double& ereco)
const;
68 void load(
const std::string& sdbname);
71 double position(
const double& etrue)
const;
72 double sigma(
const double& etrue)
const;
73 double amplitude(
const double& etrue)
const;
74 double escape1(
const double& etrue)
const;
75 double escape2(
const double& etrue)
const;
78 double emin(
const double& etrue)
const;
79 double ewidth(
const double& etrue)
const;
80 double emax(
const double& etrue)
const;
81 double emin(
void)
const;
82 double emax(
void)
const;
99 const double& sigma) :
104 double eval(
const double& e);
117 const double& sigma) :
121 double eval(
const double& e);
177 return (
"GCOMD2Response");
GCOMD2Response & operator=(const GCOMD2Response &rsp)
Assignment operator.
GCOMD2Response(void)
Void constructor.
double background(const double &etrue) const
Return background amplitude.
void clear(void)
Clear instance.
int size(void) const
Return number of nodes in node array.
void copy_members(const GCOMD2Response &rsp)
Copy class members.
void read(const GFitsTable &table)
Read COMPTEL D2 module response.
double m_wgt_escape2
Inverse of width of first escape peak (1/MeV)
std::vector< double > m_emins
Lower energy threshold of D2.
void update_cache(const double &etrue) const
Update computation cache.
double m_sigma
Width of photo peak (MeV)
std::vector< double > m_rsp_values
Response vector values.
double emax(void) const
Return maximum D2 input energy (MeV)
double m_pos_escape2
Position of second escape peak (MeV)
std::vector< double > m_escapes2
Amplitude of second escape peak.
kn_gauss_kernel(const double &ereco, const double &e0, const double &ec, const double &sigma)
void write(GFitsBinTable &table)
Write COMPTEL D2 module response.
std::vector< double > m_amplitudes
Photo peak amplitude.
double m_wgt_photo
Inverse of width of photo peak (1/MeV)
double m_escape2
Amplitude of second escape peak.
double sigma(const double &etrue) const
Return photo peak standard deviation.
double m_e0
Incident energy (MeV)
double m_escape1
Amplitude of first escape peak.
std::string print(const GChatter &chatter=NORMAL) const
Print COMPTEL D2 module response information.
double ewidth(const double &etrue) const
Return energy threshold width.
void init_members(void)
Initialise class members.
double m_position
Position of photo peak (MeV)
void free_members(void)
Delete class members.
double m_amplitude
Amplitude of photo peak.
Node array class interface definition.
Calibration database class.
double eval(const double &e)
Computes modified Klein-Nishina cross section multiplied with Gaussian kernel.
Single parameter function abstract base class definition.
std::string classname(void) const
Return class name.
Interface for the COMPTEL D2 module response class.
Interface class for all GammaLib classes.
double m_tail
Amplitude of Compton tail.
void load(const std::string &sdbname)
Load COMPTEL D2 module response.
double m_ec
Compton edge energy (MeV)
std::vector< double > m_sigmas
Photo peak width in MeV.
double m_emax
Upper energy limit of D2 (MeV)
double m_energy
Incident total energy (MeV)
double m_emin
Amplitude of Compton background
~GCOMD2Response(void)
Destructor.
std::vector< double > m_escapes1
Amplitude of first escape peak.
Abstract interface for FITS table.
std::vector< double > m_emaxs
Upper energy limit of D2.
double m_ewidth
Lower energy threshold width of D2 (MeV)
double emin(void) const
Return minimum D2 input energy (MeV)
const GCaldb & caldb(void) const
Return calibration database.
double m_wgt_escape1
Inverse of width of first escape peak (1/MeV)
double m_wgt
Inverse of Gaussian standard deviation (1/MeV)
GCOMD2Response * clone(void) const
Clone instance.
double m_pos_escape1
Position of first escape peak (MeV)
double m_wgt
Inverse of Gaussian standard deviation (1/MeV)
Calibration database class interface definition.
GNodeArray m_energies
Input energies.
std::vector< double > m_ewidths
Lower energy threshold width of D2.
std::vector< double > m_backgrounds
Amplitude of Compton background.
double m_compton_edge
Position of Compton edge (MeV)
void update_response_vector(const double &etrue) const
Update response vector.
Single parameter function abstract base class.
GNodeArray m_rsp_energies
Response vector energies.
std::vector< double > m_positions
Photo peak position in MeV.
double escape2(const double &etrue) const
Return second escape peak amplitude.
GCaldb m_caldb
Calibration database.
std::vector< double > m_tails
Amplitude of Compton tail.
double escape1(const double &etrue) const
Return first escape peak amplitude.
double eval(const double &e)
Computes Compton background multiplied with Gaussian.
double position(const double &etrue) const
Return photo peak position.
double m_e0
Incident energy (MeV)
double amplitude(const double &etrue) const
Return photo peak amplitude.
double comptontail(const double &etrue) const
Return Compton tail amplitude.
bkg_gauss_kernel(const double &ereco, const double &e0, const double &sigma)
double m_rsp_etrue
True energy of response vector.
double operator()(const double &etrue, const double &ereco) const
D2 module response evaluation operator.