FastTankSimulator.h
Go to the documentation of this file.
1 #ifndef _FastTankSimulatorOG_FastTankSimulator_h_
2 #define _FastTankSimulatorOG_FastTankSimulator_h_
3 
4 #include <fwk/VModule.h>
5 
6 #include <utl/CoordinateSystem.h>
7 #include <utl/TabulatedFunction.h>
8 #include <utl/Particle.h>
9 
10 #include <vector>
11 
12 
13 namespace utl {
14  class RandomEngine;
15 }
16 
17 namespace sdet {
18  class Station;
19 }
20 
21 namespace sevt {
22  class Station;
23 }
24 
25 
26 namespace FastTankSimulatorOG {
27 
39 
40  public:
42 
43  VModule::ResultFlag Init();
44  VModule::ResultFlag Run(evt::Event& event);
45  VModule::ResultFlag Finish();
46 
47  private:
48  double fdEdXMuon = 0;
49  double fdEdXElectron = 0;
50  double fCerenkovMinMuon = 0;
52  double fEMinPhoton = 0;
53  double fPhotoElectronRate = 0;
54  double fWaterRIndex = 0;
55 
56  std::vector<double> fPECumulativeProbability;
57 
60 
61  double fTankRadiusSquared = 0;
62  double fTankHeight = 0;
63 
65  double CalculateIntegratedCerenkovRate(const utl::Particle& p, const double);
66  void CalculatePhotoElectrons(const utl::Particle& p, const double);
67 
68  void SimulateElectrons(const utl::Particle& p);
69  void SimulateMuons(const utl::Particle& p);
70  void SimulatePhotons(const utl::Particle& p);
71 
74 
78 
80 
81  REGISTER_MODULE("FastTankSimulatorOG", FastTankSimulator);
82 
83  };
84 
85 }
86 
87 #endif
Detector description interface for Station-related data.
Fast parametrization-based tank simulation.
void CalculatePhotoElectrons(const utl::Particle &p, const double)
Describes a particle for Simulation.
Definition: Particle.h:26
Class to hold collection (x,y) points and provide interpolation between them.
REGISTER_MODULE("FastTankSimulatorOG", FastTankSimulator)
void SimulatePhotons(const utl::Particle &p)
void SimulateComptonScattering(const utl::Particle &p)
VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
void SimulatePairProduction(const utl::Particle &p)
class to hold data at Station level
Wraps the random number engine used to generate distributions.
Definition: RandomEngine.h:27
void SimulateElectrons(const utl::Particle &p)
VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
Module interface.
Definition: VModule.h:53
double CalculateDistanceInTank(const utl::Particle &p)
VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
void SimulateMuons(const utl::Particle &p)
const sdet::Station * fCurrentDetectorStation
double CalculateIntegratedCerenkovRate(const utl::Particle &p, const double)
utl::TabulatedFunction fPairProductionProbability
utl::TabulatedFunction fPhotonInteractionLength
std::vector< double > fPECumulativeProbability
Definition: XbArray.h:7

, generated on Tue Sep 26 2023.