LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
NestAlg.h
Go to the documentation of this file.
1 #ifndef NESTALG_H
2 #define NESTALG_H
3 
4 #include "Geant4/G4Types.hh"
5 #include "Geant4/G4VParticleChange.hh"
6 #include <map>
7 
8 class G4MaterialPropertiesTable;
9 class G4Step;
10 class G4Track;
11 
12 namespace CLHEP {
13  class HepRandomEngine;
14 }
15 
16 class NestAlg {
17 
18 public:
19  NestAlg(CLHEP::HepRandomEngine& engine);
20  NestAlg(double yieldFactor, CLHEP::HepRandomEngine& engine);
21 
22  const G4VParticleChange& CalculateIonizationAndScintillation(G4Track const& aTrack,
23  G4Step const& aStep);
24 
25  void SetScintillationYieldFactor(double const& yf) { fYieldFactor = yf; }
26  void SetScintillationExcitationRatio(double const& er) { fExcitationRatio = er; }
27  int NumberScintillationPhotons() const { return fNumScintPhotons; }
28  int NumberIonizationElectrons() const { return fNumIonElectrons; }
29  double EnergyDeposition() const { return fEnergyDep; }
30 
31 private:
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;
41  int fNumScintPhotons;
44  double fEnergyDep;
45  G4VParticleChange fParticleChange;
46  std::map<int, bool> fElementPropInit;
47  CLHEP::HepRandomEngine& fEngine;
50 };
51 
52 #endif //NESTALG_H
int NumberScintillationPhotons() const
Definition: NestAlg.h:27
Double_t z
Definition: plot.C:276
void SetScintillationYieldFactor(double const &yf)
Definition: NestAlg.h:25
double fYieldFactor
turns scint. on/off
Definition: NestAlg.h:39
G4VParticleChange fParticleChange
pointer to G4VParticleChange
Definition: NestAlg.h:45
int fNumIonElectrons
number of ionization electrons produced by step
Definition: NestAlg.h:43
Float_t Z
Definition: plot.C:37
Float_t E
Definition: plot.C:20
int NumberIonizationElectrons() const
Definition: NestAlg.h:28
G4double UnivScreenFunc(G4double E, G4double Z, G4double A)
Definition: NestAlg.cxx:1284
void SetScintillationExcitationRatio(double const &er)
Definition: NestAlg.h:26
double EnergyDeposition() const
Definition: NestAlg.h:29
double fExcitationRatio
Definition: NestAlg.h:40
std::map< int, bool > fElementPropInit
Definition: NestAlg.h:46
double fEnergyDep
energy deposited by the step
Definition: NestAlg.h:44