19#include "BDSMultiSensitiveDetectorOrdered.hh"
20#include "BDSSensitiveDetector.hh"
23#include "G4VSensitiveDetector.hh"
25BDSMultiSensitiveDetectorOrdered::BDSMultiSensitiveDetectorOrdered(
const G4String& name):
26 G4VSensitiveDetector(name)
29BDSMultiSensitiveDetectorOrdered::~BDSMultiSensitiveDetectorOrdered()
35 G4VSensitiveDetector(rhs),
36 sensitiveDetectors(rhs.sensitiveDetectors)
44 G4VSensitiveDetector::operator=(
static_cast<const G4VSensitiveDetector&
>(rhs));
45 sensitiveDetectors = rhs.sensitiveDetectors;
50void BDSMultiSensitiveDetectorOrdered::clear()
52 for (
auto sd : sensitiveDetectors)
56void BDSMultiSensitiveDetectorOrdered::DrawAll()
58 for (
auto sd : sensitiveDetectors)
62void BDSMultiSensitiveDetectorOrdered::PrintAll()
64 for (
auto sd : sensitiveDetectors)
68G4bool BDSMultiSensitiveDetectorOrdered::ProcessHits(G4Step* step,
71 std::vector<G4VHit*> hits;
73 for (
auto sd : sensitiveDetectors)
76 G4bool sdStored = sd->HitOrdered(step, hits);
78 {hits.push_back(sd->last());}
80 {hits.push_back(
nullptr);}
86G4VSensitiveDetector* BDSMultiSensitiveDetectorOrdered::Clone()
const
89 for (
auto sd : sensitiveDetectors )
91 G4VSensitiveDetector* newSD = sd->Clone();
93 newInst->AddSD(newSDBDS);
Modified G4MultiSensitiveDetector that retains order and passes hits in sequence.
Virtual class to define interface for ordered multi-sensitive detector.
const char * GetName(int)
Name of element.