GammaLib  2.1.0.dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GCOMD2Response::kn_gauss_kernel Class Reference
Inheritance diagram for GCOMD2Response::kn_gauss_kernel:
GFunction

Public Member Functions

 kn_gauss_kernel (const double &ereco, const double &e0, const double &ec, const double &sigma)
 
double eval (const double &e)
 Computes modified Klein-Nishina cross section multiplied with Gaussian kernel. More...
 
- Public Member Functions inherited from GFunction
 GFunction (void)
 Void constructor. More...
 
 GFunction (const GFunction &function)
 Copy constructor. More...
 
virtual ~GFunction (void)
 Destructor. More...
 
GFunctionoperator= (const GFunction &function)
 Assignment operator. More...
 

Protected Attributes

double m_ereco
 
double m_e0
 Incident energy (MeV) More...
 
double m_ec
 Compton edge energy (MeV) More...
 
double m_wgt
 Inverse of Gaussian standard deviation (1/MeV) More...
 

Additional Inherited Members

- Protected Member Functions inherited from GFunction
void init_members (void)
 Initialise class members. More...
 
void copy_members (const GFunction &function)
 Copy class members. More...
 
void free_members (void)
 Delete class members. More...
 

Detailed Description

Definition at line 94 of file GCOMD2Response.hpp.

Constructor & Destructor Documentation

GCOMD2Response::kn_gauss_kernel::kn_gauss_kernel ( const double &  ereco,
const double &  e0,
const double &  ec,
const double &  sigma 
)
inline

Definition at line 96 of file GCOMD2Response.hpp.

Member Function Documentation

double GCOMD2Response::kn_gauss_kernel::eval ( const double &  e)
virtual

Computes modified Klein-Nishina cross section multiplied with Gaussian kernel.

Parameters
[in]eEnergy (MeV).
Returns
Modified Klein-Nishina cross section multiplied with Gaussian kernel

Computes the modified Klein-Nishina cross section multiplied with a Gaussian kernel using

\[ KN_{\rm mod}(E|E_2,\hat{E_2}) = \sigma_{\rm KN}(E|\hat{E_2}) \times f(E|\hat{E_2}) \times \frac{1}{\sigma^2(E_2) \sqrt{2\pi}} \exp \left( -\frac{1}{2} \frac{(E-E_2)^2}{\sigma^2(E_2)} \right) \]

where

\[ \sigma_{\rm KN}(E|\hat{E_2}) = \left( \frac{E/\hat{E_2}}{1-E/\hat{E_2}} \frac{m_e c^2}{\hat{E_2}} \right)^2 - \frac{E}{\hat{E_2}} + \frac{1}{1-E/\hat{E_2}} \]

is the Klein-Nishina cross section, and

\[ f(E|\hat{E_2}) = \left \{ \begin{array}{l l} \displaystyle \exp \left( -\mu(E|\hat{E_2}) \, l(\hat{E_2}) \right), & \mbox{if $\hat{E_2} > 12.14$ MeV} \\ \displaystyle 0, & \mbox{otherwise} \\ \end{array} \right . \]

is the probability that a photon, which has been Compton scattered, has no second interaction before escaping (aborption, compton scattering, pair creation), where

\[ \mu(E|\hat{E_2}) = 0.72 \, e^{-1.28 (\hat{E_2} - E)^{0.35}} + 0.01 \, (\hat{E_2} - E) + 0.014 \, (\hat{E_2} - E)^{-2.5} \]

is the total linear attenuation coefficient in NaI for all processes, which is an empirical function which describes the values given by Harshaw, and

\[ l(\hat{E_2}) = 2.9 \log( \hat{E_2} - 11.14) \]

is an empirical path length in the D2 module (energies are in MeV). \(\hat{E_2}\) is the position of the photo peak, \(E_2\) is the energy deposit measured in D2, \(\sigma(E_2)\) is the standard deviation at the measured energy, and \(E\) is the energy over which the convolution is performed.

The code implementation is based on the COMPASS RESRS209 function KLNSUB.F (release 1.0, 14-Oct-91) and CHANCT.F (release 2.0, 26-JAN-93).

Implements GFunction.

Definition at line 1020 of file GCOMD2Response.cpp.

References exp(), gammalib::inv_sqrt2pi, log(), m_e0, m_ereco, m_wgt, gammalib::mec2, and pow().

Member Data Documentation

double GCOMD2Response::kn_gauss_kernel::m_e0
protected

Incident energy (MeV)

Definition at line 107 of file GCOMD2Response.hpp.

Referenced by eval().

double GCOMD2Response::kn_gauss_kernel::m_ec
protected

Compton edge energy (MeV)

Definition at line 108 of file GCOMD2Response.hpp.

double GCOMD2Response::kn_gauss_kernel::m_ereco
protected

Definition at line 106 of file GCOMD2Response.hpp.

Referenced by eval().

double GCOMD2Response::kn_gauss_kernel::m_wgt
protected

Inverse of Gaussian standard deviation (1/MeV)

Definition at line 109 of file GCOMD2Response.hpp.

Referenced by eval().


The documentation for this class was generated from the following files: