Jpp  16.0.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | List of all members
JPHYSICS::JRadiationFunction Class Reference

Fast implementation of class JRadiation. More...

#include <JRadiationSource.hh>

Inheritance diagram for JPHYSICS::JRadiationFunction:
JPHYSICS::JRadiation

Public Member Functions

 JRadiationFunction (const JRadiation &radiation, const unsigned int number_of_bins, const double Emin, const double Emax)
 Constructor. More...
 
virtual double TotalCrossSectionEErad (const double E) const override
 Pair production cross section. More...
 
virtual double CalculateACoeff (const double E) const override
 A Coefficient. More...
 
virtual double TotalCrossSectionGNrad (const double E) const override
 Photo-nuclear cross section. More...
 
double SigmaEErad (const double E, const double eps) const
 Pair production cross section. More...
 
double TotalCrossSectionBrems (const double E) const
 Bremsstrahlung cross section. More...
 
virtual double SigmaGNrad (const double E, const double eps) const
 Photo-nuclear cross section. More...
 
double EfromBrems (const double E) const
 Bremsstrahlung shower energy. More...
 
double getThetaRMSfromBrems (const double E, const double v) const
 Get RMS of scattering angle for Bremsstrahlung. More...
 
double EfromEErad (const double E) const
 Pair production shower energy. More...
 
double getThetaRMSfromEErad (const double E, const double v) const
 Get RMS of scattering angle for pair production. More...
 
double EfromGNrad (const double E) const
 Photo-nuclear shower energy. More...
 
double getThetaRMSfromGNrad (const double E, const double v) const
 Get RMS of scattering angle for photo-nuclear shower. More...
 

Protected Member Functions

virtual double IntegralofG (const double E, const double eps) const
 
double GofZEvrho (const double E, const double v, const double r) const
 

Static Protected Member Functions

static double sigmaGammaPparam (const double eps)
 
static double PhiofEofepsparam (const double E, const double eps)
 
static double le ()
 
static double r0 ()
 
static double Astar ()
 
static double B ()
 
static double BP ()
 

Protected Attributes

JFunction1D_t sigmaEE
 
JFunction1D_t sigmaGN
 
JFunction1D_t Acoeff
 
JFunction2D_t integral
 
const double Z
 
const double A
 
const double Dn
 
const double DnP
 
const int steps
 
const double EminBrems
 
const double EminEErad
 
const double EminGNrad
 

Private Types

typedef
JTOOLS::JGridPolint1Function1D_t 
JFunction1D_t
 
typedef JTOOLS::JMultiFunction
< JFunction1D_t,
JTOOLS::JMapList
< JTOOLS::JPolint1FunctionalGridMap > > 
JFunction2D_t
 

Detailed Description

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.

Member Typedef Documentation

Definition at line 39 of file JRadiationSource.hh.

Definition at line 41 of file JRadiationSource.hh.

Constructor & Destructor Documentation

JPHYSICS::JRadiationFunction::JRadiationFunction ( const JRadiation radiation,
const unsigned int  number_of_bins,
const double  Emin,
const double  Emax 
)
inlineexplicit

Constructor.

Parameters
radiationJRadiation object
number_of_binsnumber of bins
Eminminimal muon energy [GeV]
Emaxmaximal muon energy [GeV]

Acoeff

Definition at line 52 of file JRadiationSource.hh.

55  :
56  JRadiation(radiation)
57  {
58  using namespace JTOOLS;
59 
60  const double xmin = log(Emin);
61  const double xmax = log(Emax);
62 
63 
64  integral.configure(make_grid(number_of_bins, xmin, xmax));
65 
66  for (JFunction2D_t::iterator i = integral.begin(); i != integral.end(); ++i) {
67 
68  const double x = i->getX();
69  const double E = exp(x);
70 
71  const double ymin = log(EminEErad/E);
72  const double ymax = 0.0;
73 
74  if (ymax > ymin) {
75 
76  i->getY().configure(make_grid(number_of_bins, ymin, ymax));
77 
78  for (JFunction1D_t::iterator j = i->getY().begin(); j != i->getY().end(); ++j) {
79 
80  const double y = j->getX();
81  const double eps = exp(y) * E;
82  const double z = JRadiation::IntegralofG(E, eps);
83 
84  j->getY() = z;
85  }
86  }
87  }
88 
89  integral.compile();
90  integral.setExceptionHandler(new JFunction1D_t::JDefaultResult(0.0));
91 
92 
93  sigmaEE.configure(make_grid(number_of_bins, xmin, xmax));
94 
95  for (JFunction1D_t::iterator i = sigmaEE.begin(); i != sigmaEE.end(); ++i) {
96 
97  const double E = exp(i->getX());
98  const double y = JRadiation::TotalCrossSectionEErad(E);
99 
100  i->getY() = y;
101  }
102 
103  sigmaEE.compile();
104 
105 
106  sigmaGN.configure(make_grid(number_of_bins, xmin, xmax));
107 
108  for (JFunction1D_t::iterator i = sigmaGN.begin(); i != sigmaGN.end(); ++i) {
109 
110  const double E = exp(i->getX());
111  const double y = JRadiation::TotalCrossSectionGNrad(E);
112 
113  i->getY() = y;
114  }
115 
116  sigmaGN.compile();
117 
118  /**
119  Acoeff*/
120  Acoeff.configure(make_grid(number_of_bins, xmin, xmax));
121  for (JFunction1D_t::iterator i = Acoeff.begin(); i != Acoeff.end(); ++i) {
122 
123  const double E = exp(i->getX());
124  const double y = JRadiation::CalculateACoeff(E);
125 
126  i->getY() = y;
127  }
128 
129  Acoeff.compile();
130 
131  }
void compile()
Compilation.
then usage E
Definition: JMuonPostfit.sh:35
const double EminEErad
Definition: JRadiation.hh:495
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
JRadiation(const double z, const double a, const int integrsteps, const double eminBrems, const double eminEErad, const double eminGNrad)
Constructor.
Definition: JRadiation.hh:54
void setExceptionHandler(const typename function_type::supervisor_type &supervisor)
Set the supervisor for handling of exceptions.
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
Definition: JRadiation.hh:114
int j
Definition: JPolint.hh:682
virtual double CalculateACoeff(double Energy) const
Ionization a parameter.
Definition: JRadiation.hh:394
virtual double IntegralofG(const double E, const double eps) const
Definition: JRadiation.hh:444
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
Definition: JRadiation.hh:195
JGrid< JAbscissa_t > make_grid(const int nx, const JAbscissa_t Xmin, const JAbscissa_t Xmax)
Helper method for JGrid.
Definition: JGrid.hh:177

Member Function Documentation

virtual double JPHYSICS::JRadiationFunction::TotalCrossSectionEErad ( const double  E) const
inlineoverridevirtual

Pair production cross section.

Parameters
Emuon energy [GeV]
Returns
cross section [m^2/g]

Reimplemented from JPHYSICS::JRadiation.

Definition at line 140 of file JRadiationSource.hh.

141  {
142  const double x = log(E);
143 
144  if (x >= sigmaEE. begin()->getX() &&
145  x <= sigmaEE.rbegin()->getX()) {
146 
147  try {
148  return sigmaEE(x);
149  }
150  catch(std::exception& error) {
151  std::cerr << "JRadiation::TotalCrossSectionEErad() " << E << ' ' << error.what() << std::endl;
152  }
153  }
154 
156  }
then usage E
Definition: JMuonPostfit.sh:35
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
Definition: JRadiation.hh:114
virtual double JPHYSICS::JRadiationFunction::CalculateACoeff ( const double  E) const
inlineoverridevirtual

A Coefficient.

Parameters
Emuon energy [GeV]
Returns
Ionization A parameter [GeV/m]

Reimplemented from JPHYSICS::JRadiation.

Definition at line 163 of file JRadiationSource.hh.

164  {
165  const double x = log(E);
166 
167  if (x >= Acoeff. begin()->getX() &&
168  x <= Acoeff.rbegin()->getX()) {
169 
170  try {
171  return Acoeff(x);
172  }
173  catch(std::exception& error) {
174  std::cerr << "JRadiation::ACoeff() " << E << ' ' << error.what() << std::endl;
175  }
176  }
178  }
then usage E
Definition: JMuonPostfit.sh:35
virtual double CalculateACoeff(double Energy) const
Ionization a parameter.
Definition: JRadiation.hh:394
virtual double JPHYSICS::JRadiationFunction::TotalCrossSectionGNrad ( const double  E) const
inlineoverridevirtual

Photo-nuclear cross section.

Parameters
Emuon energy [GeV]
Returns
cross section [m^2/g]

Reimplemented from JPHYSICS::JRadiation.

Definition at line 187 of file JRadiationSource.hh.

188  {
189  const double x = log(E);
190 
191  if (x >= sigmaGN. begin()->getX() &&
192  x <= sigmaGN.rbegin()->getX()) {
193 
194  try {
195  return sigmaGN(x);
196  }
197  catch(std::exception& error) {
198  std::cerr << "JRadiation::TotalCrossSectionGNrad() " << E << ' ' << error.what() << std::endl;
199  }
200  }
201 
203  }
then usage E
Definition: JMuonPostfit.sh:35
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
Definition: JRadiation.hh:195
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.

208  {
209  try {
210 
211  const double x = log(E);
212  const double y = log(eps/E);
213  const double z = integral(x, y);
214 
215  return z;
216  }
217  catch(std::exception& error) {
218  std::cerr << "JRadiation::IntegralofG() " << E << ' ' << eps << ' ' << error.what() << std::endl;
219  }
220 
221  return JRadiation::IntegralofG(E, eps);
222  }
then usage E
Definition: JMuonPostfit.sh:35
virtual double IntegralofG(const double E, const double eps) const
Definition: JRadiation.hh:444
double JPHYSICS::JRadiation::SigmaEErad ( const double  E,
const double  eps 
) const
inlineinherited

Pair production cross section.

Parameters
Emuon energy [GeV]
epsshower energy [GeV]
Returns
cross section [m^2/g]

Definition at line 78 of file JRadiation.hh.

80  {
81  //routine to calculate dsigma/de in cm^2/GeV for radiating a photon of energy eps
82 
83  if(eps<4.*MASS_ELECTRON)return 0.;
84  if(eps>E-0.75*exp(1.0)*pow(Z,1./3.)) return 0.;
85  double zeta;
86  if(E<35.*MASS_MUON)
87  {
88  zeta = 0.;
89  }
90  else
91  {
92  zeta = (0.073*log((E/MASS_MUON)/(1.+1.95e-5*pow(Z,2./3.)*E/MASS_MUON))-0.26);
93  if(zeta<0.)
94  {
95  zeta=0.;
96  }
97  else
98  {
99  zeta = zeta/(0.058*log((E/MASS_MUON)/(1.+5.3e-5*pow(Z,1./3.)*E/MASS_MUON))-0.14);
100  }
101  }
102  double integ = IntegralofG(E,eps);
103  //cout<< eps<<" integ "<< integ<<endl;
104  return integ*(4/(3.*M_PI))*(Z*(Z+zeta)/A)*AVOGADRO*pow((ALPHA_ELECTRO_MAGNETIC*r0()),2.)*(1-eps/E)/eps;
105  }
static double r0()
Definition: JRadiation.hh:484
then usage E
Definition: JMuonPostfit.sh:35
static const double MASS_MUON
muon mass [GeV]
static const double AVOGADRO
Avogadro&#39;s number [gr^-1].
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
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
Definition: JRadiation.hh:444
double JPHYSICS::JRadiation::TotalCrossSectionBrems ( const double  E) const
inlineinherited

Bremsstrahlung cross section.

Parameters
Emuon energy [GeV]
Returns
cross section [m^2/g]

Definition at line 142 of file JRadiation.hh.

143  {
144  // double delta = (MASS_MUON*MASS_MUON*eps)/(2*E*(E-eps));
145  double delta = (MASS_MUON*MASS_MUON)/(2*E);
146  //double v = eps/E;
147  double Phin = log((B()*pow(Z,-1./3.)*(MASS_MUON+delta*(DnP*sqrt(exp(1.0))-2.)))/(DnP*(MASS_ELECTRON+delta*sqrt(exp(1.0))*B()*pow(Z,-1./3.))));
148  if(Phin<0.)Phin=0.;
149  double Phie = log((BP()*pow(Z,-2./3.)*MASS_MUON)/((1+delta*MASS_MUON/(MASS_ELECTRON*MASS_ELECTRON*sqrt(exp(1.0))))*(MASS_ELECTRON+delta*sqrt(exp(1.0))*BP()*pow(Z,-2./3.))));
150  if(Phie<0.)Phie=0.;
151  //if(eps>E/(1+MASS_MUON*MASS_MUON/(2.*MASS_ELECTRON*E)))Phie=0.;
152  double sig = (16./3.)*ALPHA_ELECTRO_MAGNETIC*AVOGADRO*pow((MASS_ELECTRON/MASS_MUON*r0()),2.0)*Z*(Z*Phin+Phie)/(A);
153  double epsint = log((E-MASS_MUON)/EminBrems)-(E-MASS_MUON-EminBrems)/E+0.375*(pow(E-MASS_MUON,2.)-pow(EminBrems,2.0))/pow(E,2.0);
154  return epsint*sig;//"cross section" in m^2/g multiplied by density and inverted gives mean free path
155  }
static double r0()
Definition: JRadiation.hh:484
then usage E
Definition: JMuonPostfit.sh:35
static double B()
Definition: JRadiation.hh:486
static const double MASS_MUON
muon mass [GeV]
const double DnP
Definition: JRadiation.hh:492
static const double AVOGADRO
Avogadro&#39;s number [gr^-1].
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
static const double MASS_ELECTRON
electron mass [GeV]
const double EminBrems
Definition: JRadiation.hh:494
static double BP()
Definition: JRadiation.hh:487
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
virtual double JPHYSICS::JRadiation::SigmaGNrad ( const double  E,
const double  eps 
) const
inlinevirtualinherited

Photo-nuclear cross section.

Parameters
Emuon energy [GeV]
epsshower energy [GeV]
Returns
cross section [m^2/g]

Definition at line 165 of file JRadiation.hh.

166  {
167 
168  //minimum radiated energy is 0.2 GeV, not very critical formulae become invalid for very much lower
169  //result is given in m^2/g GeV
170  if (eps<0.2) return 0.;
171  if (eps>E-MASS_PROTON) return 0.;
172  double Aeff;
173  if (A==1)
174  {Aeff = 1.;}
175  else
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.);
178  double Psiofeps = ALPHA_ELECTRO_MAGNETIC/PI*Aeff*AVOGADRO/A*sigmaGammaPofeps/eps;
179  double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*MASS_PROTON)+eps/LAMBDA);
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);
184  //cout<<"PhiofEofeps "<<PhiofEofeps<<" Psiofeps "<<Psiofeps<<endl;
185  return Psiofeps*PhiofEofeps;
186  }
then usage E
Definition: JMuonPostfit.sh:35
static const double MASS_MUON
muon mass [GeV]
static const double AVOGADRO
Avogadro&#39;s number [gr^-1].
Auxiliary data structure to convert (lambda) function to printable object.
Definition: JManip.hh:724
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
static const double PI
Mathematical constants.
static const double MASS_PROTON
proton mass [GeV]
static const double ALPHA_ELECTRO_MAGNETIC
Electro-Magnetic coupling constant.
double JPHYSICS::JRadiation::EfromBrems ( const double  E) const
inlineinherited

Bremsstrahlung shower energy.

Parameters
Emuon energy [GeV]
Returns
shower energy [GeV]

Definition at line 220 of file JRadiation.hh.

221  {
222  //double EminBrems(0.01);
223  //generate according to 1/k from minimum energy to E
224  double Er = 0.0;
225  for (int i = 1000; i != 0; --i) {
226  Er = EminBrems*exp(gRandom->Rndm()*log(E/EminBrems));
227  //check on the extra factor (1-v+3/4v^2)
228  if(gRandom->Rndm()<(1.-Er/E+0.75*pow(Er/E,2))) break;
229  }
230  return Er;
231  }
then usage E
Definition: JMuonPostfit.sh:35
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
const double EminBrems
Definition: JRadiation.hh:494
double JPHYSICS::JRadiation::getThetaRMSfromBrems ( const double  E,
const double  v 
) const
inlineinherited

Get RMS of scattering angle for Bremsstrahlung.

Parameters
Emuon energy [GeV]
venergy loss fraction
Returns
angle [rad]

Definition at line 241 of file JRadiation.hh.

242  {
243  using namespace std;
244 
245  const double precision = 1.0e-3;
246 
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);
251 
252  double rms = 0.0;
253 
254  if (v <= 0.5) {
255 
256  rms = max(min(k1*sqrt(v), k2), k3*v);
257 
258  } else {
259 
260  const double n = 0.81 * sqrt(E) / (sqrt(E) + 1.8);
261 
262  double k5 = 0.0;
263 
264  for (double vmin = 0.5, vmax = 1.0; ; ) {
265 
266  const double v = 0.5 * (vmin + vmax);
267 
268  const double y = k4 * pow(v, 1.0 + n) * pow(1.0 - v, -n);
269 
270  if (abs(y - 0.2) <= precision) {
271 
272  k5 = y * pow(1.0 - v, 1.0/2.0);
273 
274  break;
275  }
276 
277  if (y < 0.2)
278  vmin = v;
279  else
280  vmax = v;
281  }
282 
283  rms = k4 * pow(v, 1.0 + n) * pow(1.0 - v, -n);
284 
285  if (rms >= 0.2) {
286  rms = k5 * pow(1.0 - v, -1.0/2.0);
287  }
288  }
289 
290  return rms;
291  }
then usage E
Definition: JMuonPostfit.sh:35
const int n
Definition: JPolint.hh:676
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
data_type v[N+1][M+1]
Definition: JPolint.hh:756
double JPHYSICS::JRadiation::EfromEErad ( const double  E) const
inlineinherited

Pair production shower energy.

Parameters
Emuon energy [GeV]
Returns
shower energy [GeV]

Definition at line 300 of file JRadiation.hh.

301  {
302  //generate according to 1/k from minimum energy to E
303 
304  const double eps =0.2;
305  const double IntGmax = IntegralofG(E,eps)*2.0;
306 
307  double Er = 0.0;
308  for (int i = 1000; i != 0; --i)
309  {
310  Er = EminEErad*exp(gRandom->Rndm()*log(E/EminEErad));
311  //check on the extra factor, (1-v) and IntofG
312  double factor = (1.-Er/E)*IntegralofG(E,Er)/IntGmax;
313  if(gRandom->Rndm()<factor) break;
314  }
315  return Er;
316  }
then usage E
Definition: JMuonPostfit.sh:35
const double EminEErad
Definition: JRadiation.hh:495
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
virtual double IntegralofG(const double E, const double eps) const
Definition: JRadiation.hh:444
double JPHYSICS::JRadiation::getThetaRMSfromEErad ( const double  E,
const double  v 
) const
inlineinherited

Get RMS of scattering angle for pair production.

Parameters
Emuon energy [GeV]
venergy loss fraction
Returns
angle [rad]

Definition at line 326 of file JRadiation.hh.

327  {
328  using namespace std;
329 
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;
335 
336  const double n = -1.0;
337 
338  const double u = v - 2.0*MASS_ELECTRON/E;
339 
340  if (u > 0.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);
343  else
344  return 0.0;
345  }
then usage E
Definition: JMuonPostfit.sh:35
const int n
Definition: JPolint.hh:676
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
static const double MASS_ELECTRON
electron mass [GeV]
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then JCalibrateToT a
Definition: JTuneHV.sh:116
$WORKDIR ev_configure_domsimulator txt echo process $DOM_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DOM_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
data_type v[N+1][M+1]
Definition: JPolint.hh:756
double u[N+1]
Definition: JPolint.hh:755
double JPHYSICS::JRadiation::EfromGNrad ( const double  E) const
inlineinherited

Photo-nuclear shower energy.

Parameters
Emuon energy [GeV]
Returns
shower energy [GeV]

Definition at line 354 of file JRadiation.hh.

355  {
356  //generate according to 1/k from minimum energy to E
357 
358  double cmax = sigmaGammaPparam(EminGNrad);
359  if (cmax < sigmaGammaPparam(E))
360  cmax=sigmaGammaPparam(E);
361 
362  double Pmax = PhiofEofepsparam(E,EminGNrad);
363 
364  double Er = 0.0;
365  for (int i = 1000; i != 0; --i) {
366  Er = EminGNrad*exp(gRandom->Rndm()*log(E/EminGNrad));
367  const double factor = PhiofEofepsparam(E,Er)*sigmaGammaPparam(Er)/(cmax*Pmax);
368  if (gRandom->Rndm() < factor) return Er;
369  }
370 
371  return Er;
372  }
then usage E
Definition: JMuonPostfit.sh:35
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
static double sigmaGammaPparam(const double eps)
Definition: JRadiation.hh:467
const double EminGNrad
Definition: JRadiation.hh:496
static double PhiofEofepsparam(const double E, const double eps)
Definition: JRadiation.hh:472
double JPHYSICS::JRadiation::getThetaRMSfromGNrad ( const double  E,
const double  v 
) const
inlineinherited

Get RMS of scattering angle for photo-nuclear shower.

Parameters
Emuon energy [GeV]
venergy loss fraction
Returns
angle [rad]

Definition at line 382 of file JRadiation.hh.

383  {
384  return 0.0;
385  }
double JPHYSICS::JRadiation::GofZEvrho ( const double  E,
const double  v,
const double  r 
) const
inlineprotectedinherited

Definition at line 425 of file JRadiation.hh.

428  {
429  const double ksi = MASS_MUON*MASS_MUON*v*v*(1-r*r)/(4*MASS_ELECTRON*MASS_ELECTRON*(1-v));//
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)))/
436  (1.+(2.*MASS_ELECTRON*sqrt(exp(1.))*Astar()*pow(Z,-1./3.)*(1+ksi)*(1+Ye))/(E*v*(1-r*r))));
437  const double Lm = log(((MASS_MUON/MASS_ELECTRON)*Astar()*pow(Z,-1./3.)*sqrt((1.+1./ksi)*(1.+Ym)))/
438  (1.+(2.*MASS_ELECTRON*sqrt(exp(1.))*Astar()*pow(Z,-1./3.)*(1+ksi)*(1+Ym))/(E*v*(1-r*r))));
439  double Phie = Be*Le; if(Phie<0.)Phie=0.;
440  double Phim = Bm*Lm; if(Phim<0.)Phim=0.;
441  return Phie+(MASS_ELECTRON*MASS_ELECTRON/(MASS_MUON*MASS_MUON))*Phim;
442  }
then usage E
Definition: JMuonPostfit.sh:35
static const double MASS_MUON
muon mass [GeV]
data_type r[M+1]
Definition: JPolint.hh:758
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 JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
static double Astar()
Definition: JRadiation.hh:485
T pow(const T &x, const double y)
Power .
Definition: JMath.hh:98
static const double MASS_ELECTRON
electron mass [GeV]
data_type v[N+1][M+1]
Definition: JPolint.hh:756
static double JPHYSICS::JRadiation::sigmaGammaPparam ( const double  eps)
inlinestaticprotectedinherited

Definition at line 467 of file JRadiation.hh.

468  {
469  return (49.2 + 11.1 * log(eps) + 151.8/sqrt(eps));
470  }
static double JPHYSICS::JRadiation::PhiofEofepsparam ( const double  E,
const double  eps 
)
inlinestaticprotectedinherited

Definition at line 472 of file JRadiation.hh.

473  {
474  const double Denom = 1+eps/LAMBDA*(1+LAMBDA/(2*MASS_PROTON)+eps/LAMBDA);
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 /
477  (LAMBDA * LAMBDA * (1 - 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));
480  }
then usage E
Definition: JMuonPostfit.sh:35
static const double MASS_MUON
muon mass [GeV]
Auxiliary data structure to convert (lambda) function to printable object.
Definition: JManip.hh:724
static const double MASS_PROTON
proton mass [GeV]
static double JPHYSICS::JRadiation::le ( )
inlinestaticprotectedinherited

Definition at line 483 of file JRadiation.hh.

483 { return 3.8616E-13;}
static double JPHYSICS::JRadiation::r0 ( )
inlinestaticprotectedinherited

Definition at line 484 of file JRadiation.hh.

484 { return 2.817940e-15; }
static double JPHYSICS::JRadiation::Astar ( )
inlinestaticprotectedinherited

Definition at line 485 of file JRadiation.hh.

485 { return 183.0; }
static double JPHYSICS::JRadiation::B ( )
inlinestaticprotectedinherited

Definition at line 486 of file JRadiation.hh.

486 { return 183.0; }
static double JPHYSICS::JRadiation::BP ( )
inlinestaticprotectedinherited

Definition at line 487 of file JRadiation.hh.

487 { return 1429.0; }

Member Data Documentation

JFunction1D_t JPHYSICS::JRadiationFunction::sigmaEE
protected

Definition at line 224 of file JRadiationSource.hh.

JFunction1D_t JPHYSICS::JRadiationFunction::sigmaGN
protected

Definition at line 225 of file JRadiationSource.hh.

JFunction1D_t JPHYSICS::JRadiationFunction::Acoeff
protected

Definition at line 226 of file JRadiationSource.hh.

JFunction2D_t JPHYSICS::JRadiationFunction::integral
protected

Definition at line 227 of file JRadiationSource.hh.

const double JPHYSICS::JRadiation::Z
protectedinherited

Definition at line 489 of file JRadiation.hh.

const double JPHYSICS::JRadiation::A
protectedinherited

Definition at line 490 of file JRadiation.hh.

const double JPHYSICS::JRadiation::Dn
protectedinherited

Definition at line 491 of file JRadiation.hh.

const double JPHYSICS::JRadiation::DnP
protectedinherited

Definition at line 492 of file JRadiation.hh.

const int JPHYSICS::JRadiation::steps
protectedinherited

Definition at line 493 of file JRadiation.hh.

const double JPHYSICS::JRadiation::EminBrems
protectedinherited

Definition at line 494 of file JRadiation.hh.

const double JPHYSICS::JRadiation::EminEErad
protectedinherited

Definition at line 495 of file JRadiation.hh.

const double JPHYSICS::JRadiation::EminGNrad
protectedinherited

Definition at line 496 of file JRadiation.hh.


The documentation for this class was generated from the following file: