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.);
 
  178       double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*
MASS_PROTON)+eps/LAMBDA);
 
  179       double epsoverE = eps/
E;
 
  181       double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 * 
MASS_MUON * 
MASS_MUON / (LAMBDA * LAMBDA));
 
  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]. 
 
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.
  369       const double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*
MASS_PROTON)+eps/LAMBDA);
 
  370       const double epsoverE = eps/
E;
 
  372                                                                    (LAMBDA * LAMBDA * (1 - epsoverE)));
 
  373       const double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 * 
MASS_MUON * 
MASS_MUON / (LAMBDA * LAMBDA));
 
  374       return (epsoverE - 1 + Factor * log (Numerator / Denom));
 
static const double MASS_MUON
muon mass [GeV] 
 
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: