19#ifndef BDSPHYSICALVOLUMEINFOREGISTRY_H
20#define BDSPHYSICALVOLUMEINFOREGISTRY_H
28class G4VPhysicalVolume;
32typedef std::map<G4VPhysicalVolume*, BDSPhysicalVolumeInfo*>::iterator BDSPVInfoIterator;
33typedef std::map<G4VPhysicalVolume*, BDSPhysicalVolumeInfo*>::const_iterator BDSPVInfoIteratorConst;
75 G4bool isReadOutVolume =
false,
76 G4bool isTunnel =
false);
79 void RegisterInfo(
const std::set<G4VPhysicalVolume*>& physicalVolumes,
81 G4bool isReadOutVolume =
false,
82 G4bool isTunnel =
false);
87 G4bool isTunnel =
false);
98 const std::set<G4VPhysicalVolume*>& physicalVolumes);
120 G4bool IsRegisteredToTunnelRegister(G4VPhysicalVolume* physicalVolume);
133 std::map<G4VPhysicalVolume*, BDSPhysicalVolumeInfo*> backupRegister;
134 std::map<G4VPhysicalVolume*, BDSPhysicalVolumeInfo*> tunnelRegister;
135 std::set<G4VPhysicalVolume*> excludedVolumes;
137 std::set<BDSPhysicalVolumeInfo*> pvInfosForDeletion;
A class that holds a fully constructed BDSAcceleratorComponent as well as any information relevant to...
A registry of physical volume info instances that can be searched.
void RegisterPVsForOutput(const BDSBeamlineElement *element, const std::set< G4VPhysicalVolume * > &physicalVolumes)
friend std::ostream & operator<<(std::ostream &out, BDSPhysicalVolumeInfoRegistry const &r)
output stream
BDSPVInfoIterator tunnelSearch
Search iterator.
BDSPhysicalVolumeInfoRegistry()
Default constructor is private as singleton.
G4bool IsRegisteredToReadOutRegister(G4VPhysicalVolume *physicalVolume)
Check whether a physical volume is registered to the read out registry.
static BDSPhysicalVolumeInfoRegistry * instance
The singleton instance.
~BDSPhysicalVolumeInfoRegistry()
void RegisterExcludedPV(G4VPhysicalVolume *physicalVolume)
BDSPhysicalVolumeInfo * GetInfo(G4VPhysicalVolume *logicalVolume, G4bool isTunnel=false)
G4bool IsRegistered(G4VPhysicalVolume *physicalVolume)
Check whether a physical volume is registered at all.
BDSPVInfoIterator backupSearch
Search iterator.
const std::set< G4VPhysicalVolume * > * PVsForBeamlineElement(BDSBeamlineElement *element) const
Access a set of volumes registered for the placement of a beamline element.
BDSPVInfoIterator readOutSearch
Search iterator.
std::map< const BDSBeamlineElement *, std::set< G4VPhysicalVolume * > > pvsForAGivenElement
void RegisterInfo(G4VPhysicalVolume *physicalVolume, BDSPhysicalVolumeInfo *info, G4bool isReadOutVolume=false, G4bool isTunnel=false)
std::map< G4VPhysicalVolume *, BDSPhysicalVolumeInfo * > readOutRegister
Registry is a map - note 'register' is a protected keyword.
static BDSPhysicalVolumeInfoRegistry * Instance()
Singleton accessor.
G4bool IsRegisteredToBackupRegister(G4VPhysicalVolume *physicalVolume)
Check whether a physical volume is registered ot the general backup registry.
A class holding any information pertaining to a particular physical volume in a BDSIM geant4 model.