CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/SimRomanPot/SimFP420/interface/LandauFP420.h

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * DISCLAIMER                                                       *
00004 // *                                                                  *
00005 // * The following disclaimer summarizes all the specific disclaimers *
00006 // * of contributors to this software. The specific disclaimers,which *
00007 // * govern, are listed with their locations in:                      *
00008 // *   http://cern.ch/geant4/license                                  *
00009 // *                                                                  *
00010 // * Neither the authors of this software system, nor their employing *
00011 // * institutes,nor the agencies providing financial support for this *
00012 // * work  make  any representation or  warranty, express or implied, *
00013 // * regarding  this  software system or assume any liability for its *
00014 // * use.                                                             *
00015 // *                                                                  *
00016 // * This  code  implementation is the  intellectual property  of the *
00017 // * GEANT4 collaboration.                                            *
00018 // * By copying,  distributing  or modifying the Program (or any work *
00019 // * based  on  the Program)  you indicate  your  acceptance of  this *
00020 // * statement, and all its terms.                                    *
00021 // ********************************************************************
00022 //
00023 // -------------------------------------------------------------------
00024 //
00025 // GEANT4 Class header file
00026 //
00027 //
00028 // File name:     G4UniversalFluctuation
00029 //
00030 // Author:        Vladimir Ivanchenko
00031 // 
00032 // Creation date: 03.01.2002
00033 //
00034 // Modifications:
00035 //
00036 // 09-12-02 remove warnings (V.Ivanchenko)
00037 // 28-12-02 add method Dispersion (V.Ivanchenko)
00038 // 07-02-03 change signature (V.Ivanchenko)
00039 // 13-02-03 Add name (V.Ivanchenko)
00040 // Modified for standalone use in ORCA. d.k. 6/04
00041 //
00042 // Implementation of energy loss fluctuations
00043 // -------------------------------------------------------------------
00044 //
00045 
00046 #ifndef LandauFP420_h
00047 #define LandauFP420_h 
00048 
00049 //#include "G4VEmFluctuationModel.hh"
00050 
00051 
00052 class LandauFP420 {
00053 public:
00054 
00055   LandauFP420();
00056 
00057   ~LandauFP420();
00058 
00059   // momentum in MeV/c, mass in MeV, tmax (delta cut) in MeV, 
00060   // length in mm, meanLoss eloss in MeV.
00061   double SampleFluctuations(const double momentum,
00062                             const double mass,
00063                             double& tmax,
00064                             const double length,
00065                             const double meanLoss);
00066   
00067   //G4double Dispersion(    const G4Material*,
00068   //                        const G4DynamicParticle*,
00069   //                        G4double&,
00070   //                        G4double&);
00071   //void Initialise(const G4ParticleDefinition*);
00072 
00073 protected:
00074 
00075 private:
00076 
00077   // hide assignment operator
00078   //G4UniversalFluctuation & operator=(const  G4UniversalFluctuation &right);
00079   //G4UniversalFluctuation(const  G4UniversalFluctuation&);
00080 
00081   //const G4ParticleDefinition* particle;
00082   //const G4Material* lastMaterial;
00083 
00084   double particleMass;
00085   double chargeSquare;
00086 
00087   // data members to speed up the fluctuation calculation
00088   double ipotFluct;
00089   double electronDensity;
00090   //  G4double zeff;
00091   
00092   double f1Fluct;
00093   double f2Fluct;
00094   double e1Fluct;
00095   double e2Fluct;
00096   double rateFluct;
00097   double e1LogFluct;
00098   double e2LogFluct;
00099   double ipotLogFluct;
00100   double e0;
00101 
00102   double minNumberInteractionsBohr;
00103   double theBohrBeta2;
00104   double minLoss;
00105   double problim;
00106   double sumalim;
00107   double alim;
00108   int    nmaxCont1;
00109   int    nmaxCont2;
00110 
00111 };
00112 
00113 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00114 
00115 #endif
00116