22#include "BDSSDSamplerLink.hh"
23#include "BDSSDType.hh"
27#include "G4Version.hh"
49#if G4VERSION_NUMBER < 1030
52#include "BDSSDEnergyDeposition.hh"
53#include "BDSSDEnergyDepositionGlobal.hh"
83 G4bool applyOptions =
false)
const;
125#if G4VERSION_NUMBER > 1029
133 inline G4VSensitiveDetector* ApertureComplete()
const {
return energyDeposition;}
155 const std::vector<G4double>* units =
nullptr);
168 inline void SetLinkMinimumEK(G4double minimumEKIn) {
samplerLink->SetMinimumEK(minimumEKIn);}
169 inline void SetLinkProtonsAndIonsOnly(G4bool protonsAndIonsOnlyIn) {
samplerLink->SetProtonsAndIonsOnly(protonsAndIonsOnlyIn);}
214#if G4VERSION_NUMBER > 1029
236 std::map<G4int, BDSSDSampler*> extraSamplersWithFilters;
237 std::map<G4int, BDSSDSamplerCylinder*> extraSamplerCylindersWithFilters;
238 std::map<G4int, BDSSDSamplerSphere*> extraSamplerSpheresWithFilters;
239 std::map<G4int, BDSSDFilterPDGIDSet*> extraSamplerFilters;
240 std::vector<G4String> extraSamplerWithFilterNamesComplete;
241 std::vector<G4String> extraSamplerCylinderWithFilterNamesComplete;
242 std::vector<G4String> extraSamplerSphereWithFilterNamesComplete;
Registry / map of components for tracker linkage.
Modified G4MultiSensitiveDetector that retains order and passes hits in sequence.
Generates BDSHitsEnergyDepositions from step information - uses curvilinear coords.
The sensitive detector class that provides sensitivity to collimators instances.
Generates BDSHitsEnergyDepositionGlobal from step information.
Generates BDSHitsEnergyDepositions from step information - uses curvilinear coords.
Filter for a set of PDG IDs (ints).
A singleton class that holds all required sensitive detector class instances.
BDSSDEnergyDeposition * EnergyDeposition() const
SD for general energy deposition.
G4double collimatorHitsMinimumKE
Cache of global constant option.
const std::map< G4String, G4double > & PrimitiveScorerUnits() const
Access the map of units for primitive scorers.
BDSSDManager()
Private default constructor for singleton.
BDSSDSamplerSphere * samplerSphere
SD instance.
G4bool storeCollimatorHitsAll
Cache of global constant option.
std::map< G4String, G4VSDFilter * > filters
Map of all filters used. This class owns a single instance of each.
BDSSDVolumeExit * WorldExit() const
SD for world exit hits.
BDSSDTerminator * terminator
SD instance.
BDSSDSamplerCylinder * SamplerCylinderWithFilter(G4int ID) const
Access the relevant SD for a given particle filter set ID. It will return nullptr if the ID is invali...
G4bool generateCollimatorHits
Cache of global constant option.
BDSSDVolumeExit * worldExit
SD instance.
G4bool generateELossVacuumHits
Cache of global constant option.
BDSSDEnergyDepositionGlobal * energyDepositionWorldContents
SD instance.
void RegisterPrimitiveScorerName(const G4String &nameIn, G4double unit=1.0)
BDSSDApertureImpacts * apertureImpacts
SD instance.
void ConstructSamplerSDsForParticleSets(const std::map< int, std::set< int > > &samplerFilterIDtoPDGSetIn)
BDSMultiSensitiveDetectorOrdered * CollimatorComplete() const
SD for collimator impacts + energy deposition at the same time in order.
BDSSDEnergyDeposition * EnergyDepositionTunnel() const
SD for tunnel energy counter.
BDSSDTerminator * Terminator() const
const std::vector< G4String > & ExtraSamplerCylinderWithFilterNamesComplete() const
Access a vector of names of extra samplers so we can identify the hits collections.
const std::vector< G4String > & ExtraSamplerSphereWithFilterNamesComplete() const
Access a vector of names of extra samplers so we can identify the hits collections.
G4bool generateELossWorldContents
Cache of global constant option.
G4bool generateELossTunnelHits
Cache of global constant option.
const std::vector< G4String > & PrimitiveScorerNames() const
Access a vector of the just primitive scorer part of the names.
BDSSDEnergyDeposition * EnergyDepositionFull() const
SD for general energy deposition but always include extra half of information.
BDSSDSamplerLink * samplerLink
SD instance.
G4bool storeELossWorld
Cache of global constant option.
BDSSDSamplerSphere * SamplerSphereWithFilter(G4int ID) const
Access the relevant SD for a given particle filter set ID. It will return nullptr if the ID is invali...
BDSSDEnergyDeposition * energyDeposition
SD instance.
void RegisterPrimitiveScorerNames(const std::vector< G4String > &namesIn, const std::vector< G4double > *units=nullptr)
Loop over a vector and apply above single name function.
G4VSensitiveDetector * worldCompleteSD
SD instance.
G4bool storeApertureImpactsIons
Cache of global constant option.
G4VSensitiveDetector * apertureCompleteSD
SD instance.
BDSSDSamplerLink * SamplerLink() const
SD for link samplers.
BDSSDCollimator * Collimator() const
SD for collimator impact locations.
BDSSDThinThing * ThinThing() const
G4bool storeApertureImpactsAll
Cache of global constant option.
BDSSDApertureImpacts * ApertureImpacts() const
SD for aperture impact hits.
BDSSDEnergyDeposition * energyDepositionTunnel
SD instance.
BDSSDSampler * samplerPlane
SD instance.
G4bool generateELossHits
Cache of global constant option.
G4VSensitiveDetector * SensitiveDetector(const BDSSDType sdType, G4bool applyOptions=false) const
BDSSDSamplerCylinder * samplerCylinder
SD instance.
BDSSDSamplerCylinder * SamplerCylinder() const
SD for samplers (cylinder type).
const std::vector< G4String > & PrimitiveScorerNamesComplete() const
Access a vector the full primitive scorer names as registered.
BDSSDManager(const BDSSDManager &)=delete
Singleton accessor.
std::map< G4String, G4double > primitiveScorerNameToUnit
Map of primitive scorer names to units.
BDSSDSampler * SamplerPlane() const
SD for samplers (plane type). See also SamplerPlaneWithFilter below.
BDSSDSamplerSphere * SamplerSphere() const
SD for samplers (sphere type).
BDSSDSampler * SamplerPlaneWithFilter(G4int ID) const
Access the relevant SD for a given particle filter set ID. It will return nullptr if the ID is invali...
G4bool generateApertureImpacts
Cache of global constant option.
BDSMultiSensitiveDetectorOrdered * WireComplete() const
SD for wire scanner wires that is a composite of thin things + energy deposition full.
G4bool storeCollimatorHitsIons
Cache of global constant option.
G4VSensitiveDetector * WorldComplete() const
SD for multiple SDs for world - energy loss and exit.
BDSSDEnergyDepositionGlobal * EnergyDepositionWorldContents() const
SD for energy deposition in things that were already placed in the externally provided world.
BDSSDEnergyDeposition * energyDepositionFull
SD instance.
G4double apertureImpactsMinimumKE
Cache of global constant option.
BDSSDEnergyDepositionGlobal * EnergyDepositionWorld() const
SD for energy deposition in the world volume.
std::vector< G4String > primitiveScorerNamesComplete
Vector of complete (including mesh name) primitive scorer names.
G4bool storeELossExtras
Cache of global constant option.
std::vector< G4String > primitiveScorerNames
Just the primitive scorer part of the name.
void SetLinkRegistry(BDSLinkRegistry *registry)
If samplerLink member exists, set the registry to look up links for that SD.
BDSSDEnergyDeposition * EnergyDepositionVacuum() const
SD for energy deposition in vacuum volumes.
BDSSDEnergyDepositionGlobal * energyDepositionWorld
SD instance.
BDSSDEnergyDeposition * energyDepositionVacuum
SD instance.
const std::vector< G4String > & ExtraSamplerWithFilterNamesComplete() const
Access a vector of names of extra samplers so we can identify the hits collections.
The sensitive detector class that provides sensitivity to BDSSamplerCylinder instances.
The sensitive detector class that provides sensitivity to BDSSamplerLink instances.
The sensitive detector class that provides sensitivity to BDSSamplerSphere instances.
The sensitive detector class that provides sensitivity to BDSSampler instances.
Sensitivity that measures primary particle turns for terminator.
The sensitive detector class that provides sensitivity to record thin thing hits.
Generates BDSHitEnergyDepositionGlobals if a particle is leaving a volume.
Improve type-safety of native enum data type in C++.