Jpp  18.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JRadiation.hh
Go to the documentation of this file.
1 #ifndef __JPHYSICS__JRADIATION__
2 #define __JPHYSICS__JRADIATION__
3 
4 #include <cmath>
5 
6 #include <TRandom3.h>
7 
8 #include "JLang/JCC.hh"
9 #include "JPhysics/JConstants.hh"
10 #include "JPhysics/JIonization.hh"
11 
12 /**
13  * \file
14  * Muon radiative cross sections.
15  * \author P. Kooijman
16  */
17 
18 namespace JPHYSICS {}
19 namespace JPP { using namespace JPHYSICS; }
20 
21 namespace JPHYSICS {
22 
23  namespace {
24  static const double LAMBDA = 0.65; // [GeV]
25  }
26 
27  /**
28  * Auxiliary class for the calculation of the muon radiative cross sections.
29  * \author P. Kooijman
30  *
31  * Muon scattering:
32  * A. van Ginneken, Nucl.\ Instr.\ and Meth.\ A251 (1986) 21.
33  */
34  class JRadiation {
35  public:
36 
37  /**
38  * Virtual desctructor.
39  */
40  virtual ~JRadiation()
41  {}
42 
43 
44  /**
45  * Constructor.
46  *
47  * \param z number of protons
48  * \param a number of nucleons
49  * \param integrsteps number of integration steps
50  * \param eminBrems energy threshold Bremsstrahlung [GeV]
51  * \param eminEErad energy threshold pair production [GeV]
52  * \param eminGNrad energy threshold photo-production [GeV]
53  */
54  JRadiation(const double z,
55  const double a,
56  const int integrsteps,
57  const double eminBrems,
58  const double eminEErad,
59  const double eminGNrad) :
60  Z(z),
61  A(a),
62  Dn (1.54*pow(A,0.27)),
63  DnP (pow(Dn,(1-1/Z))),
64  steps(integrsteps),
65  EminBrems(eminBrems),
66  EminEErad(eminEErad),
67  EminGNrad(eminGNrad)
68  {}
69 
70 
71  /**
72  * Pair production cross section.
73  *
74  * \param E muon energy [GeV]
75  * \param eps shower energy [GeV]
76  * \return cross section [m^2/g]
77  */
78  double SigmaEErad(const double E,
79  const double eps) const
80  {
81  //routine to calculate dsigma/de in cm^2/GeV for radiating a photon of energy eps
82 
83  if(eps<4.*MASS_ELECTRON)return 0.;
84  if(eps>E-0.75*exp(1.0)*pow(Z,1./3.)) return 0.;
85  double zeta;
86  if(E<35.*MASS_MUON)
87  {
88  zeta = 0.;
89  }
90  else
91  {
92  zeta = (0.073*log((E/MASS_MUON)/(1.+1.95e-5*pow(Z,2./3.)*E/MASS_MUON))-0.26);
93  if(zeta<0.)
94  {
95  zeta=0.;
96  }
97  else
98  {
99  zeta = zeta/(0.058*log((E/MASS_MUON)/(1.+5.3e-5*pow(Z,1./3.)*E/MASS_MUON))-0.14);
100  }
101  }
102  double integ = IntegralofG(E,eps);
103  //cout<< eps<<" integ "<< integ<<endl;
104  return integ*(4/(3.*M_PI))*(Z*(Z+zeta)/A)*AVOGADRO*pow((ALPHA_ELECTRO_MAGNETIC*r0()),2.)*(1-eps/E)/eps;
105  }
106 
107 
108  /**
109  * Pair production cross section.
110  *
111  * \param E muon energy [GeV]
112  * \return cross section [m^2/g]
113  */
114  virtual double TotalCrossSectionEErad(const double E) const
115  {
116  //cout<<" entering TotcrsecEErad"<<endl;
117  // radiation goes approx as 1/E so sample in log E
118  // calculate the total cross section as S(dsigma/de)*de
119  // start at E and go backwards for precision
120  double sum(0.);
121  double dle = log(E/EminEErad)/steps;
122  //cout << "dle "<< dle<<endl;
123  for(int i=0;i<steps+1;i++)
124  {
125  double factor = 1.0;
126  if(i==0 || i==steps)factor=0.5;
127  //cout<<"i"<<i<<endl;
128  double eps = EminEErad*exp(i*dle);sum += factor*eps*SigmaEErad( E, eps);
129  //cout<<"eps "<<eps<<" sum "<<sum<<endl;
130  }
131  return sum*dle;
132  }
133 
134 
135  /**
136  * Bremsstrahlung cross section.
137  *
138  * \param E muon energy [GeV]
139  * \return cross section [m^2/g]
140  */
141 
142  double TotalCrossSectionBrems(const double E) const
143  {
144  // double delta = (MASS_MUON*MASS_MUON*eps)/(2*E*(E-eps));
145  double delta = (MASS_MUON*MASS_MUON)/(2*E);
146  //double v = eps/E;
147  double Phin = log((B()*pow(Z,-1./3.)*(MASS_MUON+delta*(DnP*sqrt(exp(1.0))-2.)))/(DnP*(MASS_ELECTRON+delta*sqrt(exp(1.0))*B()*pow(Z,-1./3.))));
148  if(Phin<0.)Phin=0.;
149  double Phie = log((BP()*pow(Z,-2./3.)*MASS_MUON)/((1+delta*MASS_MUON/(MASS_ELECTRON*MASS_ELECTRON*sqrt(exp(1.0))))*(MASS_ELECTRON+delta*sqrt(exp(1.0))*BP()*pow(Z,-2./3.))));
150  if(Phie<0.)Phie=0.;
151  //if(eps>E/(1+MASS_MUON*MASS_MUON/(2.*MASS_ELECTRON*E)))Phie=0.;
152  double sig = (16./3.)*ALPHA_ELECTRO_MAGNETIC*AVOGADRO*pow((MASS_ELECTRON/MASS_MUON*r0()),2.0)*Z*(Z*Phin+Phie)/(A);
153  double epsint = log((E-MASS_MUON)/EminBrems)-(E-MASS_MUON-EminBrems)/E+0.375*(pow(E-MASS_MUON,2.)-pow(EminBrems,2.0))/pow(E,2.0);
154  return epsint*sig;//"cross section" in m^2/g multiplied by density and inverted gives mean free path
155  }
156 
157 
158  /**
159  * Photo-nuclear cross section.
160  *
161  * \param E muon energy [GeV]
162  * \param eps shower energy [GeV]
163  * \return cross section [m^2/g]
164  */
165  virtual double SigmaGNrad(const double E, const double eps) const
166  {
167 
168  //minimum radiated energy is 0.2 GeV, not very critical formulae become invalid for very much lower
169  //result is given in m^2/g GeV
170  if (eps<0.2) return 0.;
171  if (eps>E-MASS_PROTON) return 0.;
172  double Aeff;
173  if (A==1)
174  {Aeff = 1.;}
175  else
176  {Aeff = (0.22*A + 0.78 * pow(A,0.89));}
177  double sigmaGammaPofeps = (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps))*pow(10,-34.);
178  double Psiofeps = ALPHA_ELECTRO_MAGNETIC/PI*Aeff*AVOGADRO/A*sigmaGammaPofeps/eps;
179  double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*MASS_PROTON)+eps/LAMBDA);
180  double epsoverE = eps/E;
181  double Numerator = E * E * (1 - epsoverE) / (MASS_MUON * MASS_MUON) * (1 + MASS_MUON * MASS_MUON * epsoverE * epsoverE / (LAMBDA * LAMBDA * (1 - epsoverE)));
182  double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 * MASS_MUON * MASS_MUON / (LAMBDA * LAMBDA));
183  double PhiofEofeps = epsoverE - 1 + Factor * log (Numerator / Denom);
184  //cout<<"PhiofEofeps "<<PhiofEofeps<<" Psiofeps "<<Psiofeps<<endl;
185  return Psiofeps*PhiofEofeps;
186  }
187 
188 
189  /**
190  * Photo-nuclear cross section.
191  *
192  * \param E muon energy [GeV]
193  * \return cross section [m^2/g]
194  */
195  virtual double TotalCrossSectionGNrad(const double E) const
196  {
197  double epsmin = 0.2;
198  double epsmax = E-MASS_PROTON/2;
199  double sum(0.);
200  double dle = log(epsmax/epsmin)/steps;
201  for(int i=0;i<steps+1;i++)
202  {
203  float factor = 1.0;
204  if(i==0 || i==steps)factor=0.5;
205  //cout<<"i"<<i<<endl;
206  double eps = epsmin*exp(i*dle);sum += factor*eps*SigmaGNrad( E, eps);
207  //cout<<"eps "<<eps<<" sum "<<sum<<endl;
208  }
209 
210  return sum*dle;
211  }
212 
213 
214  /**
215  * Bremsstrahlung shower energy.
216  *
217  * \param E muon energy [GeV]
218  * \return shower energy [GeV]
219  */
220  double EfromBrems(const double E) const
221  {
222  //double EminBrems(0.01);
223  //generate according to 1/k from minimum energy to E
224  double Er = 0.0;
225  for (int i = 1000; i != 0; --i) {
226  Er = EminBrems*exp(gRandom->Rndm()*log(E/EminBrems));
227  //check on the extra factor (1-v+3/4v^2)
228  if(gRandom->Rndm()<(1.-Er/E+0.75*pow(Er/E,2))) break;
229  }
230  return Er;
231  }
232 
233 
234  /**
235  * Get RMS of scattering angle for Bremsstrahlung.
236  *
237  * \param E muon energy [GeV]
238  * \param v energy loss fraction
239  * \return angle [rad]
240  */
241  double ThetaRMSfromBrems(const double E, const double v) const
242  {
243  using namespace std;
244 
245  const double precision = 1.0e-3;
246 
247  const double k1 = 0.092 * pow(E, -1.0/3.0);
248  const double k2 = 0.052 * pow(E, -1.0) * pow(Z, -1.0/4.0);
249  const double k3 = 0.220 * pow(E, -0.92);
250  const double k4 = 0.260 * pow(E, -0.91);
251 
252  double rms = 0.0;
253 
254  if (v <= 0.5) {
255 
256  rms = max(min(k1*sqrt(v), k2), k3*v);
257 
258  } else {
259 
260  const double n = 0.81 * sqrt(E) / (sqrt(E) + 1.8);
261 
262  double k5 = 0.0;
263 
264  for (double vmin = 0.5, vmax = 1.0; ; ) {
265 
266  const double v = 0.5 * (vmin + vmax);
267 
268  const double y = k4 * pow(v, 1.0 + n) * pow(1.0 - v, -n);
269 
270  if (abs(y - 0.2) <= precision) {
271 
272  k5 = y * pow(1.0 - v, 1.0/2.0);
273 
274  break;
275  }
276 
277  if (y < 0.2)
278  vmin = v;
279  else
280  vmax = v;
281  }
282 
283  rms = k4 * pow(v, 1.0 + n) * pow(1.0 - v, -n);
284 
285  if (rms >= 0.2) {
286  rms = k5 * pow(1.0 - v, -1.0/2.0);
287  }
288  }
289 
290  return rms;
291  }
292 
293 
294  /**
295  * Pair production shower energy.
296  *
297  * \param E muon energy [GeV]
298  * \return shower energy [GeV]
299  */
300  double EfromEErad(const double E) const
301  {
302  //generate according to 1/k from minimum energy to E
303 
304  const double eps =0.2;
305  const double IntGmax = IntegralofG(E,eps)*2.0;
306 
307  double Er = 0.0;
308  for (int i = 1000; i != 0; --i)
309  {
310  Er = EminEErad*exp(gRandom->Rndm()*log(E/EminEErad));
311  //check on the extra factor, (1-v) and IntofG
312  double factor = (1.-Er/E)*IntegralofG(E,Er)/IntGmax;
313  if(gRandom->Rndm()<factor) break;
314  }
315  return Er;
316  }
317 
318 
319  /**
320  * Get RMS of scattering angle for pair production.
321  *
322  * \param E muon energy [GeV]
323  * \param v energy loss fraction
324  * \return angle [rad]
325  */
326  double ThetaRMSfromEErad(const double E, const double v) const
327  {
328  using namespace std;
329 
330  const double a = 8.9e-4;
331  const double b = 1.5e-5;
332  const double c = 0.032;
333  const double d = 1.0;
334  const double e = 0.1;
335 
336  const double n = -1.0;
337 
338  const double u = v - 2.0*MASS_ELECTRON/E;
339 
340  if (u > 0.0)
341  return (2.3 + log(E)) * (1.0/E) * pow(1.0 - v, n) * (u*u) * (1.0/(v*v)) *
342  min(a * pow(v, 1.0/4.0) * (1.0 + b*E) + c*v/(v+d), e);
343  else
344  return 0.0;
345  }
346 
347 
348  /**
349  * Photo-nuclear shower energy.
350  *
351  * \param E muon energy [GeV]
352  * \return shower energy [GeV]
353  */
354  double EfromGNrad(const double E) const
355  {
356  //generate according to 1/k from minimum energy to E
357 
358  double cmax = sigmaGammaPparam(EminGNrad);
359  if (cmax < sigmaGammaPparam(E))
360  cmax=sigmaGammaPparam(E);
361 
362  double Pmax = PhiofEofepsparam(E,EminGNrad);
363 
364  double Er = 0.0;
365  for (int i = 1000; i != 0; --i) {
366  Er = EminGNrad*exp(gRandom->Rndm()*log(E/EminGNrad));
367  const double factor = PhiofEofepsparam(E,Er)*sigmaGammaPparam(Er)/(cmax*Pmax);
368  if (gRandom->Rndm() < factor) return Er;
369  }
370 
371  return Er;
372  }
373 
374 
375  /**
376  * Get RMS of scattering angle for photo-nuclear shower.
377  *
378  * \param E muon energy [GeV]
379  * \param v energy loss fraction
380  * \return angle [rad]
381  */
382  double ThetaRMSfromGNrad(const double E, const double v) const
383  {
384  return 0.0;
385  }
386 
387 
388  /**
389  * Ionization a parameter.
390  *
391  * \param E muon energy [GeV]
392  * \return ionization coefficient [GeV*m^2/g]
393  */
394  virtual double CalculateACoeff(double E) const
395  {
396  const double E2 = E*E;
397  const double beta = sqrt(E2 - MASS_MUON*MASS_MUON) / E;
398  const double beta2 = beta*beta;
399  const double gamma = E/MASS_MUON;
400  const double gamma2 = gamma*gamma;
401 
402  const double p2 = E2 - MASS_MUON*MASS_MUON;
403  const double EMaxT = 2.*MASS_ELECTRON*p2 / (MASS_ELECTRON*MASS_ELECTRON + MASS_MUON*MASS_MUON + 2.*MASS_ELECTRON*E);
404  const double EMaxT2 = EMaxT*EMaxT;
405  const JSter& coeff = getSterCoefficient(Z);
406  const double I2 = coeff.I*coeff.I; // in GeV^2
407  const double X = log10(beta*gamma);
408 
409  double delta = 0.0;
410 
411  if (coeff.X0 < X && X < coeff.X1) {
412  delta = 4.6052*X + coeff.a*pow(coeff.X1-X,coeff.m) + coeff.C;
413  }
414 
415  if (X > coeff.X1) {
416  delta = 4.6052*X + coeff.C;
417  }
418 
419  double acoeff = (2*PI*AVOGADRO*ALPHA_ELECTRO_MAGNETIC*ALPHA_ELECTRO_MAGNETIC*le()*le())*Z/A*(MASS_ELECTRON/beta2)*(log(2.*MASS_ELECTRON*beta2*gamma2*EMaxT/I2)-2.*beta2+0.25*(EMaxT2/E2)-delta);
420 
421  return acoeff;
422  }
423 
424  protected:
425  double GofZEvrho(const double E,
426  const double v,
427  const double r) const
428  {
429  const double ksi = MASS_MUON*MASS_MUON*v*v*(1-r*r)/(4*MASS_ELECTRON*MASS_ELECTRON*(1-v));//
430  const double b = v*v/(2*(1-v));//
431  const double Be = ((2+r*r)*(1+b)+ksi*(3+r*r))*log(1+1/ksi)+(1-r*r-b)/(1+ksi)-(3+r*r);
432  const double Bm = ((1+r*r)*(1+3*b/2)-(1+2*b)*(1-r*r)/ksi)*log(1+ksi)+ksi*(1-r*r-b)/(1+ksi)+(1+2*b)*(1-r*r);
433  const double Ye = (5-r*r+4*b*(1+r*r))/(2*(1+3*b)*log(3+1/ksi)-r*r-2*b*(2-r*r));
434  const double Ym = (4+r*r+3*b*(1+r*r))/((1+r*r)*(1.5+2*b)*log(3+ksi)+1-1.5*r*r);
435  const double Le = log((Astar()*pow(Z,-1./3.)*sqrt((1+ksi)*(1+Ye)))/
436  (1.+(2.*MASS_ELECTRON*sqrt(exp(1.))*Astar()*pow(Z,-1./3.)*(1+ksi)*(1+Ye))/(E*v*(1-r*r))));
437  const double Lm = log(((MASS_MUON/MASS_ELECTRON)*Astar()*pow(Z,-1./3.)*sqrt((1.+1./ksi)*(1.+Ym)))/
438  (1.+(2.*MASS_ELECTRON*sqrt(exp(1.))*Astar()*pow(Z,-1./3.)*(1+ksi)*(1+Ym))/(E*v*(1-r*r))));
439  double Phie = Be*Le; if(Phie<0.)Phie=0.;
440  double Phim = Bm*Lm; if(Phim<0.)Phim=0.;
441  return Phie+(MASS_ELECTRON*MASS_ELECTRON/(MASS_MUON*MASS_MUON))*Phim;
442  }
443 
444  virtual double IntegralofG(const double E,
445  const double eps) const
446  {
447  const double EP = E-eps;
448  const double v = eps/E;
449  const double tmin = log((4*MASS_ELECTRON/eps+12*pow(MASS_MUON,2)/(E*EP)*(1-4*MASS_ELECTRON/eps))
450  /(1+(1-6*pow(MASS_MUON,2)/(E*EP))*sqrt(1-4*MASS_ELECTRON/eps)));
451 
452  if (tmin < 0.0) {
453  const double dt = -tmin/steps;
454  double sum(0.);
455  for (int i = 0;i<steps+1;i++)
456  {
457  double fac = 1.0;if(i==0 || i==steps)fac=0.5;
458  double t = tmin+i*dt;
459  double r = 1.-exp(t);
460  sum+=fac*GofZEvrho(E,v,r)*exp(t);
461  }
462  return sum*dt;
463  } else
464  return 0.0;
465  }
466 
467  static double sigmaGammaPparam(const double eps)
468  {
469  return (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps));
470  }
471 
472  static double PhiofEofepsparam(const double E,const double eps)
473  {
474  const double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*MASS_PROTON)+eps/LAMBDA);
475  const double epsoverE = eps/E;
476  const double Numerator = E * E * (1 - epsoverE) / (MASS_MUON * MASS_MUON) * (1 + MASS_MUON * MASS_MUON * epsoverE * epsoverE /
477  (LAMBDA * LAMBDA * (1 - epsoverE)));
478  const double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 * MASS_MUON * MASS_MUON / (LAMBDA * LAMBDA));
479  return (epsoverE - 1 + Factor * log (Numerator / Denom));
480  }
481 
482 
483  static double le () { return 3.8616E-13;}
484  static double r0 () { return 2.817940e-15; }
485  static double Astar() { return 183.0; }
486  static double B () { return 183.0; }
487  static double BP () { return 1429.0; }
488 
489  const double Z;
490  const double A;
491  const double Dn;
492  const double DnP;
493  const int steps;
494  const double EminBrems;
495  const double EminEErad;
496  const double EminGNrad;
497  };
498 
499 
500  /**
501  * Auxiliary data structure for handling member methods of class JRadiation.
502  */
504  double (JRadiation::*sigma)(const double) const; //!< total cross section method
505  double (JRadiation::*eloss)(const double) const; //!< energy loss method
506  double (JRadiation::*theta)(const double, const double) const; //!< scattering angle method
507  };
508 
509 
513 }
514 
515 #endif
516 
virtual double CalculateACoeff(double E) const
Ionization a parameter.
Definition: JRadiation.hh:394
static double r0()
Definition: JRadiation.hh:484
double I
Ionization potentian [GeV].
Definition: JIonization.hh:22
static const JRadiationSource_t EErad_t
Definition: JRadiation.hh:510
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
static double le()
Definition: JRadiation.hh:483
Struct for the Sternheimer coefficients.
Definition: JIonization.hh:21
double a
Correction density parameter.
Definition: JIonization.hh:25
static double B()
Definition: JRadiation.hh:486
double m
Correction density parameter.
Definition: JIonization.hh:26
double EfromBrems(const double E) const
Bremsstrahlung shower energy.
Definition: JRadiation.hh:220
const double EminEErad
Definition: JRadiation.hh:495
static const double MASS_MUON
muon mass [GeV]
const double DnP
Definition: JRadiation.hh:492
static const double AVOGADRO
Avogadro&#39;s number [gr^-1].
double GofZEvrho(const double E, const double v, const double r) const
Definition: JRadiation.hh:425
data_type r[M+1]
Definition: JPolint.hh:779
double ThetaRMSfromGNrad(const double E, const double v) const
Get RMS of scattering angle for photo-nuclear shower.
Definition: JRadiation.hh:382
double TotalCrossSectionBrems(const double E) const
Bremsstrahlung cross section.
Definition: JRadiation.hh:142
const double sigma[]
Definition: JQuadrature.cc:74
double ThetaRMSfromBrems(const double E, const double v) const
Get RMS of scattering angle for Bremsstrahlung.
Definition: JRadiation.hh:241
const int n
Definition: JPolint.hh:697
Compiler version dependent expressions, macros, etc.
Auxiliary class for the calculation of the muon radiative cross sections.
Definition: JRadiation.hh:34
Auxiliary data structure to convert (lambda) function to printable object.
Definition: JManip.hh:724
double SigmaEErad(const double E, const double eps) const
Pair production cross section.
Definition: JRadiation.hh:78
static double sigmaGammaPparam(const double eps)
Definition: JRadiation.hh:467
static double Astar()
Definition: JRadiation.hh:485
set_variable E_E log10(E_{fit}/E_{#mu})"
then JCalibrateToT a
Definition: JTuneHV.sh:116
JRadiation(const double z, const double a, const int integrsteps, const double eminBrems, const double eminEErad, const double eminGNrad)
Constructor.
Definition: JRadiation.hh:54
double ThetaRMSfromEErad(const double E, const double v) const
Get RMS of scattering angle for pair production.
Definition: JRadiation.hh:326
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:97
Physics constants.
static const double PI
Mathematical constants.
virtual double SigmaGNrad(const double E, const double eps) const
Photo-nuclear cross section.
Definition: JRadiation.hh:165
const double EminGNrad
Definition: JRadiation.hh:496
static const double MASS_ELECTRON
electron mass [GeV]
static const JRadiationSource_t Brems_t
Definition: JRadiation.hh:511
double EfromGNrad(const double E) const
Photo-nuclear shower energy.
Definition: JRadiation.hh:354
const double EminBrems
Definition: JRadiation.hh:494
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
p2
Definition: module-Z:fit.sh:74
double X0
Correction density parameter.
Definition: JIonization.hh:23
then set_variable DIR else fatal Wrong number of arguments fi for INPUT_FILE in ls rt $DIR stage * log
static double BP()
Definition: JRadiation.hh:487
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
Definition: JRadiation.hh:114
static const double MASS_PROTON
proton mass [GeV]
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
virtual ~JRadiation()
Virtual desctructor.
Definition: JRadiation.hh:40
no fit printf nominal n $STRING awk v X
static double PhiofEofepsparam(const double E, const double eps)
Definition: JRadiation.hh:472
virtual double IntegralofG(const double E, const double eps) const
Definition: JRadiation.hh:444
double EfromEErad(const double E) const
Pair production shower energy.
Definition: JRadiation.hh:300
data_type v[N+1][M+1]
Definition: JPolint.hh:777
double u[N+1]
Definition: JPolint.hh:776
Auxiliary data structure for handling member methods of class JRadiation.
Definition: JRadiation.hh:503
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
Definition: JRadiation.hh:195
static const JRadiationSource_t GNrad_t
Definition: JRadiation.hh:512
double C
Correction density parameter.
Definition: JIonization.hh:27
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"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double X1
Correction density parameter.
Definition: JIonization.hh:24
static JSterCoefficient getSterCoefficient
Function object for Ster coefficients.
Definition: JIonization.hh:80