Jpp
software
JSirene
JPythia.hh
Go to the documentation of this file.
1
#ifndef __JSIRENE__JPYTHIA__
2
#define __JSIRENE__JPYTHIA__
3
4
#include <cmath>
5
6
#include "
JAAnet/JAAnetToolkit.hh
"
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
*/
25
JPythia
()
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
:
43
case
TRACK_TYPE_NEUTRAL_PION
:
44
case
TRACK_TYPE_NEUTRAL_ANTIPION
:
45
case
TRACK_TYPE_ELECTRON
:
46
case
TRACK_TYPE_ANTIELECTRON
:
47
return
Es;
48
49
case
TRACK_TYPE_CHARGED_PION_PLUS
:
50
case
TRACK_TYPE_CHARGED_PION_MINUS
:
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ät, Erlangen-Nü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
JSIRENE::JPythia::operator()
double operator()(const int type, const double Es) const
Get EM-equivalent energy.
Definition:
JPythia.hh:36
JTOOLS::u
double u[N+1]
Definition:
JPolint.hh:706
JAANET::TRACK_TYPE_NEUTRAL_PION
Definition:
JParticleTypes.hh:71
JSIRENE::pythia
static const JPythia pythia
Function object for relative light yield as a function of GEANT particle code.
Definition:
JPythia.hh:96
JAANET::TRACK_TYPE_ELECTRON
Definition:
JParticleTypes.hh:64
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition:
JAAnetToolkit.hh:37
JAANET::TRACK_TYPE_CHARGED_PION_MINUS
Definition:
JParticleTypes.hh:94
JSIRENE::JPythia::getEnergy
static double getEnergy(const double Es)
Get equivalent EM-energy for given pion energy.
Definition:
JPythia.hh:70
JSIRENE
Detector simulations.
Definition:
JPulse.hh:19
JSIRENE::JPythia::JPythia
JPythia()
Default constructor.
Definition:
JPythia.hh:25
JAAnetToolkit.hh
JAANET::TRACK_TYPE_CHARGED_PION_PLUS
Definition:
JParticleTypes.hh:72
JAANET::TRACK_TYPE_NEUTRAL_ANTIPION
Definition:
JParticleTypes.hh:93
JAANET
Extensions to AAnet data format.
Definition:
JAAnetToolkit.hh:36
JAANET::TRACK_TYPE_PHOTON
Definition:
JParticleTypes.hh:70
JSIRENE::JPythia
Auxiliary class to determine EM-equivalent energy as a function of PDG particle code and energy.
Definition:
JPythia.hh:21
JAANET::TRACK_TYPE_ANTIELECTRON
Definition:
JParticleTypes.hh:87
Generated by
1.8.16