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 
29  // hide assignment operator
32 
34 
35  // momentum in MeV/c, mass in MeV, tmax (delta cut) in MeV,
36  // length in mm, meanLoss eloss in MeV.
37  double SampleFluctuations(const double momentum,
38  const double mass,
39  double &tmax,
40  const double length,
41  const double meanLoss,
42  CLHEP::HepRandomEngine *);
43 
44 private:
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]
double SampleFluctuations(const double momentum, const double mass, double &tmax, const double length, const double meanLoss, CLHEP::HepRandomEngine *)
SiG4UniversalFluctuation & operator=(const SiG4UniversalFluctuation &right)=delete