Jpp  master_rocky-43-ge265d140c
the software that should make you happy
JIonization.hh
Go to the documentation of this file.
1 #ifndef __JPHYSICS_JIONIZATION__
2 #define __JPHYSICS_JIONIZATION__
3 
4 #include <map>
5 
6 #include "JLang/JException.hh"
7 
8 /**
9  * \author vcarretero
10  */
11 
12 namespace JPHYSICS {}
13 namespace JPP { using namespace JPHYSICS; }
14 
15 namespace JPHYSICS {
16 
18 
19  /**
20  * Struct for the Sternheimer coefficients.\n
21  * Reference: R.M. Sternheimer, M.J. Berger, S.M. Seltzer. Density effect for the ionization loss of charged particles in various substances, Atomic Data and Nuclear Data Tables, Volume 30, Issue 2, 1984, Pages 261-271,ISSN 0092-640X, https://doi.org/10.1016/0092-640X(84)90002-0.
22  */
23  struct JSter {
24  double I; //!< Ionization potentian [GeV]
25  double X0; //!< Correction density parameter
26  double X1; //!< Correction density parameter
27  double a; //!< Correction density parameter
28  double m; //!< Correction density parameter
29  double C; //!< Correction density parameter
30  };
31 
32 
33  /**
34  * Auxiliary data structure Ster coefficients as a function of proton number.
35  */
36  struct JSterCoefficient :
37  public std::map<int, JSter>
38  {
39  /**
40  * Default constructor.
41  */
43  {
44  (*this)[ 1] = { 21.8e-9, 0.4400, 1.8856, 0.1348, 5.6249, -3.0977}; // H
45  (*this)[ 8] = { 95.0e-9, 0.2868, 2.0000, 0.5223, 3.0000, -3.9471}; // O
46  (*this)[11] = { 149.0e-9, 0.2880, 3.1962, 0.0777, 3.6452, -5.0526}; // Na
47  (*this)[17] = { 174.0e-9, 0.2000, 3.0000, 0.1802, 3.0000, -4.8776}; // Cl
48  (*this)[ 6] = { 78.0e-9,-0.0090, 2.4817, 0.2076, 2.9532, -2.8926}; // C
49  (*this)[12] = { 156.0e-9, 0.1499, 3.0668, 0.0816, 3.6166, -4.5297}; // Mg
50  (*this)[19] = { 190.0e-9, 0.3851, 3.1724, 0.1983, 2.9233, -5.6423}; // K
51  (*this)[16] = { 180.0e-9, 0.1580, 2.7159, 0.3399, 2.6456, -4.6659}; // S
52  (*this)[14] = { 173.0e-9, 0.2015, 2.8716, 0.1492, 3.2546, -4.4355}; // Si
53  (*this)[13] = { 166.0e-9, 0.1708, 3.0127, 0.0802, 3.6345, -4.2395}; // Al
54  (*this)[26] = { 286.0e-9,-0.0012, 3.1531, 0.1468, 2.9632, -4.2911}; // Fe
55  (*this)[22] = { 233.0e-9, 0.0957, 3.0386, 0.1566, 3.0302, -4.4450}; // Ti
56  (*this)[20] = { 191.0e-9, 0.3228, 3.1191, 0.1564, 3.0745, -5.0396}; // Ca
57  (*this)[35] = { 357.0e-9, 0.3669, 3.0000, 0.2211, 3.0000, -5.7268}; // Br
58  }
59 
60 
61  /**
62  * Get Ster coefficients for given proton number.
63  *
64  * \param Z proton number
65  * \return Ster coefficients
66  */
67  const JSter& operator()(const int Z) const
68  {
69  const_iterator i = this->find(Z);
70 
71  if (i != this->end())
72  return i->second;
73  else
74  THROW(JValueOutOfRange, "Invalid proton number " << Z);
75  }
76  };
77 
78 
79  /**
80  * Function object for Ster coefficients.
81  */
83 }
84 
85 #endif
Exceptions.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:180
Auxiliary methods for light properties of deep-sea water.
static JSterCoefficient getSterCoefficient
Function object for Ster coefficients.
Definition: JIonization.hh:82
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure Ster coefficients as a function of proton number.
Definition: JIonization.hh:38
JSterCoefficient()
Default constructor.
Definition: JIonization.hh:42
const JSter & operator()(const int Z) const
Get Ster coefficients for given proton number.
Definition: JIonization.hh:67
Struct for the Sternheimer coefficients.
Definition: JIonization.hh:23
double C
Correction density parameter
Definition: JIonization.hh:29
double m
Correction density parameter.
Definition: JIonization.hh:28
double I
Ionization potentian [GeV].
Definition: JIonization.hh:24
double X1
Correction density parameter.
Definition: JIonization.hh:26
double a
Correction density parameter.
Definition: JIonization.hh:27
double X0
Correction density parameter.
Definition: JIonization.hh:25