58 GCOMIaq(
const double& phigeo_max,
const double& phigeo_bin_size,
59 const double& phibar_max,
const double& phibar_bin_size);
71 void save(
const GFilename& filename,
const bool& clobber =
false)
const;
86 const double& phibar);
89 const double& phigeo);
101 const double& etrue1,
102 const double& etrue2,
103 const double& phibar,
109 const double& e2max) :
122 double eval(
const double& energy1);
144 const std::vector<double>& values) :
150 double eval(
const double& phigeo);
COMPTEL D1 module response class interface definition.
COMPTEL D2 module response class interface definition.
COMPTEL Instrument Characteristics interface definition.
Energy boundaries class interface definition.
Single precision FITS image class definition.
Single parameter function abstract base class definition.
Mathematical function definitions.
GVector cos(const GVector &vector)
Computes cosine of vector elements.
GVector sin(const GVector &vector)
Computes sine of vector elements.
Interface class for all GammaLib classes.
Interface for the COMPTEL D1 module response class.
Interface for the COMPTEL D2 module response class.
const GCOMD1Response & m_response_d1
Reference to D1 module response.
double m_etrue1
True D1 energy (MeV)
double m_cos_phibar
cos(phibar)
double eval(const double &energy1)
Computes product of D1 and D2 responses at energy E1 and phibar.
double m_e1min
Minimum D1 energy (MeV)
double m_e1max
Maximum D1 energy (MeV)
double m_etrue2
True D2 energy (MeV)
double m_e2max
Maximum D2 energy (MeV)
const GCOMD2Response & m_response_d2
Reference to D2 module response.
double m_sin_phibar
sin(phibar)
double m_etmin
Minimum total energy (MeV)
double m_etmax
Maximum total energy (MeV)
double m_e2min
Minimum D2 energy (MeV)
response_kernel(const GCOMD1Response &response_d1, const GCOMD2Response &response_d2, const double &etrue1, const double &etrue2, const double &phibar, const double &etmin, const double &etmax, const double &e1min, const double &e1max, const double &e2min, const double &e2max)
double m_phigeo
Current phigeo value.
double eval(const double &phigeo)
Convolves response with Gaussian kernel.
smearing_kernel(const double &phigeo, const double &sigma, const GNodeArray &phigeos, const std::vector< double > &values)
const GNodeArray & m_phigeos
Geometrical scatter angles.
double m_norm
Gaussian normalisation.
double m_wgt
Inverse of Gaussian std (1/deg)
const std::vector< double > & m_values
IAQ values.
Interface for the COMPTEL instrument response representation class.
double klein_nishina_integral(const double &v, const double &a)
Computes Klein-Nishina integral.
void free_members(void)
Delete class members.
int m_num_energies
Number of energies for continuum IAQ.
double m_phigeo_bin_size
Bin size in geometrical scatter angle (deg)
double m_e2max
Maximum D2 energy (MeV)
void copy_members(const GCOMIaq &iaq)
Copy class members.
double m_zenith
Zenith angle for location smearing (deg)
GCOMIaq * clone(void) const
Clone instance.
GCOMD2Response m_response_d2
D2 module response.
GEbounds m_ebounds
Energy boundaries.
~GCOMIaq(void)
Destructor.
double m_e2min
Minimum D2 energy (MeV)
double m_phibar_max
Maximum Compton scatter angle (deg)
double m_phigeo_max
Maximum geometrical scatter angle (deg)
void klein_nishina(const double &energy)
Multiply IAQ matrix by the Klein-Nishina formula.
GCOMD1Response m_response_d1
D1 module response.
GCOMIaq & operator=(const GCOMIaq &iaq)
Assignment operator.
GCOMInstChars m_ict
Instrument characteristics.
std::string classname(void) const
Return class name.
double klein_nishina_bin(const double &energy, const double &phigeo)
Computes Klein-Nishina probability for one bin.
void init_response(void)
Initialise COMPTEL response function and instrument characteristics.
double m_phibar_resolution
Bin size for oversampling (deg)
void weight_iaq(const double &energy)
Weight IAQ matrix.
GFitsImageFloat m_iaq
Response.
std::vector< double > location_spread(const double &zenith) const
Compute location spread vector.
void location_smearing(const double &zenith)
Perform location smearing.
void compton_kinematics(const double &energy)
Generate IAQ matrix based on Compton kinematics.
std::string print(const GChatter &chatter=NORMAL) const
Print COMPTEL instrument response representation information.
void remove_cards(void)
Remove any extra header cards.
void save(const GFilename &filename, const bool &clobber=false) const
Save COMPTEL instrument response representation into FITS file.
void set(const GEnergy &energy, const GEbounds &ebounds)
Set mono-energetic IAQ.
GCOMIaq(void)
Void constructor.
void clear(void)
Clear instance.
void init_members(void)
Initialise class members.
double m_e1min
Minimum D1 energy (MeV)
double m_phibar_bin_size
Bin size in Compton scatter angle (deg)
double compute_iaq_bin(const double &etrue1, const double &etrue2, const double &phibar)
Computes the IAQ for one bin.
double m_e1max
Maximum D1 energy (MeV)
bool m_psd_correct
PSD correction usage flag.
Interface for the COMPTEL Instrument Characteristics class.
Energy boundaries container class.
Class that handles energies in a unit independent way.
Single precision FITS image class.
Single parameter function abstract base class.
Abstract spectral model base class.