CMS 3D CMS Logo

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 #include "G4Log.hh"
7 
9 public:
10  G4double GetInPointEnergyFraction(G4double energy) const {
11  const G4double e2 = energy * energy;
12  const G4double e3 = e2 * energy;
13  return -6.42310317e-07 * e3 + 1.96988997e-04 * e2 - 2.14064635e-02 * energy + 1.02186764e+00;
14  }
15 
16  G4double GetRadius(G4double energy) const {
17  constexpr const G4double r1 = 156.52094133;
18  constexpr const G4double r2 = -1.02220543;
19  const G4double r0 = r1 + r2 * energy;
20  return std::sqrt(r0 / G4UniformRand() - r0);
21  }
22 
23  G4double GetZ() const {
24  constexpr const G4double alpha = 0.02211515;
25  constexpr const G4double t = 0.66968625;
26  return -G4Log(G4UniformRand()) / alpha + t;
27  }
28 };
29 
30 #endif
float alpha
Definition: AMPTWrapper.h:105
G4double GetInPointEnergyFraction(G4double energy) const
T sqrt(T t)
Definition: SSEVec.h:19
G4double GetRadius(G4double energy) const