Processing math: 100%
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.
 
- Public Member Functions inherited from GFunction
 GFunction (void)
 Void constructor.
 
 GFunction (const GFunction &function)
 Copy constructor.
 
virtual ~GFunction (void)
 Destructor.
 
GFunctionoperator= (const GFunction &function)
 Assignment operator.
 

Protected Attributes

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

Additional Inherited Members

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

Detailed Description

Definition at line 94 of file GCOMD2Response.hpp.

Constructor & Destructor Documentation

◆ kn_gauss_kernel()

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

◆ eval()

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 gammalib::inv_sqrt2pi, m_e0, m_ereco, m_wgt, and gammalib::mec2.

Member Data Documentation

◆ m_e0

double GCOMD2Response::kn_gauss_kernel::m_e0
protected

Incident energy (MeV)

Definition at line 107 of file GCOMD2Response.hpp.

Referenced by eval().

◆ m_ec

double GCOMD2Response::kn_gauss_kernel::m_ec
protected

Compton edge energy (MeV)

Definition at line 108 of file GCOMD2Response.hpp.

◆ m_ereco

double GCOMD2Response::kn_gauss_kernel::m_ereco
protected

Definition at line 106 of file GCOMD2Response.hpp.

Referenced by eval().

◆ m_wgt

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: