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 
28  explicit SiG4UniversalFluctuation();
29 
31 
32  // momentum in MeV/c, mass in MeV, tmax (delta cut) in MeV,
33  // length in mm, meanLoss eloss in MeV.
34  double SampleFluctuations(const double momentum,
35  const double mass,
36  double& tmax,
37  const double length,
38  const double meanLoss,
39  CLHEP::HepRandomEngine*);
40 
41 private:
42 
43  // hide assignment operator
44  SiG4UniversalFluctuation & operator=(const SiG4UniversalFluctuation &right) = delete;
46 
47  double particleMass;
48  double chargeSquare;
49 
50  // data members to speed up the fluctuation calculation
51  double ipotFluct;
53 
54  double f1Fluct;
55  double f2Fluct;
56  double e1Fluct;
57  double e2Fluct;
58  double rateFluct;
59  double e1LogFluct;
60  double e2LogFluct;
61  double ipotLogFluct;
62  double e0;
63 
65  double theBohrBeta2;
66  double minLoss;
67  double problim;
68  double sumalim;
69  double alim;
70  double nmaxCont1;
71  double nmaxCont2;
72 };
73 
74 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
75 
76 #endif
77 
static const double tmax[3]