Detector simulations.
More...
|
static const JPythia | pythia |
| Function object for relative light yield as a function of GEANT particle code. More...
|
|
Detector simulations.
- Author
- mdejong
bool JSIRENE::operator< |
( |
const JPulse & |
first, |
|
|
const JPulse & |
second |
|
) |
| |
|
inline |
Compare Monte Carlo hit times.
- Parameters
-
first | first hit |
second | second hit |
- Returns
- true if first hit earlier than second; else false
Definition at line 81 of file JPulse.hh.
83 return first.getLowerLimit() < second.getLowerLimit();
bool JSIRENE::operator< |
( |
const JPulse & |
hit, |
|
|
const double |
t0 |
|
) |
| |
|
inline |
Compare Monte Carlo hit times.
- Parameters
-
- Returns
- true if hit earlier than given time; else false
Definition at line 94 of file JPulse.hh.
96 return hit.getLowerLimit() < t0;
int JSIRENE::getNumberOfPhotoElectrons |
( |
const double |
NPE, |
|
|
const int |
N, |
|
|
const double |
npe |
|
) |
| |
|
inline |
Get number of photo-electrons of a hit given the expectation values of the number of photo-electrons on a module and PMT.
The return value is evaluated by pick-and-drop statistics from the generated number of photo-electrons when the expectation value of the number of photo-electrons on a module deviates less than 5 sigmas from 0 (i.e. when it is less than 25). Otherwise, the return value is evaluated by Poisson statistics from the expectation value of the number of photo-electrons on PMT.
- Parameters
-
NPE | expectation value of npe on module |
N | generated value of npe on module |
npe | expectation value of npe on PMT |
- Returns
- number of photo-electrons on PMT
Definition at line 54 of file JSireneToolkit.hh.
62 for (
int i =
N; i != 0; --i) {
63 if (gRandom->Rndm() * NPE < npe) {
72 return gRandom->Poisson(npe);
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
int JSIRENE::getNumberOfPhotoElectrons |
( |
const int |
npe | ) |
|
|
inline |
Get number of photo-electrons of a hit given number of photo-electrons on PMT.
The number of photo-electrons of a hit may be larger than unity to limit the overall number of hits and consequently the memory coonsumption as well as the number of times the arrival time needs to be evaluated which is CPU intensive.
- Parameters
-
npe | number of photo-electrons on PMT |
- Returns
- number of photo-electrons of hit
Definition at line 87 of file JSireneToolkit.hh.
89 static const int NPE = 20;
93 const int n = (int) (NPE * log10((
double) npe / (
double) NPE));
JHitType_t JSIRENE::getHitType |
( |
const JPDFType_t |
pdf, |
|
|
const bool |
shower = false |
|
) |
| |
|
inline |
Get hit type corresponding to given PDF type.
- Parameters
-
pdf | PDF type |
shower | force origin from neutrino interaction shower |
- Returns
- hit type
Definition at line 112 of file JSireneToolkit.hh.
114 using namespace JAANET;
115 using namespace JPHYSICS;
Scattered light from primary shower.
Direct light from delta-rays.
Scattered light from muon.
scattered light from EM shower
Scattered light from Bremsstrahlung.
Direct light from Bremsstrahlung.
Direct light from primary shower.
scattered light from muon
scattered light from delta-rays
direct light from EM shower
direct light from delta-rays
Scattered light from delta-rays.
double JSIRENE::getKineticEnergy |
( |
const double |
E, |
|
|
const double |
m |
|
) |
| |
|
inline |
Get kinetic energy of particle with given mass.
- Parameters
-
E | energy [GeV] |
m | mass [GeV] |
- Returns
- energy [GeV]
Definition at line 375 of file JSireneToolkit.hh.
378 return sqrt((
E - m) * (
E + m));
double JSIRENE::pythia |
( |
const int |
type, |
|
|
const double |
E |
|
) |
| |
|
inline |
Get equivalent EM-energy for given pion energy.
- Parameters
-
type | particle type [PDG] |
E | particle energy [GeV] |
- Returns
- EM-equivalent energy [GeV]
Definition at line 31 of file km3-opa_efrac.hh.
34 float ekin = (float)
E;
T & getInstance(const T &object)
Get static instance from temporary object.
float opa_efrac_(int &ipart, float &ekin)
double JSIRENE::opa_weight_high_e |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 20 of file pythia.hh.
22 static const double Ma = 72.425;
23 static const double Mb = -49.417;
24 static const double Mc = 5.858;
25 static const double Md = 207.252;
26 static const double Me = 132.784;
27 static const double Mf = -10.277;
28 static const double Mg = -19.441;
29 static const double Mh = 58.598;
30 static const double Mi = 53.161;
31 static const double Mkref = 2.698;
33 static const double Mlc = (Ma-Mf)/Mkref;
35 double num, denom, lognp, Ee, logE;
45 num = Me + Md*logE + Mc*
pow(logE,2) + Mb*
pow(logE,3) + Ma *
pow(logE,4) + Mlc*
pow(logE,5);
46 denom = Mi + Mh*logE + Mg*
pow(logE,2) + Mf*
pow(logE,3) + Mlc*
pow(logE,4);
53 Ee =
pow(10.0, lognp-Mkref);
T pow(const T &x, const double y)
Power .
double JSIRENE::ngamma_elec |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 58 of file pythia.hh.
60 static const double eleca = 1.33356e5;
61 static const double elecb = 1.66113e2;
62 static const double elecc = 16.4949;
63 static const double elecd = 1.5385e5;
64 static const double elece = 6.04871e5;
66 return (eleca*ekin+elecb) *
exp(-ekin/elecc) + (elecd*ekin+elece)* (1.-
exp(-ekin/elecc));
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` typeset -Z 4 STRING JOpera1D -f hydrophone.root
double JSIRENE::weight_pion |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 69 of file pythia.hh.
71 static const double pia = 0.538346;
72 static const double pib = 1.32041;
73 static const double pic = 0.737415;
74 static const double pid = -0.813861;
75 static const double pie = -2.22444;
76 static const double pif = -2.15795;
77 static const double pig = -6.47242;
78 static const double pih = -2.7567;
79 static const double pix = 8.83498;
86 const double lek=log(ekin);
87 return (pib*1e5*ekin + (
pow(ekin,(1.-1./pic))) * (pid*1e4 + 1e4*pie*lek + 1e4*pif*
pow(lek,2) + 1e3*pig*
pow(lek,3) + 1e2*pih*
pow(lek,4)))/
ngamma_elec(ekin);
double ngamma_elec(const double ekin)
T pow(const T &x, const double y)
Power .
double JSIRENE::weight_kaon |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 92 of file pythia.hh.
94 static const double ka = 12.7537;
95 static const double kb = -1.052;
96 static const double kc = 3.49559;
97 static const double kd = 16.7914;
98 static const double ke = -0.355066;
99 static const double kf = 2.77116;
102 return (1e4*ka*(ekin+kb)*(1.-
exp(-ekin/kc)) + 1e4*(kd*ekin+ke)*
exp(-ekin/kc))/
ngamma_elec(ekin);
double ngamma_elec(const double ekin)
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` typeset -Z 4 STRING JOpera1D -f hydrophone.root
double JSIRENE::weight_kshort |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 108 of file pythia.hh.
110 static const double k0sa = 0.351242;
111 static const double k0sb = 0.613076;
112 static const double k0sc = 6.24682;
113 static const double k0sd = 2.8858;
115 return (k0sa*1e5 + k0sb*1e5*ekin + ekin*k0sc*1e4*log(k0sd + 1./ekin))/
ngamma_elec(ekin);
double ngamma_elec(const double ekin)
double JSIRENE::weight_klong |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 119 of file pythia.hh.
121 static const double k0la = 2.18152;
122 static const double k0lb = -0.632798;
123 static const double k0lc = 0.999514;
124 static const double k0ld = 1.36052;
125 static const double k0le = 4.22484;
126 static const double k0lf = -0.307859;
129 return (1e4*k0la + ekin*1e5*k0lb*log(ekin) + 1e5*k0lc*
pow(ekin,1.5))/
ngamma_elec(ekin);
131 return (ekin*k0ld*1e5 +
pow(ekin,1.-1./k0le)*k0lf*1e5)/
ngamma_elec(ekin);
double ngamma_elec(const double ekin)
T pow(const T &x, const double y)
Power .
double JSIRENE::weight_proton |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 135 of file pythia.hh.
137 static const double pa = 12.1281;
138 static const double pb = -17.1528;
139 static const double pc = 0.573158;
140 static const double pd = 34.1436;
141 static const double pe = -0.28944;
142 static const double pf = -13.2619;
143 static const double pg = 24.1357;
145 return (1e4*(pa*ekin+pb)*(1.-
exp(-ekin/pc)) + 1e4*(pd*ekin +pe+ pf*
pow(ekin,2) + pg*
pow(ekin,3))*
exp(-ekin/pc)) /
ngamma_elec(ekin);
double ngamma_elec(const double ekin)
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` typeset -Z 4 STRING JOpera1D -f hydrophone.root
T pow(const T &x, const double y)
Power .
double JSIRENE::weight_neutron |
( |
const double |
ekin | ) |
|
|
inline |
Definition at line 149 of file pythia.hh.
151 static const double na = 1.24605;
152 static const double nb = 0.63819;
153 static const double nc = -0.802822;
154 static const double nd = -0.935327;
155 static const double ne = -6.1126;
156 static const double nf = -1.96894;
157 static const double ng = 0.716954;
158 static const double nh = 2.68246;
159 static const double ni = -9.39464;
160 static const double nj = 15.0737;
163 const double lek=log(ekin);
164 return (na*1e5*ekin + 1e3*
pow(ekin,1.-1./nb) * (100.*nc+100.*nd*lek + 10.*ne*
pow(lek,2) + 11.*nf*
pow(lek,3)))/
ngamma_elec(ekin);
166 return (1e3*ng + 1e4*nh*ekin + 1e4*ni*
pow(ekin,2) + 1e4*nj*
pow(ekin,3))/
ngamma_elec(ekin);
double ngamma_elec(const double ekin)
T pow(const T &x, const double y)
Power .
double JSIRENE::opa_efrac |
( |
const int |
ipart, |
|
|
const double |
ekin |
|
) |
| |
|
inline |
Definition at line 173 of file pythia.hh.
175 double etemp, weight_part;
178 if (ipart == 1 || ipart == 2 || ipart == 3 || ipart == 7) {
190 if (ipart == 8 || ipart == 9)
192 else if (ipart == 10)
194 else if (ipart == 16)
196 else if (ipart == 11 || ipart == 12)
198 else if (ipart == 13)
200 else if (ipart == 14)
208 else if (ekin >= 1e7)
212 const double wp40 = weight_part;
215 return whex - (whe40-wp40)*(7.-log10(ekin))/5.398;
double weight_klong(const double ekin)
double opa_weight_high_e(const double ekin)
double weight_proton(const double ekin)
double weight_pion(const double ekin)
double weight_kaon(const double ekin)
double weight_kshort(const double ekin)
double weight_neutron(const double ekin)
Function object for relative light yield as a function of GEANT particle code.
Definition at line 96 of file JPythia.hh.