NestAlg.h
Go to the documentation of this file.
1 #ifndef NESTALG_H
2 #define NESTALG_H
3 
4 #include "Geant4/globals.hh"
5 #include "Geant4/G4Step.hh"
6 #include "Geant4/G4Track.hh"
7 #include "Geant4/G4VParticleChange.hh"
8 
9 // forward declarations
10 namespace CLHEP { class HepRandomEngine; }
11 
12 namespace gar {
13  class NestAlg {
14 
15  public :
16 
17  NestAlg(CLHEP::HepRandomEngine& engine);
18  NestAlg(double yieldFactor,
19  CLHEP::HepRandomEngine& engine);
20 
21  const G4VParticleChange& CalculateIonizationAndScintillation(G4Track const& aTrack,
22  G4Step const& aStep);
23 
24  void SetScintillationYieldFactor(double const& yf) { fYieldFactor = yf; }
25  void SetScintillationExcitationRatio(double const& er) { fExcitationRatio = er; }
26  int NumberScintillationPhotons() const { return fNumScintPhotons; }
27  int NumberIonizationElectrons() const { return fNumIonElectrons; }
28  double EnergyDeposition() const { return fEnergyDep; }
29 
30  private:
31 
32  G4double GetGasElectronDriftSpeed(G4double efieldinput,G4double density);
33  G4double GetLiquidElectronDriftSpeed(double T, double F, G4bool M, G4int Z);
34  G4double CalculateElectronLET ( G4double E, G4int Z );
35  G4double UnivScreenFunc ( G4double E, G4double Z, G4double A );
36  G4int BinomFluct(G4int N0, G4double prob); //function for doing fluctuations
37  void InitMatPropValues ( G4MaterialPropertiesTable* nobleElementMat, int z );
38 
39  double fYieldFactor; ///< turns scint. on/off
40  double fExcitationRatio; ///< N_ex/N_i, the dimensionless ratio of initial
41  ///< excitons to ions
42  int fNumScintPhotons; ///< number of photons produced by the step
43  int fNumIonElectrons; ///< number of ionization electrons produced by step
44  double fEnergyDep; ///< energy deposited by the step
45  G4VParticleChange fParticleChange; ///< pointer to G4VParticleChange
46  std::map<int,bool> fElementPropInit; ///< map of noble element z to flag
47  ///< for whether that element's material
48  ///< properties table has been initialized
49  CLHEP::HepRandomEngine& fEngine; ///< random engine
50  };
51 
52 } // gar
53 
54 #endif //NESTALG_H
G4double GetGasElectronDriftSpeed(G4double efieldinput, G4double density)
Definition: G4S2Light.cc:315
G4VParticleChange fParticleChange
pointer to G4VParticleChange
Definition: NestAlg.h:45
G4double UnivScreenFunc(G4double E, G4double Z, G4double A)
Definition: G4S1Light.cc:1300
double fYieldFactor
turns scint. on/off
Definition: NestAlg.h:39
void SetScintillationExcitationRatio(double const &er)
Definition: NestAlg.h:25
double EnergyDeposition() const
Definition: NestAlg.h:28
void SetScintillationYieldFactor(double const &yf)
Definition: NestAlg.h:24
int fNumIonElectrons
number of ionization electrons produced by step
Definition: NestAlg.h:43
CLHEP::HepRandomEngine & fEngine
random engine
Definition: NestAlg.h:49
void InitMatPropValues(G4MaterialPropertiesTable *nobleElementMat)
Definition: G4S1Light.cc:1265
G4int BinomFluct(G4int N0, G4double prob)
Definition: G4S1Light.cc:1245
G4double CalculateElectronLET(G4double E, G4int Z)
Definition: G4S1Light.cc:1218
int NumberScintillationPhotons() const
Definition: NestAlg.h:26
std::map< int, bool > fElementPropInit
Definition: NestAlg.h:46
int fNumScintPhotons
number of photons produced by the step
Definition: NestAlg.h:42
General GArSoft Utilities.
double fEnergyDep
energy deposited by the step
Definition: NestAlg.h:44
int NumberIonizationElectrons() const
Definition: NestAlg.h:27
G4double GetLiquidElectronDriftSpeed(double T, double F, G4bool M, G4int Z)
double fExcitationRatio
excitons to ions
Definition: NestAlg.h:40