19 using namespace DD4hep;
20 using namespace DD4hep::Geometry;
26 : identifier(0), mask(~0x0ULL) {
35 : top(0), system(0), sysID(0), detMask(~0x0ULL), flags(
VolumeManager::NONE) {
51 printout(
DEBUG,
"VolumeManager",
"+++ Conditions update %s param:%p",det.
path().c_str(),param);
53 printout(
DEBUG,
"VolumeManager",
"+++ Alignment update %s param:%p",det.
path().c_str(),param);
55 for(Volumes::iterator i=
volumes.begin(); i !=
volumes.end(); ++i) {
67 Volumes::const_iterator i =
volumes.find(volume_id);
69 context = (*i).second;
Detectors subdetectors
The container of subdetector elements.
const char * name() const
Access the object name (or "" if not supported by the object)
virtual ~VolumeManagerContext()
Default destructor.
Volumes volumes
The container of placements managed by this instance.
VolumeManagerContext()
Default constructor.
PlacedVolume placement
The placement.
This structure describes the cached data for one placement held by the volume manager.
DD4HEP_INSTANTIATE_HANDLE_NAMED(VolumeManagerObject)
void update(unsigned long tags, DetElement &det, void *param)
Update callback when alignment has changed (called only for subdetectors....)
Context * search(const VolumeID &id) const
Search the locally cached volumes for a matching ID.
VolumeID detMask
Sub-detector mask.
This structure describes the internal data of the volume manager object.
void destroyObjects(M &m)
const std::string & path() const
Path of the detector element (not necessarily identical to placement path!)
Handle class describing a detector element.
Class to support the retrieval of detector elements and volumes given a valid identifier.
virtual ~VolumeManagerObject()
Default destructor.
void destroyHandles(M &m)
Functional created of map destruction functors.
int printout(PrintLevel severity, const char *src, const char *fmt,...)
Calls the display action with a given severity level.
Managers managers
The volume managers for the individual subdetector elements.
VolumeManagerObject()
Default constructor.