Fast implementation of class JRadiation.
More...
#include <JRadiationSource.hh>
|
virtual double | IntegralofG (const double E, const double eps) const |
|
double | GofZEvrho (const double E, const double v, const double r) const |
|
Fast implementation of class JRadiation.
In this, the methods
JRadiation::TotalCrossSectionEErad(...), JRadiation::TotalCrossSectionGNrad(...) and JRadiation::IntegralofG(...)
are replaced by lookup tables.
Definition at line 35 of file JRadiationSource.hh.
JPHYSICS::JRadiationFunction::JRadiationFunction |
( |
const JRadiation & |
radiation, |
|
|
const unsigned int |
number_of_bins, |
|
|
const double |
Emin, |
|
|
const double |
Emax |
|
) |
| |
|
inlineexplicit |
Constructor.
- Parameters
-
radiation | JRadiation object |
number_of_bins | number of bins |
Emin | minimal muon energy [GeV] |
Emax | maximal muon energy [GeV] |
Acoeff
Definition at line 52 of file JRadiationSource.hh.
58 using namespace JTOOLS;
60 const double xmin = log(Emin);
61 const double xmax = log(Emax);
68 const double x = i->getX();
69 const double E =
exp(x);
72 const double ymax = 0.0;
76 i->getY().configure(
make_grid(number_of_bins, ymin, ymax));
80 const double y =
j->getX();
81 const double eps =
exp(y) *
E;
97 const double E =
exp(i->getX());
110 const double E =
exp(i->getX());
123 const double E =
exp(i->getX());
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
JRadiation(const double z, const double a, const int integrsteps, const double eminBrems, const double eminEErad, const double eminGNrad)
Constructor.
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
virtual double CalculateACoeff(double Energy) const
Ionization a parameter.
virtual double IntegralofG(const double E, const double eps) const
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
then usage $script[input file[working directory[option]]] nWhere option can be E
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 140 of file JRadiationSource.hh.
142 const double x = log(
E);
144 if (x >=
sigmaEE. begin()->getX() &&
145 x <=
sigmaEE.rbegin()->getX()) {
150 catch(std::exception& error) {
151 std::cerr <<
"JRadiation::TotalCrossSectionEErad() " <<
E <<
' ' << error.what() << std::endl;
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
then usage $script[input file[working directory[option]]] nWhere option can be E
virtual double JPHYSICS::JRadiationFunction::CalculateACoeff |
( |
const double |
E | ) |
const |
|
inlineoverridevirtual |
A Coefficient.
- Parameters
-
- Returns
- Ionization A parameter [GeV/m]
Reimplemented from JPHYSICS::JRadiation.
Definition at line 163 of file JRadiationSource.hh.
165 const double x = log(
E);
167 if (x >=
Acoeff. begin()->getX() &&
168 x <=
Acoeff.rbegin()->getX()) {
173 catch(std::exception& error) {
174 std::cerr <<
"JRadiation::ACoeff() " <<
E <<
' ' << error.what() << std::endl;
virtual double CalculateACoeff(double Energy) const
Ionization a parameter.
then usage $script[input file[working directory[option]]] nWhere option can be E
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 187 of file JRadiationSource.hh.
189 const double x = log(
E);
191 if (x >=
sigmaGN. begin()->getX() &&
192 x <=
sigmaGN.rbegin()->getX()) {
197 catch(std::exception& error) {
198 std::cerr <<
"JRadiation::TotalCrossSectionGNrad() " <<
E <<
' ' << error.what() << std::endl;
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
then usage $script[input file[working directory[option]]] nWhere option can be E
virtual double JPHYSICS::JRadiationFunction::IntegralofG |
( |
const double |
E, |
|
|
const double |
eps |
|
) |
| const |
|
inlineprotectedvirtual |
Reimplemented from JPHYSICS::JRadiation.
Definition at line 206 of file JRadiationSource.hh.
211 const double x = log(
E);
212 const double y = log(eps/
E);
217 catch(std::exception& error) {
218 std::cerr <<
"JRadiation::IntegralofG() " <<
E <<
' ' << eps <<
' ' << error.what() << std::endl;
virtual double IntegralofG(const double E, const double eps) const
then usage $script[input file[working directory[option]]] nWhere option can be E
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 77 of file JRadiation.hh.
83 if(eps>
E-0.75*
exp(1.0)*
pow(
Z,1./3.))
return 0.;
static const double MASS_MUON
muon mass [GeV]
static const double AVOGADRO
Avogadro's number [gr^-1].
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
T pow(const T &x, const double y)
Power .
static const double MASS_ELECTRON
electron mass [GeV]
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
virtual double IntegralofG(const double E, const double eps) const
then usage $script[input file[working directory[option]]] nWhere option can be E
double JPHYSICS::JRadiation::TotalCrossSectionBrems |
( |
const double |
E | ) |
const |
|
inlineinherited |
Bremsstrahlung cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Definition at line 141 of file JRadiation.hh.
static const double MASS_MUON
muon mass [GeV]
static const double AVOGADRO
Avogadro's number [gr^-1].
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
T pow(const T &x, const double y)
Power .
static const double MASS_ELECTRON
electron mass [GeV]
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
then usage $script[input file[working directory[option]]] nWhere option can be E
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 164 of file JRadiation.hh.
169 if (eps<0.2)
return 0.;
175 {Aeff = (0.22*
A + 0.78 *
pow(
A,0.89));}
176 double sigmaGammaPofeps = (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps))*
pow(10,-34.);
179 double epsoverE = eps/
E;
182 double PhiofEofeps = epsoverE - 1 + Factor * log (Numerator / Denom);
184 return Psiofeps*PhiofEofeps;
static const double MASS_MUON
muon mass [GeV]
static const double AVOGADRO
Avogadro's number [gr^-1].
Auxiliary data structure to convert (lambda) function to printable object.
T pow(const T &x, const double y)
Power .
static const double PI
Mathematical constants.
static const double MASS_PROTON
proton mass [GeV]
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
then usage $script[input file[working directory[option]]] nWhere option can be E
double JPHYSICS::JRadiation::EfromBrems |
( |
const double |
E | ) |
const |
|
inlineinherited |
Bremsstrahlung shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 219 of file JRadiation.hh.
224 for (
int i = 1000; i != 0; --i) {
227 if(gRandom->Rndm()<(1.-Er/
E+0.75*
pow(Er/
E,2)))
break;
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
T pow(const T &x, const double y)
Power .
then usage $script[input file[working directory[option]]] nWhere option can be E
double JPHYSICS::JRadiation::EfromEErad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Pair production shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 239 of file JRadiation.hh.
243 const double eps =0.2;
247 for (
int i = 1000; i != 0; --i)
252 if(gRandom->Rndm()<factor)
break;
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
virtual double IntegralofG(const double E, const double eps) const
then usage $script[input file[working directory[option]]] nWhere option can be E
double JPHYSICS::JRadiation::EfromGNrad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Photo-nuclear shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 263 of file JRadiation.hh.
274 for (
int i = 1000; i != 0; --i) {
277 if (gRandom->Rndm() < factor)
return Er;
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
static double sigmaGammaPparam(const double eps)
static double PhiofEofepsparam(const double E, const double eps)
then usage $script[input file[working directory[option]]] nWhere option can be E
double JPHYSICS::JRadiation::GofZEvrho |
( |
const double |
E, |
|
|
const double |
v, |
|
|
const double |
r |
|
) |
| const |
|
inlineprotectedinherited |
Definition at line 320 of file JRadiation.hh.
325 const double b =
v*
v/(2*(1-
v));
326 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);
327 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);
328 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));
329 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);
330 const double Le = log((
Astar()*
pow(
Z,-1./3.)*sqrt((1+ksi)*(1+Ye)))/
334 double Phie = Be*Le;
if(Phie<0.)Phie=0.;
335 double Phim = Bm*Lm;
if(Phim<0.)Phim=0.;
static const double MASS_MUON
muon mass [GeV]
then set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))*exp(-0.5 *(y-[1])*(y-[1])/([2]*[2]))" JF2 -o $WORKDIR/f2.root -F "$FORMULA" -@ "p0
T pow(const T &x, const double y)
Power .
static const double MASS_ELECTRON
electron mass [GeV]
then usage $script[input file[working directory[option]]] nWhere option can be E
static double JPHYSICS::JRadiation::sigmaGammaPparam |
( |
const double |
eps | ) |
|
|
inlinestaticprotectedinherited |
Definition at line 362 of file JRadiation.hh.
364 return (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps));
static double JPHYSICS::JRadiation::PhiofEofepsparam |
( |
const double |
E, |
|
|
const double |
eps |
|
) |
| |
|
inlinestaticprotectedinherited |
Definition at line 367 of file JRadiation.hh.
370 const double epsoverE = eps/
E;
374 return (epsoverE - 1 + Factor * log (Numerator / Denom));
static const double MASS_MUON
muon mass [GeV]
Auxiliary data structure to convert (lambda) function to printable object.
static const double MASS_PROTON
proton mass [GeV]
then usage $script[input file[working directory[option]]] nWhere option can be E
static double JPHYSICS::JRadiation::le |
( |
| ) |
|
|
inlinestaticprotectedinherited |
static double JPHYSICS::JRadiation::r0 |
( |
| ) |
|
|
inlinestaticprotectedinherited |
static double JPHYSICS::JRadiation::Astar |
( |
| ) |
|
|
inlinestaticprotectedinherited |
static double JPHYSICS::JRadiation::B |
( |
| ) |
|
|
inlinestaticprotectedinherited |
static double JPHYSICS::JRadiation::BP |
( |
| ) |
|
|
inlinestaticprotectedinherited |
const double JPHYSICS::JRadiation::Z |
|
protectedinherited |
const double JPHYSICS::JRadiation::A |
|
protectedinherited |
const double JPHYSICS::JRadiation::Dn |
|
protectedinherited |
const double JPHYSICS::JRadiation::DnP |
|
protectedinherited |
const int JPHYSICS::JRadiation::steps |
|
protectedinherited |
const double JPHYSICS::JRadiation::EminBrems |
|
protectedinherited |
const double JPHYSICS::JRadiation::EminEErad |
|
protectedinherited |
const double JPHYSICS::JRadiation::EminGNrad |
|
protectedinherited |
The documentation for this class was generated from the following file: