1 #ifndef __JPHYSICS__JRADIATION__ 
    2 #define __JPHYSICS__JRADIATION__ 
   19 namespace JPP { 
using namespace JPHYSICS; }
 
   24     static const double LAMBDA = 0.65;       
 
   53                const int    integrsteps,
 
   54                const double eminBrems,
 
   55                const double eminEErad,
 
   56                const double eminGNrad
 
   78                       const double eps)
 const 
   83       if(eps>E-0.75*
exp(1.0)*
pow(
Z,1./3.)) 
return 0.;
 
  122       for(
int i=0;i<
steps+1;i++)
 
  125           if(i==0 || i==steps)factor=0.5;
 
  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;
 
  180       double Numerator = E * E * (1 - epsoverE) / (
MASS_MUON * 
MASS_MUON) * (1 + MASS_MUON * MASS_MUON * epsoverE * epsoverE / (
LAMBDA * 
LAMBDA * (1 - epsoverE)));
 
  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;
 
  199       double dle = log(epsmax/epsmin)/
steps;
 
  200       for(
int i=0;i<
steps+1;i++)
 
  203           if(i==0 || i==steps)factor=0.5;
 
  205           double eps = epsmin*
exp(i*dle);sum += factor*eps*
SigmaGNrad( E, eps);
 
  224       for (
int i = 1000; i != 0; --i) {
 
  227         if(gRandom->Rndm()<(1.-Er/E+0.75*
pow(Er/E,2))) 
break;
 
  243       const double eps =0.2;
 
  247       for (
int i = 1000; i != 0; --i)
 
  252           if(gRandom->Rndm()<factor) 
break;
 
  274       for (
int i = 1000; i != 0; --i) {
 
  277         if (gRandom->Rndm() < factor) 
return Er;
 
  291       const double Energy2 = Energy*Energy;
 
  293       const double beta2   = beta*beta;
 
  295       const double gamma2  = gamma*gamma;
 
  299       const double EMaxT2  = EMaxT*EMaxT;
 
  301       const double I2      = coeff.
I*coeff.
I;           
 
  302       const double X       = log10(beta*gamma);
 
  306       if (coeff.
X0 < X && X < coeff.
X1) {
 
  307         delta = 4.6052*X + coeff.
a*
pow(coeff.
X1-X,coeff.
m) + coeff.
C;
 
  311         delta = 4.6052*X + coeff.
C;
 
  322                      const double r)
 const 
  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.;
 
  340                                const double eps)
 const 
  342       const double EP   = E-eps;
 
  343       const double v    = eps/
E;
 
  348         const double dt   = -tmin/
steps;
 
  350         for (
int i = 0;i<
steps+1;i++)
 
  352             double fac = 1.0;
if(i==0 || i==steps)fac=0.5;
 
  353             double t = tmin+i*dt;
 
  354             double r = 1.-
exp(t);
 
  364       return (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps));
 
  370       const double epsoverE = eps/
E;
 
  371       const double Numerator = E * E * (1 - epsoverE) / (
MASS_MUON * 
MASS_MUON) * (1 + MASS_MUON * MASS_MUON * epsoverE * 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));
 
  378     static double le   () { 
return 3.8616E-13;}
 
  379     static double r0   () { 
return 2.817940e-15; }
 
  380     static double Astar() { 
return 183.0; }
 
  381     static double B    () { 
return 183.0; }
 
  382     static double BP   () { 
return 1429.0; }
 
double I
Ionization potentian [GeV]. 
 
Struct for the Sternheimer coefficients. 
 
double a
Correction density parameter. 
 
double m
Correction density parameter. 
 
double EfromBrems(const double E) const 
Bremsstrahlung shower energy. 
 
static const double MASS_MUON
muon mass [GeV] 
 
static const double AVOGADRO
Avogadro's number [gr^-1]. 
 
double GofZEvrho(const double E, const double v, const double r) const 
 
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"` typeset -Z 4 STRING JOpera1D -f hydrophone.root
 
double TotalCrossSectionBrems(const double E) const 
Bremsstrahlung cross section. 
 
Compiler version dependent expressions, macros, etc. 
 
Auxiliary class for the calculation of the muon radiative cross sections. 
 
Auxiliary data structure to convert (lambda) function to printable object. 
 
double SigmaEErad(const double E, const double eps) const 
Pair production cross section. 
 
static double sigmaGammaPparam(const double eps)
 
JRadiation(const double z, const double a, const int integrsteps, const double eminBrems, const double eminEErad, const double eminGNrad)
Constructor. 
 
T pow(const T &x, const double y)
Power . 
 
then break fi done getCenter read X Y Z let X
 
static const double PI
Mathematical constants. 
 
virtual double SigmaGNrad(const double E, const double eps) const 
Photo-nuclear cross section. 
 
static const double MASS_ELECTRON
electron mass [GeV] 
 
double EfromGNrad(const double E) const 
Photo-nuclear shower energy. 
 
double X0
Correction density parameter. 
 
virtual double TotalCrossSectionEErad(const double E) const 
Pair production cross section. 
 
static const double MASS_PROTON
proton mass [GeV] 
 
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant. 
 
virtual ~JRadiation()
Virtual desctructor. 
 
static double PhiofEofepsparam(const double E, const double eps)
 
virtual double CalculateACoeff(double Energy) const 
Ionization a parameter. 
 
virtual double IntegralofG(const double E, const double eps) const 
 
double EfromEErad(const double E) const 
Pair production shower energy. 
 
virtual double TotalCrossSectionGNrad(const double E) const 
Photo-nuclear cross section. 
 
double C
Correction density parameter. 
 
double X1
Correction density parameter. 
 
then usage $script[input file[working directory[option]]] nWhere option can be E
 
static JSterCoefficient getSterCoefficient
Function object for Ster coefficients.