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] |
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());
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 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 |
|
inlinevirtual |
Pair production cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Reimplemented from JPHYSICS::JRadiation.
Definition at line 126 of file JRadiationSource.hh.
128 const double x = log(E);
130 if (x >=
sigmaEE. begin()->getX() &&
131 x <=
sigmaEE.rbegin()->getX()) {
136 catch(std::exception& error) {
137 std::cerr <<
"JRadiation::TotalCrossSectionEErad() " << E <<
' ' << error.what() << std::endl;
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
virtual double JPHYSICS::JRadiationFunction::TotalCrossSectionGNrad |
( |
const double |
E | ) |
const |
|
inlinevirtual |
Photo-nuclear cross section.
- Parameters
-
- Returns
- cross section [m^2/g]
Reimplemented from JPHYSICS::JRadiation.
Definition at line 151 of file JRadiationSource.hh.
153 const double x = log(E);
155 if (x >=
sigmaGN. begin()->getX() &&
156 x <=
sigmaGN.rbegin()->getX()) {
161 catch(std::exception& error) {
162 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 170 of file JRadiationSource.hh.
175 const double x = log(E);
176 const double y = log(eps/E);
181 catch(std::exception& error) {
182 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 83 of file JRadiation.hh.
88 if(eps>E-0.75*exp(1.0)*pow(
Z,1./3.))
return 0.;
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 145 of file JRadiation.hh.
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 168 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.);
181 double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*
MASS_PROTON)+eps/LAMBDA);
182 double epsoverE = eps/E;
184 double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 *
MASS_MUON *
MASS_MUON / (LAMBDA * LAMBDA));
185 double PhiofEofeps = epsoverE - 1 + Factor * log (Numerator / Denom);
187 return Psiofeps*PhiofEofeps;
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;
double JPHYSICS::JRadiation::EfromEErad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Pair production shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 242 of file JRadiation.hh.
246 const double eps =0.2;
250 for (
int i = 1000; i != 0; --i)
254 double factor = (1.-Er/E)*
IntegralofG(E,Er)/IntGmax;
255 if(gRandom->Rndm()<factor)
break;
virtual double IntegralofG(const double E, const double eps) const
double JPHYSICS::JRadiation::EfromGNrad |
( |
const double |
E | ) |
const |
|
inlineinherited |
Photo-nuclear shower energy.
- Parameters
-
- Returns
- shower energy [GeV]
Definition at line 266 of file JRadiation.hh.
277 for (
int i = 1000; i != 0; --i) {
280 if (gRandom->Rndm() < factor)
return Er;
static double sigmaGammaPparam(const double eps)
static double PhiofEofepsparam(const double E, const double eps)
double JPHYSICS::JRadiation::GofZEvrho |
( |
const double |
E, |
|
|
const double |
v, |
|
|
const double |
r |
|
) |
| const |
|
inlineprotectedinherited |
Definition at line 288 of file JRadiation.hh.
293 const double b = v*v/(2*(1-v));
294 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);
295 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);
296 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));
297 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);
298 const double Le = log((
Astar()*pow(
Z,-1./3.)*sqrt((1+ksi)*(1+Ye)))/
302 double Phie = Be*Le;
if(Phie<0.)Phie=0.;
303 double Phim = Bm*Lm;
if(Phim<0.)Phim=0.;
static double JPHYSICS::JRadiation::sigmaGammaPparam |
( |
const double |
eps | ) |
|
|
inlinestaticprotectedinherited |
Definition at line 330 of file JRadiation.hh.
332 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 335 of file JRadiation.hh.
337 const double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*
MASS_PROTON)+eps/LAMBDA);
338 const double epsoverE = eps/E;
340 (LAMBDA * LAMBDA * (1 - epsoverE)));
341 const double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 *
MASS_MUON *
MASS_MUON / (LAMBDA * LAMBDA));
342 return (epsoverE - 1 + Factor * log (Numerator / Denom));
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: