ISCalculationNEST.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 /// \file ISCalculationNEST.h
3 /// \brief Interface to algorithm class for a specific calculation of
4 /// ionization electrons and scintillation photons using NEST
5 ///
6 /// \author brebel@fnal.gov
7 ////////////////////////////////////////////////////////////////////////
8 #ifndef ROSIMISCALCULATIONNEST_H
9 #define ROSIMISCALCULATIONNEST_H
10 
12 #include "GArG4/NestAlg.h"
13 
14 // forward declaration
15 namespace CLHEP { class HepRandomEngine; }
16 
17 namespace gar {
18  namespace rosim {
19 
21 
22  public:
23 
24  ISCalculationNEST(CLHEP::HepRandomEngine& engine);
25  virtual ~ISCalculationNEST();
26 
27  void Initialize();
28  void Reset();
29  void CalculateIonizationAndScintillation(const gar::sdp::EnergyDeposit* dep);
30  double EnergyDeposit() const { return fEnergyDeposit; }
31  int NumberIonizationElectrons() const { return fNumIonElectrons; }
32  int NumberScintillationPhotons() const { return fNumScintPhotons; }
33  double StepSizeLimit() const { return fStepSize; }
34 
35  private:
36 
37  NestAlg* fNest; ///< the fast optical simulation process
38  double fStepSize; ///< maximum step to take
39  CLHEP::HepRandomEngine& fEngine; ///< random engine
40  };
41  }
42 } // gar
43 
44 #endif // ROSIMISCALCULATIONNEST_H
NestAlg * fNest
the fast optical simulation process
void Initialize(void)
General GArSoft Utilities.
double fStepSize
maximum step to take
CLHEP::HepRandomEngine & fEngine
random engine