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 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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
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.
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.
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.
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.
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
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 78 of file JRadiation.hh.
84 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 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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
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
double JPHYSICS::JRadiation::TotalCrossSectionBrems |
( |
const double |
E | ) |
const |
|
inlineinherited |
Bremsstrahlung cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Definition at line 142 of file JRadiation.hh.
static const double MASS_MUON
muon mass [GeV]
static const double AVOGADRO
Avogadro's number [gr^-1].
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
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 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 165 of file JRadiation.hh.
170 if (eps<0.2)
return 0.;
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.);
180 double epsoverE = eps/
E;
183 double PhiofEofeps = epsoverE - 1 + Factor * log (Numerator / Denom);
185 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.
double JPHYSICS::JRadiation::EfromBrems |
( |
const double |
E | ) |
const |
|
inlineinherited |
Bremsstrahlung shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 220 of file JRadiation.hh.
225 for (
int i = 1000; i != 0; --i) {
228 if(gRandom->Rndm()<(1.-Er/
E+0.75*
pow(Er/
E,2)))
break;
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
T pow(const T &x, const double y)
Power .
double JPHYSICS::JRadiation::getThetaRMSfromBrems |
( |
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 241 of file JRadiation.hh.
245 const double precision = 1.0e-3;
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);
256 rms = max(min(k1*sqrt(
v), k2), k3*
v);
260 const double n = 0.81 * sqrt(
E) / (sqrt(
E) + 1.8);
264 for (
double vmin = 0.5, vmax = 1.0; ; ) {
266 const double v = 0.5 * (vmin + vmax);
268 const double y = k4 *
pow(v, 1.0 + n) *
pow(1.0 - v, -n);
270 if (abs(y - 0.2) <= precision) {
272 k5 = y *
pow(1.0 - v, 1.0/2.0);
283 rms = k4 *
pow(v, 1.0 + n) *
pow(1.0 - v, -n);
286 rms = k5 *
pow(1.0 - v, -1.0/2.0);
T pow(const T &x, const double y)
Power .
double JPHYSICS::JRadiation::EfromEErad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Pair production shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 300 of file JRadiation.hh.
304 const double eps =0.2;
308 for (
int i = 1000; i != 0; --i)
313 if(gRandom->Rndm()<factor)
break;
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
virtual double IntegralofG(const double E, const double eps) const
double JPHYSICS::JRadiation::getThetaRMSfromEErad |
( |
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 326 of file JRadiation.hh.
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;
336 const double n = -1.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);
T pow(const T &x, const double y)
Power .
static const double MASS_ELECTRON
electron mass [GeV]
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
$WORKDIR ev_configure_domsimulator txt echo process $DOM_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DOM_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
double JPHYSICS::JRadiation::EfromGNrad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Photo-nuclear shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 354 of file JRadiation.hh.
365 for (
int i = 1000; i != 0; --i) {
368 if (gRandom->Rndm() < factor)
return Er;
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
static double sigmaGammaPparam(const double eps)
static double PhiofEofepsparam(const double E, const double eps)
double JPHYSICS::JRadiation::getThetaRMSfromGNrad |
( |
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 382 of file JRadiation.hh.
double JPHYSICS::JRadiation::GofZEvrho |
( |
const double |
E, |
|
|
const double |
v, |
|
|
const double |
r |
|
) |
| const |
|
inlineprotectedinherited |
Definition at line 425 of file JRadiation.hh.
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)))/
439 double Phie = Be*Le;
if(Phie<0.)Phie=0.;
440 double Phim = Bm*Lm;
if(Phim<0.)Phim=0.;
static const double MASS_MUON
muon mass [GeV]
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
T pow(const T &x, const double y)
Power .
static const double MASS_ELECTRON
electron mass [GeV]
static double JPHYSICS::JRadiation::sigmaGammaPparam |
( |
const double |
eps | ) |
|
|
inlinestaticprotectedinherited |
Definition at line 467 of file JRadiation.hh.
469 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 472 of file JRadiation.hh.
475 const double epsoverE = eps/
E;
479 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]
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: