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: