CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
LowEnergyFastSimParam.h
Go to the documentation of this file.
1 #ifndef LowEnergyFastSimParam_h
2 #define LowEnergyFastSimParam_h
3 
4 #include "G4Types.hh"
5 #include "Randomize.hh"
6 
8 public:
9  G4double GetInPointEnergyFraction(G4double energy) const {
10  const G4double e2 = energy * energy;
11  const G4double e3 = e2 * energy;
12  return -6.42310317e-07 * e3 + 1.96988997e-04 * e2 - 2.14064635e-02 * energy + 1.02186764e+00;
13  }
14 
15  G4double GetRadius(G4double energy) const {
16  constexpr const G4double r1 = 156.52094133;
17  constexpr const G4double r2 = -1.02220543;
18  const G4double r0 = r1 + r2 * energy;
19  const G4double erand = G4UniformRand();
20 
21  return sqrt(r0 / erand - r0);
22  }
23 
24  G4double GetZ() const {
25  constexpr const G4double alpha = 0.02211515;
26  constexpr const G4double t = 0.66968625;
27  const G4double erand = G4UniformRand();
28 
29  return -log(erand) / alpha + t;
30  }
31 };
32 
33 #endif
float alpha
Definition: AMPTWrapper.h:105
static std::vector< std::string > checklist log
G4double GetRadius(G4double energy) const
T sqrt(T t)
Definition: SSEVec.h:19
G4double GetInPointEnergyFraction(G4double energy) const