1 #ifndef __JPHYSICS__JRADIATION__ 
    2 #define __JPHYSICS__JRADIATION__ 
   19 namespace JPP { 
using namespace JPHYSICS; }
 
   24     static const double LAMBDA = 0.65;       
 
   56                const int    integrsteps,
 
   57                const double eminBrems,
 
   58                const double eminEErad,
 
   59                const double eminGNrad) :
 
   79                       const double eps)
 const 
   84       if(eps>E-0.75*
exp(1.0)*
pow(
Z,1./3.)) 
return 0.;
 
  126           if(
i==0 || 
i==steps)factor=0.5;
 
  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;
 
  181       double Numerator = E * E * (1 - epsoverE) / (
MASS_MUON * 
MASS_MUON) * (1 + MASS_MUON * MASS_MUON * epsoverE * epsoverE / (
LAMBDA * 
LAMBDA * (1 - epsoverE)));
 
  182       double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 * MASS_MUON * MASS_MUON / (
LAMBDA * 
LAMBDA));
 
  183       double PhiofEofeps = epsoverE - 1 + Factor * 
log (Numerator / Denom);
 
  185       return Psiofeps*PhiofEofeps;
 
  200       double dle = 
log(epsmax/epsmin)/
steps;
 
  204           if(
i==0 || 
i==steps)factor=0.5;
 
  206           double eps = epsmin*
exp(
i*dle);sum += factor*eps*
SigmaGNrad( E, eps);
 
  225       for (
int i = 1000; 
i != 0; --
i) {
 
  228         if(gRandom->Rndm()<(1.-Er/E+0.75*
pow(Er/E,2))) 
break;
 
  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);
 
  304       const double eps =0.2;
 
  308       for (
int i = 1000; 
i != 0; --
i)
 
  313           if(gRandom->Rndm()<factor) 
break;
 
  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);
 
  365       for (
int i = 1000; 
i != 0; --
i) {
 
  368         if (gRandom->Rndm() < factor) 
return Er;
 
  396       const double E2      = E*
E;
 
  398       const double beta2   = beta*beta;
 
  400       const double gamma2  = gamma*gamma;
 
  404       const double EMaxT2  = EMaxT*EMaxT;
 
  406       const double I2      = coeff.
I*coeff.
I;           
 
  407       const double X       = 
log10(beta*gamma);
 
  411       if (coeff.
X0 < X && X < coeff.
X1) {
 
  412         delta = 4.6052*X + coeff.
a*
pow(coeff.
X1-X,coeff.
m) + coeff.
C;
 
  416         delta = 4.6052*X + coeff.
C;
 
  427                      const double r)
 const 
  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.;
 
  445                                const double eps)
 const 
  447       const double EP   = E-eps;
 
  448       const double v    = eps/
E;
 
  453         const double dt   = -tmin/
steps;
 
  457             double fac = 1.0;
if(
i==0 || 
i==steps)fac=0.5;
 
  458             double t = tmin+
i*dt;
 
  459             double r = 1.-
exp(t);
 
  469       return (49.2 + 11.1 * 
log(eps) + 151.8/sqrt(eps));
 
  475       const double epsoverE = eps/
E;
 
  476       const double Numerator = E * E * (1 - epsoverE) / (
MASS_MUON * 
MASS_MUON) * (1 + MASS_MUON * MASS_MUON * epsoverE * epsoverE /
 
  478       const double Factor = 1 - epsoverE + epsoverE * epsoverE / 2 * (1 + 2 * MASS_MUON * MASS_MUON / (
LAMBDA * 
LAMBDA));
 
  479       return (epsoverE - 1 + Factor * 
log (Numerator / Denom));
 
  483     static double le   () { 
return 3.8616E-13;}
 
  484     static double r0   () { 
return 2.817940e-15; }
 
  485     static double Astar() { 
return 183.0; }
 
  486     static double B    () { 
return 183.0; }
 
  487     static double BP   () { 
return 1429.0; }
 
  506     double (
JRadiation::*theta)(
const double, 
const double) 
const;   
 
virtual double CalculateACoeff(double E) const 
Ionization a parameter. 
 
double I
Ionization potentian [GeV]. 
 
static const JRadiationSource_t EErad_t
 
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
 
Struct for the Sternheimer coefficients. 
 
double a
Correction density parameter. 
 
double m
Correction density parameter. 
 
then set_variable DIR else fatal Wrong number of arguments fi for INPUT_FILE in ls rt $DIR stage * log
 
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 
 
double ThetaRMSfromGNrad(const double E, const double v) const 
Get RMS of scattering angle for photo-nuclear shower. 
 
double TotalCrossSectionBrems(const double E) const 
Bremsstrahlung cross section. 
 
double ThetaRMSfromBrems(const double E, const double v) const 
Get RMS of scattering angle for Bremsstrahlung. 
 
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)
 
set_variable E_E log10(E_{fit}/E_{#mu})"
 
JRadiation(const double z, const double a, const int integrsteps, const double eminBrems, const double eminEErad, const double eminGNrad)
Constructor. 
 
double ThetaRMSfromEErad(const double E, const double v) const 
Get RMS of scattering angle for pair production. 
 
T pow(const T &x, const double y)
Power . 
 
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] 
 
static const JRadiationSource_t Brems_t
 
double EfromGNrad(const double E) const 
Photo-nuclear shower energy. 
 
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
 
double X0
Correction density parameter. 
 
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
 
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. 
 
no fit printf nominal n $STRING awk v X
 
static double PhiofEofepsparam(const double E, const double eps)
 
virtual double IntegralofG(const double E, const double eps) const 
 
double EfromEErad(const double E) const 
Pair production shower energy. 
 
Auxiliary data structure for handling member methods of class JRadiation. 
 
virtual double TotalCrossSectionGNrad(const double E) const 
Photo-nuclear cross section. 
 
static const JRadiationSource_t GNrad_t
 
double C
Correction density parameter. 
 
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 JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
 
double X1
Correction density parameter. 
 
static JSterCoefficient getSterCoefficient
Function object for Ster coefficients.