GammaLib
2.0.0
|
Interface for the COMPTEL Instrument Characteristics class. More...
#include <GCOMInstChars.hpp>
Public Member Functions | |
GCOMInstChars (void) | |
Void constructor. More... | |
GCOMInstChars (const GCOMInstChars &ict) | |
Copy constructor. More... | |
GCOMInstChars (const GCaldb &caldb, const std::string &ictname) | |
Response constructor. More... | |
~GCOMInstChars (void) | |
Destructor. More... | |
GCOMInstChars & | operator= (const GCOMInstChars &ict) |
Assignment operator. More... | |
void | clear (void) |
Clear instance. More... | |
GCOMInstChars * | clone (void) const |
Clone instance. More... | |
std::string | classname (void) const |
Return class name. More... | |
void | caldb (const GCaldb &caldb) |
Set calibration database. More... | |
const GCaldb & | caldb (void) const |
Return calibration database. More... | |
void | load (const std::string &ictname) |
Load COMPTEL instrument characteristics. More... | |
double | trans_D1 (const double &energy) const |
Return transmission above D1. More... | |
double | trans_V1 (const double &energy) const |
Return V1 veto dome transmission. More... | |
double | prob_D1inter (const double &energy) const |
Return D1 interaction probability. More... | |
double | prob_no_multihit (const double &energy) const |
Return probability that no multihit occured. More... | |
double | prob_no_selfveto (const double &energy, const double &zenith) const |
Return probability that photon was not self vetoed. More... | |
double | trans_D2 (const double &energy, const double &phigeo) const |
Return transmission of material between D1 and D2. More... | |
double | trans_V23 (const double &energy, const double &phigeo) const |
Return V2+V3 veto dome transmission. More... | |
double | prob_D2inter (const double &energy, const double &phigeo) const |
Return D2 interaction probability. More... | |
double | multi_scatter (const double &energy, const double &phigeo) const |
Return multi-scatter correction. More... | |
double | psd_correction (const double &energy, const double &phigeo) const |
Return PSD correction. More... | |
std::string | print (const GChatter &chatter=NORMAL) const |
Print COMPTEL instrument characteristics. More... | |
Public Member Functions inherited from GBase | |
virtual | ~GBase (void) |
Destructor. More... | |
Private Member Functions | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GCOMInstChars &ict) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
void | read_coeffs (const GFitsTable &table, GNodeArray &energies, std::vector< double > &coeffs) |
Read energy dependent coefficients. More... | |
void | read_pos (const GFitsTable &table, std::vector< double > &x, std::vector< double > &y) |
Read module positions. More... | |
void | read_selfveto (const GFitsTable &table) |
Read selfveto coefficients. More... | |
double | ne213a_mfpath (const double &energy) const |
Return NE213A mean free path. More... | |
double | kn_cross_section (const double &k) const |
Return integrated Klein-Nishina cross section. More... | |
double | min_coeff (const std::vector< double > &coeffs) const |
Return minimum coefficient. More... | |
double | max_coeff (const std::vector< double > &coeffs) const |
Return maximum coefficient. More... | |
Private Attributes | |
GCaldb | m_caldb |
Calibration database. More... | |
GNodeArray | m_d1inter_energies |
D1 interaction coefficient energies (MeV) More... | |
std::vector< double > | m_d1inter_coeffs |
D1 interaction coefficients. More... | |
GNodeArray | m_d2inter_energies |
D2 interaction coefficient energies (MeV) More... | |
std::vector< double > | m_d2inter_coeffs |
D2 interaction coefficients. More... | |
GNodeArray | m_alu_energies |
Al interaction coefficient energies (MeV) More... | |
std::vector< double > | m_alu_coeffs |
Al interaction coefficients. More... | |
GNodeArray | m_aboved1_energies |
Above D1 attenuation coefficient energies (MeV) More... | |
std::vector< double > | m_aboved1_coeffs |
Above D1 attenuation coefficients. More... | |
GNodeArray | m_veto_energies |
Veto dome attenuation coefficient energies (MeV) More... | |
std::vector< double > | m_veto_coeffs |
Veto dome attenuation coefficients. More... | |
GNodeArray | m_selfveto_energies |
Selfveto energies (MeV) More... | |
GNodeArray | m_selfveto_zeniths |
Selfveto zenith angle (deg) More... | |
std::vector< double > | m_selfveto_coeffs |
Selfveto coefficients (probability) More... | |
GNodeArray | m_d1multi_energies |
D1 multihit attenuation coefficient energies (MeV) More... | |
std::vector< double > | m_d1multi_coeffs |
D1 multihit attenuation coefficients (probability) More... | |
GNodeArray | m_d2multi_energies |
D2 multihit attenuation coefficient energies (MeV) More... | |
std::vector< double > | m_d2multi_coeffs |
D2 multihit attenuation coefficients (probability) More... | |
std::vector< double > | m_d1pos_x |
D1 x-position (cm) More... | |
std::vector< double > | m_d1pos_y |
D1 y-position (cm) More... | |
std::vector< double > | m_d2pos_x |
D2 x-position (cm) More... | |
std::vector< double > | m_d2pos_y |
D2 y-position (cm) More... | |
GNodeArray | m_mfpath_energies |
NE213A mean free path energies (MeV) More... | |
std::vector< double > | m_mfpath_coeffs |
NE213A mean free path values. More... | |
double | m_d1dens |
D1 density (g/cm^-3) More... | |
double | m_d1rad |
D1 radius (cm) More... | |
double | m_d1thick |
D1 thickness (cm) More... | |
double | m_d2dens |
D2 density (g/cm^-3) More... | |
double | m_d2rad |
D2 radius (cm) More... | |
double | m_d2thick |
D2 thickness (cm) More... | |
double | m_thbar |
Average D2 incident angle (deg) More... | |
double | m_delz |
Distance between D1 and D2 levels (cm) More... | |
double | m_aldens |
Density of aluminium plate above D2 (g/cm^-3) More... | |
double | m_althick |
Thickness of aluminium plate above D2 (cm) More... | |
double | m_abdens |
Density above D1 (g/cm^-3) More... | |
double | m_abthick |
Thickness above D1 (cm) More... | |
double | m_vetodens |
Density of veto domes (g/cm^-3) More... | |
double | m_v1thick |
Thickness of V1 veto dome (cm) More... | |
double | m_vthick |
Thickness of V2 and V3 veto domes together (cm) More... | |
Interface for the COMPTEL Instrument Characteristics class.
Definition at line 47 of file GCOMInstChars.hpp.
GCOMInstChars::GCOMInstChars | ( | void | ) |
Void constructor.
Creates empty COMPTEL instrument characteristics.
Definition at line 61 of file GCOMInstChars.cpp.
References init_members().
Referenced by clone().
GCOMInstChars::GCOMInstChars | ( | const GCOMInstChars & | ict | ) |
Copy constructor.
[in] | ict | COMPTEL instrument characteristics. |
Definition at line 76 of file GCOMInstChars.cpp.
References copy_members(), and init_members().
GCOMInstChars::GCOMInstChars | ( | const GCaldb & | caldb, |
const std::string & | ictname | ||
) |
Response constructor.
[in] | caldb | Calibration database. |
[in] | ictname | ICT response name. |
Create COMPTEL instrument characteristics by loading an ICT file from a calibration database.
Definition at line 98 of file GCOMInstChars.cpp.
References caldb(), init_members(), and load().
GCOMInstChars::~GCOMInstChars | ( | void | ) |
Destructor.
Destroys instance of COMPTEL instrument characteristics.
Definition at line 119 of file GCOMInstChars.cpp.
References free_members().
|
inline |
Set calibration database.
[in] | caldb | Calibration database. |
Sets the calibration database containing the COMPTEL D1 module response.
Definition at line 168 of file GCOMInstChars.hpp.
|
inline |
Return calibration database.
Definition at line 154 of file GCOMInstChars.hpp.
References m_caldb.
Referenced by caldb(), GCOMInstChars(), and load().
|
inlinevirtual |
Return class name.
Implements GBase.
Definition at line 142 of file GCOMInstChars.hpp.
|
virtual |
Clear instance.
Clears COMPTEL instrument characteristics object by resetting all members to an initial state. Any information that was present in the object before will be lost.
Implements GBase.
Definition at line 175 of file GCOMInstChars.cpp.
References free_members(), and init_members().
Referenced by GCOMIaq::init_members(), and load().
|
virtual |
Clone instance.
Implements GBase.
Definition at line 193 of file GCOMInstChars.cpp.
References GCOMInstChars().
|
private |
Copy class members.
[in] | ict | COMPTEL instrument characteristics. |
Definition at line 1189 of file GCOMInstChars.cpp.
References m_abdens, m_aboved1_coeffs, m_aboved1_energies, m_abthick, m_aldens, m_althick, m_alu_coeffs, m_alu_energies, m_caldb, m_d1dens, m_d1inter_coeffs, m_d1inter_energies, m_d1multi_coeffs, m_d1multi_energies, m_d1pos_x, m_d1pos_y, m_d1rad, m_d1thick, m_d2dens, m_d2inter_coeffs, m_d2inter_energies, m_d2multi_coeffs, m_d2multi_energies, m_d2pos_x, m_d2pos_y, m_d2rad, m_d2thick, m_delz, m_selfveto_coeffs, m_selfveto_energies, m_selfveto_zeniths, m_thbar, m_v1thick, m_veto_coeffs, m_veto_energies, m_vetodens, and m_vthick.
Referenced by GCOMInstChars(), and operator=().
|
private |
Delete class members.
Definition at line 1238 of file GCOMInstChars.cpp.
Referenced by clear(), operator=(), and ~GCOMInstChars().
|
private |
Initialise class members.
Definition at line 1138 of file GCOMInstChars.cpp.
References GNodeArray::clear(), GCaldb::clear(), m_abdens, m_aboved1_coeffs, m_aboved1_energies, m_abthick, m_aldens, m_althick, m_alu_coeffs, m_alu_energies, m_caldb, m_d1dens, m_d1inter_coeffs, m_d1inter_energies, m_d1multi_coeffs, m_d1multi_energies, m_d1pos_x, m_d1pos_y, m_d1rad, m_d1thick, m_d2dens, m_d2inter_coeffs, m_d2inter_energies, m_d2multi_coeffs, m_d2multi_energies, m_d2pos_x, m_d2pos_y, m_d2rad, m_d2thick, m_delz, m_selfveto_coeffs, m_selfveto_energies, m_selfveto_zeniths, m_thbar, m_v1thick, m_veto_coeffs, m_veto_energies, m_vetodens, and m_vthick.
Referenced by clear(), GCOMInstChars(), and operator=().
|
private |
Return integrated Klein-Nishina cross section.
[in] | k | \(E/ m_e c^2\) |
Computes
\[ \sigma_{\rm KN}(k) = \frac{1+k}{k^2} \left[ \frac{2(1+k)}{1+2k} - \frac{\ln(1+2k)}{k} \right] + \frac{\ln(1+2k)}{2k} - \frac{1+3k}{(1+2k)^2} \]
where \(k = E/ m_e c^2\).
Definition at line 1593 of file GCOMInstChars.cpp.
References log().
Referenced by ne213a_mfpath().
void GCOMInstChars::load | ( | const std::string & | ictname | ) |
Load COMPTEL instrument characteristics.
[in] | ictname | COMPTEL instrument characteristics. |
Loads the COMPTEL instrument characteristics with specified name ictname
. The method first searchs for an appropriate response in the calibration database. If no appropriate response is found, the method takes the database root path and response name to build the full path to the response file, and tries to load the response from these paths.
Definition at line 210 of file GCOMInstChars.cpp.
References caldb(), clear(), GFits::close(), GFilename::exists(), GCaldb::filename(), gammalib::filepath(), GFilename::is_empty(), m_abdens, m_aboved1_coeffs, m_aboved1_energies, m_abthick, m_aldens, m_althick, m_alu_coeffs, m_alu_energies, m_caldb, m_d1dens, m_d1inter_coeffs, m_d1inter_energies, m_d1multi_coeffs, m_d1multi_energies, m_d1pos_x, m_d1pos_y, m_d1rad, m_d1thick, m_d2dens, m_d2inter_coeffs, m_d2inter_energies, m_d2multi_coeffs, m_d2multi_energies, m_d2pos_x, m_d2pos_y, m_d2rad, m_d2thick, m_delz, m_thbar, m_v1thick, m_veto_coeffs, m_veto_energies, m_vetodens, m_vthick, read_coeffs(), read_pos(), read_selfveto(), GFitsHDU::real(), GCaldb::rootdir(), and GFits::table().
Referenced by GCOMInstChars().
|
private |
Return maximum coefficient.
[in] | coeffs | Coefficients. |
Returns maximum coefficient.
Definition at line 1648 of file GCOMInstChars.cpp.
References max().
Referenced by print().
|
private |
Return minimum coefficient.
[in] | coeffs | Coefficients. |
Returns minimum coefficient.
Definition at line 1615 of file GCOMInstChars.cpp.
References min().
Referenced by print().
double GCOMInstChars::multi_scatter | ( | const double & | energy, |
const double & | phigeo | ||
) | const |
Return multi-scatter correction.
[in] | energy | Input photon energy (MeV). |
[in] | phigeo | Geometrical scatter angle (deg). |
Returns the fraction of photons that have undergone a single scatter and which leave the D1 module unattenuated (no second interaction when traversing the remaining path inside the same module).
RES already calculates the fraction of photons which undergo a single scatter for VERTICALLY indicent photons, based on the Klein-Nishina cross-section and the composition of NE213A. Therefore the above mentioned transmission can be applied as a multiplicative correction per phigeo. However, in order to calculate that correction, an integral over the module must be performed, which properly takes into account the radiative transfer inside the module at all R and z. We again use the assumption of vertical photon incidence, which simplifies the calculation. The integral is done over the location of the first interaction.
Note that the transmission calculated is conservative : in reality it will be a bit higher because of a fraction of the photons which undergo a second scatter have a final scatter angle after escaping the module within the phigeo-range of the PSF. These events will, however, mainly be located at large phibar (large D1E deposit).
The code implementation is based on the COMPASS RESPSIT2 function MULTIS.F (release ?, 27-NOV-92).
< Number of steps in z-direction
< Number of azimuthal steps
Definition at line 722 of file GCOMInstChars.cpp.
References abs(), cos(), gammalib::deg2rad, exp(), m_d1rad, m_d1thick, gammalib::mec2, ne213a_mfpath(), gammalib::pi, sin(), and sqrt().
Referenced by GCOMIaq::weight_iaq().
|
private |
Return NE213A mean free path.
[in] | energy | Energy (MeV) |
The mean free path as a function of energy, linearly interpolated between data-points. Table of mean free paths for NE213A taken from L. Kuiper calculated in JOB ROL-SPDSD1-43. This includes (1) Compton scattering and (2) Pair production.
Definition at line 1527 of file GCOMInstChars.cpp.
References exp(), GNodeArray::interpolate(), kn_cross_section(), log(), m_d1inter_coeffs, m_d1inter_energies, gammalib::mec2, and norm().
Referenced by multi_scatter().
GCOMInstChars & GCOMInstChars::operator= | ( | const GCOMInstChars & | ict | ) |
Assignment operator.
[in] | ict | COMPTEL instrument characteristics. |
Definition at line 141 of file GCOMInstChars.cpp.
References copy_members(), free_members(), and init_members().
Print COMPTEL instrument characteristics.
[in] | chatter | Chattiness. |
Implements GBase.
Definition at line 910 of file GCOMInstChars.cpp.
References exp(), m_abdens, m_aboved1_coeffs, m_aboved1_energies, m_abthick, m_aldens, m_althick, m_alu_coeffs, m_alu_energies, m_caldb, m_d1dens, m_d1inter_coeffs, m_d1inter_energies, m_d1multi_coeffs, m_d1multi_energies, m_d1pos_x, m_d1pos_y, m_d1rad, m_d1thick, m_d2dens, m_d2inter_coeffs, m_d2inter_energies, m_d2multi_coeffs, m_d2multi_energies, m_d2pos_x, m_d2pos_y, m_d2rad, m_d2thick, m_delz, m_selfveto_coeffs, m_selfveto_energies, m_selfveto_zeniths, m_thbar, m_v1thick, m_veto_coeffs, m_veto_energies, m_vetodens, m_vthick, max_coeff(), min_coeff(), gammalib::parformat(), GCaldb::print(), SILENT, GNodeArray::size(), and gammalib::str().
double GCOMInstChars::prob_D1inter | ( | const double & | energy | ) | const |
Return D1 interaction probability.
[in] | energy | Input photon energy (MeV). |
Computes the D1 interaction probability as function of energy using
\[ P(E) = 1 - \exp \left(-\mu_m(E) \, l \right) \]
where \(-\mu(E)\) is the energy-dependent D1 attenuation coefficient in units of \(1/cm\) that is interpolated using a log-log interpolation of the ICT table values, and \(l\) is the thickness of the D1 module in \(cm\).
Definition at line 405 of file GCOMInstChars.cpp.
References exp(), GNodeArray::interpolate(), log(), m_d1inter_coeffs, m_d1inter_energies, m_d1thick, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::prob_D2inter | ( | const double & | energy, |
const double & | phigeo | ||
) | const |
Return D2 interaction probability.
[in] | energy | Input photon energy (MeV). |
[in] | phigeo | Geometrical scatter angle (deg). |
Computes the D2 interaction probability as function of energy using
\[ P(E) = 1 - \exp \left(-\mu_m(E_2) \, l \right) \]
with
\[ E_2 = \frac{E_{\gamma}} {(1 - \cos \varphi_{\rm geo}) \frac{E_{\gamma}}{m_e c^2} + 1} \]
where \(E_{\gamma}\) is the input photon energy
in MeV, \(\varphi_{\rm geo}\) is the geometrical scatter angle, \(\mu(E_2)\) is the energy-dependent D2 attenuation coefficient in units of \(cm^{-1}\) that is interpolated using a log-log interpolation of the ICT table values, and \(l\) is the thickness of the D2 module in \(cm\).
Definition at line 667 of file GCOMInstChars.cpp.
References gammalib::com_energy2(), exp(), GNodeArray::interpolate(), log(), m_d2inter_coeffs, m_d2inter_energies, m_d2thick, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::prob_no_multihit | ( | const double & | energy | ) | const |
Return probability that no multihit occured.
[in] | energy | Input photon energy (MeV). |
Returns the probability that there is no multihit. The probability is directly interpolated using a log-log interpolation from the D1 values that are given in the ICT table. The D2 values are not used.
Definition at line 440 of file GCOMInstChars.cpp.
References exp(), GNodeArray::interpolate(), log(), m_d1multi_coeffs, m_d1multi_energies, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::prob_no_selfveto | ( | const double & | energy, |
const double & | zenith | ||
) | const |
Return probability that photon was not self vetoed.
[in] | energy | Input photon energy (MeV). |
[in] | zenith | Zenith angle (deg). |
Returns the probability that the photon was not self vetoed. The probability is directly bi-linearly interpolated from the values that are given in the ICT table.
Definition at line 477 of file GCOMInstChars.cpp.
References GNodeArray::inx_left(), GNodeArray::inx_right(), m_selfveto_coeffs, m_selfveto_energies, m_selfveto_zeniths, GNodeArray::set_value(), GNodeArray::size(), GNodeArray::wgt_left(), and GNodeArray::wgt_right().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::psd_correction | ( | const double & | energy, |
const double & | phigeo | ||
) | const |
Return PSD correction.
[in] | energy | Input photon energy (MeV). |
[in] | phigeo | Geometrical scatter angle (deg). |
Returns the D1 energy dependent PSD correction as described in COM-RP-ROL-DRG-016 and COM-RP-ROL-DRG-35. It applies to a standard PSD selection of 0-110.
The acceptance probability fit formula
\[ P_{\rm acc} = 1 - \frac{1}{a_1 \times E_1^{a_2} + 1} \]
where \(a_1=1727.9\), \(a_2=2.53\) and \(E_1\) is the D1 energy deposit in MeV. Coefficients are taken from Boron calibration data (ZA=1.14) to remain consistent with Rob van Dijk's SIMPSF corrections.
The code implementation is based on the COMPASS RESPSIT2 function PSDACP.F (release 1.0, 11-DEC-92).
Definition at line 887 of file GCOMInstChars.cpp.
References gammalib::com_energy1(), and pow().
Referenced by GCOMIaq::weight_iaq().
|
private |
Read energy dependent coefficients.
[in] | table | FITS table. |
[out] | energies | Energy node array. |
[out] | coeffs | Coefficients. |
Read energy dependent coefficients from FITS table and store their natural logarithm in the energies
and coeffs
vectors.
Definition at line 1255 of file GCOMInstChars.cpp.
References GNodeArray::append(), GNodeArray::clear(), GFitsTable::contains(), log(), GFitsTable::nrows(), and GFitsTableCol::real().
Referenced by load().
|
private |
Read module positions.
[in] | table | FITS table. |
[out] | x | X-positions of module. |
[out] | y | Y-positions of module. |
Read module positions from FITS table.
Definition at line 1307 of file GCOMInstChars.cpp.
References GFitsTableCol::integer(), GFitsTable::nrows(), and GFitsTableCol::real().
Referenced by load().
|
private |
Read selfveto coefficients.
[in] | table | FITS table. |
Read selfveto coefficients from FITS table. The selfveto coefficients depend on energy and zenith angle, and the input data are not necessarily regularly sampled. Therefore the method will form a regular grid from the provided values and compute the interpolated values from that grid.
Definition at line 1349 of file GCOMInstChars.cpp.
References abs(), GNodeArray::append(), GNodeArray::clear(), GNodeArray::interpolate(), m_selfveto_coeffs, m_selfveto_energies, m_selfveto_zeniths, GNodeArray::nodes(), GFitsTable::nrows(), GFitsTableCol::real(), and GNodeArray::size().
Referenced by load().
double GCOMInstChars::trans_D1 | ( | const double & | energy | ) | const |
Return transmission above D1.
[in] | energy | Input photon energy (MeV). |
Computes the transmission of material above D1 as function of energy using
\[ T(E) = \exp \left(-\mu(E) l \right) \]
where \(\mu(E)\) is the energy-dependent interaction coefficient for material above D1 in units of \(cm^{-1}\) that is interpolated using a log-log interpolation of the ICT table values, and \(l\) is the thickness of the material above D1 in \(cm\).
Definition at line 318 of file GCOMInstChars.cpp.
References exp(), GNodeArray::interpolate(), log(), m_aboved1_coeffs, m_aboved1_energies, m_abthick, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::trans_D2 | ( | const double & | energy, |
const double & | phigeo | ||
) | const |
Return transmission of material between D1 and D2.
[in] | energy | Input photon energy (MeV). |
[in] | phigeo | Geometrical scatter angle (deg). |
Computes the transmission of material between D1 and D2 as function of energy using
\[ T(E) = \exp \left(\frac{-\mu(E_2) \, l \right) \]
with
\[ E_2 = \frac{E_{\gamma}} {(1 - \cos \varphi_{\rm geo}) \frac{E_{\gamma}}{m_e c^2} + 1} \]
where \(E_{\gamma}\) is the input photon energy
in MeV, \(\varphi_{\rm geo}\) is the geometrical scatter angle, \(\mu(E_2)\) is the energy-dependent interaction coefficient of the material between D1 and D2 in units of \(cm^{-1}\) that is interpolated using a log-log interpolation of the ICT table values, and \(l\) is the thickness of the material between D1 and D2 in \(cm\).
Definition at line 562 of file GCOMInstChars.cpp.
References gammalib::com_energy2(), exp(), GNodeArray::interpolate(), log(), m_althick, m_alu_coeffs, m_alu_energies, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::trans_V1 | ( | const double & | energy | ) | const |
Return V1 veto dome transmission.
[in] | energy | Input photon energy (MeV). |
Computes the V1 veto dome transmission as function of energy using
\[ T(E) = \exp \left(-\mu(E) l \right) \]
where \(\mu(E)\) is the energy-dependent interaction coefficient of the V1 veto dome in units of \(cm^{-1}\) that is interpolated using a log-log interpolation of the ICT table values, and \(l\) is the thickness of the V1 veto dome in \(cm\).
Definition at line 362 of file GCOMInstChars.cpp.
References exp(), GNodeArray::interpolate(), log(), m_v1thick, m_veto_coeffs, m_veto_energies, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
double GCOMInstChars::trans_V23 | ( | const double & | energy, |
const double & | phigeo | ||
) | const |
Return V2+V3 veto dome transmission.
[in] | energy | Input photon energy (MeV). |
[in] | phigeo | Geometrical scatter angle (deg). |
Computes the V2+V3 veto dome transmission as function of energy using
\[ T(E) = \exp \left(-\mu(E) \, l \right) \]
\[ E_2 = \frac{E_{\gamma}} {(1 - \cos \varphi_{\rm geo}) \frac{E_{\gamma}}{m_e c^2} + 1} \]
where \(E_{\gamma}\) is the input photon energy
in MeV, \(\varphi_{\rm geo}\) is the geometrical scatter angle, \(\mu(E_2)\) is the energy-dependent interaction coefficient of the V2 and V3 veto domes in units of \(cm^{-1}\) that is interpolated using a log-log interpolation of the ICT table values, and \(l\) is the thickness of the V2+V3 veto domes in \(cm\).
Definition at line 614 of file GCOMInstChars.cpp.
References gammalib::com_energy2(), exp(), GNodeArray::interpolate(), log(), m_veto_coeffs, m_veto_energies, m_vthick, and GNodeArray::size().
Referenced by GCOMIaq::weight_iaq().
|
private |
Density above D1 (g/cm^-3)
Definition at line 128 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
Above D1 attenuation coefficients.
Definition at line 102 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_D1().
|
private |
Above D1 attenuation coefficient energies (MeV)
Definition at line 101 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_D1().
|
private |
Thickness above D1 (cm)
Definition at line 129 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_D1().
|
private |
Density of aluminium plate above D2 (g/cm^-3)
Definition at line 126 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
Thickness of aluminium plate above D2 (cm)
Definition at line 127 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_D2().
|
private |
Al interaction coefficients.
Definition at line 100 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_D2().
|
private |
Al interaction coefficient energies (MeV)
Definition at line 99 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_D2().
|
private |
Calibration database.
Definition at line 94 of file GCOMInstChars.hpp.
Referenced by caldb(), copy_members(), init_members(), load(), and print().
|
private |
D1 density (g/cm^-3)
Definition at line 118 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D1 interaction coefficients.
Definition at line 96 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), ne213a_mfpath(), print(), and prob_D1inter().
|
private |
D1 interaction coefficient energies (MeV)
Definition at line 95 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), ne213a_mfpath(), print(), and prob_D1inter().
|
private |
D1 multihit attenuation coefficients (probability)
Definition at line 109 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and prob_no_multihit().
|
private |
D1 multihit attenuation coefficient energies (MeV)
Definition at line 108 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and prob_no_multihit().
|
private |
D1 x-position (cm)
Definition at line 112 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D1 y-position (cm)
Definition at line 113 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D1 radius (cm)
Definition at line 119 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), multi_scatter(), and print().
|
private |
D1 thickness (cm)
Definition at line 120 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), multi_scatter(), print(), and prob_D1inter().
|
private |
D2 density (g/cm^-3)
Definition at line 121 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D2 interaction coefficients.
Definition at line 98 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and prob_D2inter().
|
private |
D2 interaction coefficient energies (MeV)
Definition at line 97 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and prob_D2inter().
|
private |
D2 multihit attenuation coefficients (probability)
Definition at line 111 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D2 multihit attenuation coefficient energies (MeV)
Definition at line 110 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D2 x-position (cm)
Definition at line 114 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D2 y-position (cm)
Definition at line 115 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D2 radius (cm)
Definition at line 122 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
D2 thickness (cm)
Definition at line 123 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and prob_D2inter().
|
private |
Distance between D1 and D2 levels (cm)
Definition at line 125 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
NE213A mean free path values.
Definition at line 117 of file GCOMInstChars.hpp.
|
private |
NE213A mean free path energies (MeV)
Definition at line 116 of file GCOMInstChars.hpp.
|
private |
Selfveto coefficients (probability)
Definition at line 107 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), print(), prob_no_selfveto(), and read_selfveto().
|
private |
Selfveto energies (MeV)
Definition at line 105 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), print(), prob_no_selfveto(), and read_selfveto().
|
private |
Selfveto zenith angle (deg)
Definition at line 106 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), print(), prob_no_selfveto(), and read_selfveto().
|
private |
Average D2 incident angle (deg)
Definition at line 124 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
Thickness of V1 veto dome (cm)
Definition at line 131 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_V1().
|
private |
Veto dome attenuation coefficients.
Definition at line 104 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), trans_V1(), and trans_V23().
|
private |
Veto dome attenuation coefficient energies (MeV)
Definition at line 103 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), trans_V1(), and trans_V23().
|
private |
Density of veto domes (g/cm^-3)
Definition at line 130 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), and print().
|
private |
Thickness of V2 and V3 veto domes together (cm)
Definition at line 132 of file GCOMInstChars.hpp.
Referenced by copy_members(), init_members(), load(), print(), and trans_V23().