Jpp  15.0.0-rc.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JPythia.hh
Go to the documentation of this file.
1 #ifndef __JSIRENE__JPYTHIA__
2 #define __JSIRENE__JPYTHIA__
3 
4 #include <cmath>
5 
7 
8 
9 /**
10  * \author mdejong
11  */
12 
13 namespace JSIRENE {}
14 namespace JPP { using namespace JSIRENE; }
15 
16 namespace JSIRENE {
17 
18  /**
19  * Auxiliary class to determine EM-equivalent energy as a function of PDG particle code and energy.
20  */
21  struct JPythia {
22  /**
23  * Default constructor.
24  */
26  {}
27 
28 
29  /**
30  * Get EM-equivalent energy.
31  *
32  * \param type particle type [PDG]
33  * \param Es particle energy [GeV]
34  * \return EM-equivalent energy [GeV]
35  */
36  double operator()(const int type, const double Es) const
37  {
38  using namespace JAANET;
39 
40  switch (type) {
41 
42  case TRACK_TYPE_PHOTON:
47  return Es;
48 
51  return getEnergy(Es);
52 
53  default:
54  return 0.0;
55  }
56  }
57 
58 
59  /**
60  * Get equivalent EM-energy for given pion energy.
61  *
62  * Reference:
63  * Mona Dentler, "Investigation of the One-Particle Approximation in the ANTARES simulation package KM3",\n
64  * Bachelorarbeit Erlangen Centre for Astroparticle Physics,\n
65  * Friedrich-Alexander-Universit&auml;t, Erlangen-N&uuml;rnberg.
66  *
67  * \param Es particle energy [GeV]
68  * \return EM-equivalent energy [GeV]
69  */
70  static inline double getEnergy(const double Es)
71  {
72  static const double a = 72.425;
73  static const double b = -49.417;
74  static const double c = 5.858;
75  static const double d = 207.252;
76  static const double e = 132.784;
77  static const double f = -10.277;
78  static const double g = -19.441;
79  static const double h = 58.598;
80  static const double i = 53.161;
81  static const double kref = 2.698;
82 
83  static const double u = (a - f) / kref;
84 
85  const double x = log10(Es);
86  const double y = (e + x*(d + x*(c + x*(b + x*(a + x*u))))) / (i + x*(h + x*(g + x*(f + x*u))));
87 
88  return pow(10.0, y - kref);
89  }
90  };
91 
92 
93  /**
94  * Function object for relative light yield as a function of GEANT particle code.
95  */
96  static const JPythia pythia;
97 }
98 
99 #endif
then JMuonPostfit f
static const JPythia pythia
Function object for relative light yield as a function of GEANT particle code.
Definition: JPythia.hh:96
static double getEnergy(const double Es)
Get equivalent EM-energy for given pion energy.
Definition: JPythia.hh:70
Definition of hit and track types and auxiliary methods for handling Monte Carlo data.
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
Auxiliary class to determine EM-equivalent energy as a function of PDG particle code and energy...
Definition: JPythia.hh:21
JPythia()
Default constructor.
Definition: JPythia.hh:25
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then JCalibrateToT a
Definition: JTuneHV.sh:116
double operator()(const int type, const double Es) const
Get EM-equivalent energy.
Definition: JPythia.hh:36
double u[N+1]
Definition: JPolint.hh:739