1 #ifndef _FastTankSimulatorOG_FastTankSimulator_h_
2 #define _FastTankSimulatorOG_FastTankSimulator_h_
4 #include <fwk/VModule.h>
6 #include <utl/CoordinateSystem.h>
7 #include <utl/TabulatedFunction.h>
8 #include <utl/Particle.h>
26 namespace FastTankSimulatorOG {
43 VModule::ResultFlag
Init();
45 VModule::ResultFlag
Finish();
Detector description interface for Station-related data.
Fast parametrization-based tank simulation.
void CalculatePhotoElectrons(const utl::Particle &p, const double)
utl::RandomEngine * fRandomEngine
Describes a particle for Simulation.
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
double fPhotoElectronRate
Wraps the random number engine used to generate distributions.
void SimulateElectrons(const utl::Particle &p)
VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
sevt::Station * fCurrentEventStation
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
utl::Particle fInitialParticle
double fTankRadiusSquared
double CalculateIntegratedCerenkovRate(const utl::Particle &p, const double)
utl::TabulatedFunction fPairProductionProbability
double fCerenkovMinElectron
utl::TabulatedFunction fPhotonInteractionLength
std::vector< double > fPECumulativeProbability