Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:53

0001 //
0002 // GEANT4 Class header file
0003 //
0004 //
0005 // File name:   SiG4UniversalFluctuation
0006 //
0007 // Author: Vladimir Ivanchenko make a class for Laszlo Urban model
0008 //
0009 // Modified for standalone use in CMSSW. Danek K. 02/2006
0010 //
0011 // Class Description:
0012 //
0013 // Implementation of energy loss fluctuations in Silicon
0014 
0015 // -------------------------------------------------------------------
0016 //
0017 
0018 #ifndef SiG4UniversalFluctuation_h
0019 #define SiG4UniversalFluctuation_h
0020 
0021 namespace CLHEP {
0022   class HepRandomEngine;
0023 }
0024 
0025 class SiG4UniversalFluctuation {
0026 public:
0027   explicit SiG4UniversalFluctuation();
0028 
0029   // hide assignment operator
0030   SiG4UniversalFluctuation &operator=(const SiG4UniversalFluctuation &right) = delete;
0031   SiG4UniversalFluctuation(const SiG4UniversalFluctuation &) = delete;
0032 
0033   ~SiG4UniversalFluctuation();
0034 
0035   // momentum in MeV/c, mass in MeV, tmax (delta cut) in MeV,
0036   // length in mm, meanLoss eloss in MeV.
0037   double SampleFluctuations(const double momentum,
0038                             const double mass,
0039                             double &tmax,
0040                             const double length,
0041                             const double meanLoss,
0042                             CLHEP::HepRandomEngine *);
0043 
0044 private:
0045   double particleMass;
0046   double chargeSquare;
0047 
0048   // data members to speed up the fluctuation calculation
0049   double ipotFluct;
0050   double electronDensity;
0051 
0052   double f1Fluct;
0053   double f2Fluct;
0054   double e1Fluct;
0055   double e2Fluct;
0056   double rateFluct;
0057   double e1LogFluct;
0058   double e2LogFluct;
0059   double ipotLogFluct;
0060   double e0;
0061 
0062   double minNumberInteractionsBohr;
0063   double theBohrBeta2;
0064   double minLoss;
0065   double problim;
0066   double sumalim;
0067   double alim;
0068   double nmaxCont1;
0069   double nmaxCont2;
0070 };
0071 
0072 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0073 
0074 #endif