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 G4XTankSimulatorAG;
21 using CLHEP::RandFlat;
24 G4XTankStackingAction::G4XTankStackingAction() :
25 fCurrentDetectorStation(0)
28 &RandomEngineRegistry::GetInstance().Get(RandomEngineRegistry::eDetector);
32 G4ClassificationOfNewTrack
38 if (aTrack->GetDefinition() != G4OpticalPhoton::OpticalPhoton())
43 const double energy = aTrack->GetKineticEnergy() *
Detector description interface for Station-related data.
utl::RandomEngine * fRandomEngine
RandomEngineType & GetEngine()
double fCollectionEfficiency
const PMT & GetPMT(const int id) const
Get specified PMT by id.
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.
const sdet::Station * fCurrentDetectorStation
void SetStation(const sdet::Station *const station)