CMS 3D CMS Logo

SiG4UniversalFluctuation.h
Go to the documentation of this file.
1 //
2 // GEANT4 Class header file
3 //
4 //
5 // File name: SiG4UniversalFluctuation
6 //
7 // Author: Vladimir Ivanchenko make a class for Laszlo Urban model
8 //
9 // Modified for standalone use in CMSSW. Danek K. 02/2006
10 //
11 // Class Description:
12 //
13 // Implementation of energy loss fluctuations in Silicon
14 
15 // -------------------------------------------------------------------
16 //
17 
18 #ifndef SiG4UniversalFluctuation_h
19 #define SiG4UniversalFluctuation_h
20 
21 namespace CLHEP {
22  class HepRandomEngine;
23 }
24 
26 public:
27  explicit SiG4UniversalFluctuation();
28 
30 
31  // momentum in MeV/c, mass in MeV, tmax (delta cut) in MeV,
32  // length in mm, meanLoss eloss in MeV.
33  double SampleFluctuations(const double momentum,
34  const double mass,
35  double &tmax,
36  const double length,
37  const double meanLoss,
38  CLHEP::HepRandomEngine *);
39 
40 private:
41  // hide assignment operator
42  SiG4UniversalFluctuation &operator=(const SiG4UniversalFluctuation &right) = delete;
44 
45  double particleMass;
46  double chargeSquare;
47 
48  // data members to speed up the fluctuation calculation
49  double ipotFluct;
51 
52  double f1Fluct;
53  double f2Fluct;
54  double e1Fluct;
55  double e2Fluct;
56  double rateFluct;
57  double e1LogFluct;
58  double e2LogFluct;
59  double ipotLogFluct;
60  double e0;
61 
63  double theBohrBeta2;
64  double minLoss;
65  double problim;
66  double sumalim;
67  double alim;
68  double nmaxCont1;
69  double nmaxCont2;
70 };
71 
72 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
73 
74 #endif
static const double tmax[3]