Fast implementation of class JRadiation.
More...
#include <JRadiationFunction.hh>
|
virtual double | IntegralofG (const double E, const double eps) const override |
|
double | GofZEvrho (const double E, const double v, const double r) const |
|
Fast implementation of class JRadiation.
In this, the methods
are reimplemented using lookup tables.
Definition at line 32 of file JRadiationFunction.hh.
◆ JFunction1D_t
◆ JFunction2D_t
◆ JRadiationFunction()
JPHYSICS::JRadiationFunction::JRadiationFunction |
( |
const JRadiation & |
radiation, |
|
|
const unsigned int |
number_of_bins, |
|
|
const double |
Emin, |
|
|
const double |
Emax |
|
) |
| |
|
inline |
Constructor.
- Parameters
-
radiation | JRadiation object |
number_of_bins | number of bins |
Emin | minimal muon energy [GeV] |
Emax | maximal muon energy [GeV] |
Definition at line 48 of file JRadiationFunction.hh.
56 const double xmin = log(Emin);
57 const double xmax = log(Emax);
64 const double x = i->getX();
65 const double E = exp(
x);
68 const double ymax = 0.0;
72 i->getY().configure(
make_grid(number_of_bins, ymin, ymax));
76 const double y =
j->getX();
77 const double eps = exp(
y) * E;
93 const double E = exp(i->getX());
106 const double E = exp(i->getX());
119 const double E = exp(i->getX());
virtual double IntegralofG(const double E, const double eps) const
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
virtual double CalculateACoeff(double E) const
Ionization a parameter.
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
JRadiation(const double z, const double a, const int integrsteps, const double eminBrems, const double eminEErad, const double eminGNrad)
Constructor.
◆ TotalCrossSectionEErad()
virtual double JPHYSICS::JRadiationFunction::TotalCrossSectionEErad |
( |
const double |
E | ) |
const |
|
inlineoverridevirtual |
Pair production cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Reimplemented from JPHYSICS::JRadiation.
Definition at line 135 of file JRadiationFunction.hh.
137 const double x = log(E);
139 if (
x >=
sigmaEE. begin()->getX() &&
145 catch(std::exception& error) {}
◆ TotalCrossSectionGNrad()
virtual double JPHYSICS::JRadiationFunction::TotalCrossSectionGNrad |
( |
const double |
E | ) |
const |
|
inlineoverridevirtual |
Photo-nuclear cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Reimplemented from JPHYSICS::JRadiation.
Definition at line 158 of file JRadiationFunction.hh.
160 const double x = log(E);
162 if (
x >=
sigmaGN. begin()->getX() &&
168 catch(std::exception& error) {}
◆ CalculateACoeff()
virtual double JPHYSICS::JRadiationFunction::CalculateACoeff |
( |
const double |
E | ) |
const |
|
inlineoverridevirtual |
Ionization a parameter.
- Parameters
-
- Returns
- ionization coefficient [GeV*m^2/g]
Reimplemented from JPHYSICS::JRadiation.
Definition at line 181 of file JRadiationFunction.hh.
183 const double x = log(E);
185 if (
x >=
Acoeff. begin()->getX() &&
186 x <=
Acoeff.rbegin()->getX()) {
191 catch(std::exception& error) {}
◆ IntegralofG()
virtual double JPHYSICS::JRadiationFunction::IntegralofG |
( |
const double |
E, |
|
|
const double |
eps |
|
) |
| const |
|
inlineoverrideprotectedvirtual |
◆ SigmaEErad()
double JPHYSICS::JRadiation::SigmaEErad |
( |
const double |
E, |
|
|
const double |
eps |
|
) |
| const |
|
inlineinherited |
Pair production cross section.
- Parameters
-
E | muon energy [GeV] |
eps | shower energy [GeV] |
- Returns
- cross section [m^2/g]
Definition at line 80 of file JRadiation.hh.
86 if(eps>E-0.75*exp(1.0)*
pow(
Z,1./3.))
return 0.;
T pow(const T &x, const double y)
Power .
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
static const double MASS_MUON
muon mass [GeV]
static const double MASS_ELECTRON
electron mass [GeV]
static const double AVOGADRO
Avogadro's number.
◆ TotalCrossSectionBrems()
double JPHYSICS::JRadiation::TotalCrossSectionBrems |
( |
const double |
E | ) |
const |
|
inlineinherited |
Bremsstrahlung cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Definition at line 144 of file JRadiation.hh.
◆ SigmaGNrad()
virtual double JPHYSICS::JRadiation::SigmaGNrad |
( |
const double |
E, |
|
|
const double |
eps |
|
) |
| const |
|
inlinevirtualinherited |
Photo-nuclear cross section.
- Parameters
-
E | muon energy [GeV] |
eps | shower energy [GeV] |
- Returns
- cross section [m^2/g]
Definition at line 167 of file JRadiation.hh.
172 if (eps<0.2)
return 0.;
178 {Aeff = (0.22*
A + 0.78 *
pow(
A,0.89));}
179 double sigmaGammaPofeps = (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps))*
pow(10,-34.);
182 double epsoverE = eps/E;
185 double PhiofEofeps = epsoverE - 1 + Factor * log (Numerator / Denom);
187 return Psiofeps*PhiofEofeps;
static const double PI
Mathematical constants.
static const double MASS_PROTON
proton mass [GeV]
Auxiliary data structure to convert (lambda) function to printable object.
◆ EfromBrems()
double JPHYSICS::JRadiation::EfromBrems |
( |
const double |
E | ) |
const |
|
inlineinherited |
Bremsstrahlung shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 222 of file JRadiation.hh.
227 for (
int i = 1000; i != 0; --i) {
230 if(gRandom->Rndm()<(1.-Er/E+0.75*
pow(Er/E,2)))
break;
◆ ThetaRMSfromBrems()
double JPHYSICS::JRadiation::ThetaRMSfromBrems |
( |
const double |
E, |
|
|
const double |
v |
|
) |
| const |
|
inlineinherited |
Get RMS of scattering angle for Bremsstrahlung.
- Parameters
-
E | muon energy [GeV] |
v | energy loss fraction |
- Returns
- angle [rad]
Definition at line 243 of file JRadiation.hh.
247 const double precision = 1.0e-3;
249 const double k1 = 0.092 *
pow(E, -1.0/3.0);
250 const double k2 = 0.052 *
pow(E, -1.0) *
pow(
Z, -1.0/4.0);
251 const double k3 = 0.220 *
pow(E, -0.92);
252 const double k4 = 0.260 *
pow(E, -0.91);
258 rms = max(min(k1*sqrt(
v), k2), k3*
v);
262 const double n = 0.81 * sqrt(E) / (sqrt(E) + 1.8);
266 for (
double vmin = 0.5, vmax = 1.0; ; ) {
268 const double v = 0.5 * (vmin + vmax);
270 const double y = k4 *
pow(
v, 1.0 +
n) *
pow(1.0 -
v, -
n);
272 if (abs(
y - 0.2) <= precision) {
274 k5 =
y *
pow(1.0 -
v, 1.0/2.0);
285 rms = k4 *
pow(
v, 1.0 +
n) *
pow(1.0 -
v, -
n);
288 rms = k5 *
pow(1.0 -
v, -1.0/2.0);
◆ EfromEErad()
double JPHYSICS::JRadiation::EfromEErad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Pair production shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 302 of file JRadiation.hh.
306 const double eps =0.2;
310 for (
int i = 1000; i != 0; --i)
314 double factor = (1.-Er/E)*
IntegralofG(E,Er)/IntGmax;
315 if(gRandom->Rndm()<factor)
break;
◆ ThetaRMSfromEErad()
double JPHYSICS::JRadiation::ThetaRMSfromEErad |
( |
const double |
E, |
|
|
const double |
v |
|
) |
| const |
|
inlineinherited |
Get RMS of scattering angle for pair production.
- Parameters
-
E | muon energy [GeV] |
v | energy loss fraction |
- Returns
- angle [rad]
Definition at line 328 of file JRadiation.hh.
332 const double a = 8.9e-4;
333 const double b = 1.5e-5;
334 const double c = 0.032;
335 const double d = 1.0;
336 const double e = 0.1;
338 const double n = -1.0;
343 return (2.3 + log(E)) * (1.0/E) *
pow(1.0 -
v,
n) * (
u*
u) * (1.0/(
v*
v)) *
344 min(
a *
pow(
v, 1.0/4.0) * (1.0 + b*E) + c*
v/(
v+d), e);
◆ EfromGNrad()
double JPHYSICS::JRadiation::EfromGNrad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Photo-nuclear shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 356 of file JRadiation.hh.
367 for (
int i = 1000; i != 0; --i) {
370 if (gRandom->Rndm() < factor)
return Er;
static double sigmaGammaPparam(const double eps)
static double PhiofEofepsparam(const double E, const double eps)
◆ ThetaRMSfromGNrad()
double JPHYSICS::JRadiation::ThetaRMSfromGNrad |
( |
const double |
E, |
|
|
const double |
v |
|
) |
| const |
|
inlineinherited |
Get RMS of scattering angle for photo-nuclear shower.
- Parameters
-
E | muon energy [GeV] |
v | energy loss fraction |
- Returns
- angle [rad]
Definition at line 384 of file JRadiation.hh.
◆ GofZEvrho()
double JPHYSICS::JRadiation::GofZEvrho |
( |
const double |
E, |
|
|
const double |
v, |
|
|
const double |
r |
|
) |
| const |
|
inlineprotectedinherited |
Definition at line 427 of file JRadiation.hh.
432 const double b =
v*
v/(2*(1-
v));
433 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);
434 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);
435 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));
436 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);
437 const double Le = log((
Astar()*
pow(
Z,-1./3.)*sqrt((1+ksi)*(1+Ye)))/
441 double Phie = Be*Le;
if(Phie<0.)Phie=0.;
442 double Phim = Bm*Lm;
if(Phim<0.)Phim=0.;
◆ sigmaGammaPparam()
static double JPHYSICS::JRadiation::sigmaGammaPparam |
( |
const double |
eps | ) |
|
|
inlinestaticprotectedinherited |
Definition at line 469 of file JRadiation.hh.
471 return (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps));
◆ PhiofEofepsparam()
static double JPHYSICS::JRadiation::PhiofEofepsparam |
( |
const double |
E, |
|
|
const double |
eps |
|
) |
| |
|
inlinestaticprotectedinherited |
Definition at line 474 of file JRadiation.hh.
477 const double epsoverE = eps/E;
481 return (epsoverE - 1 + Factor * log (Numerator / Denom));
◆ le()
static double JPHYSICS::JRadiation::le |
( |
| ) |
|
|
inlinestaticprotectedinherited |
◆ r0()
static double JPHYSICS::JRadiation::r0 |
( |
| ) |
|
|
inlinestaticprotectedinherited |
◆ Astar()
static double JPHYSICS::JRadiation::Astar |
( |
| ) |
|
|
inlinestaticprotectedinherited |
◆ B()
static double JPHYSICS::JRadiation::B |
( |
| ) |
|
|
inlinestaticprotectedinherited |
◆ BP()
static double JPHYSICS::JRadiation::BP |
( |
| ) |
|
|
inlinestaticprotectedinherited |
◆ sigmaEE
◆ sigmaGN
◆ Acoeff
◆ integral
const double JPHYSICS::JRadiation::Z |
|
protectedinherited |
const double JPHYSICS::JRadiation::A |
|
protectedinherited |
◆ Dn
const double JPHYSICS::JRadiation::Dn |
|
protectedinherited |
◆ DnP
const double JPHYSICS::JRadiation::DnP |
|
protectedinherited |
◆ steps
const int JPHYSICS::JRadiation::steps |
|
protectedinherited |
◆ EminBrems
const double JPHYSICS::JRadiation::EminBrems |
|
protectedinherited |
◆ EminEErad
const double JPHYSICS::JRadiation::EminEErad |
|
protectedinherited |
◆ EminGNrad
const double JPHYSICS::JRadiation::EminGNrad |
|
protectedinherited |
The documentation for this class was generated from the following file: