4 #include <fwk/RandomEngineRegistry.h>
6 #include <sdet/Station.h>
9 #include <utl/TabulatedFunction.h>
11 #include <CLHEP/Random/RandFlat.h>
14 #include <G4TrackingManager.hh>
15 #include <G4TrackStatus.hh>
16 #include <G4OpticalPhoton.hh>
20 using namespace G4TankSimulatorOG;
21 using CLHEP::RandFlat;
24 G4TankStackingAction::G4TankStackingAction() :
25 fCurrentDetectorStation(0)
28 &RandomEngineRegistry::GetInstance().Get(RandomEngineRegistry::eDetector);
32 G4ClassificationOfNewTrack
38 if (aTrack->GetDefinition() != G4OpticalPhoton::OpticalPhoton())
43 const double energy = aTrack->GetKineticEnergy() *
double fCollectionEfficiency
Detector description interface for Station-related data.
RandomEngineType & GetEngine()
const PMT & GetPMT(const int id) const
Get specified PMT by id.
utl::RandomEngine * fRandomEngine
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack)
double GetCollectionEfficiency() const
Collection efficiency.
utl::TabulatedFunction fQuantumEff
double InterpolateY(const double x, const unsigned int polyDegree) const
Interpolate the Y value with a polyDegree polynomial.
const utl::TabulatedFunction & GetQuantumEfficiency() const
Quantum efficiency.
void SetStation(const sdet::Station *const station)
const sdet::Station * fCurrentDetectorStation