![]() |
DD4hep
1.38.0
Detector Description Toolkit for High Energy Physics
|
Helper class to populate the volume manager. More...
Public Member Functions | |
| VolumeManager_Populator (const Detector &description, VolumeManager vm) | |
| Default constructor. More... | |
| size_t | numNodes () const |
| Access node count. More... | |
| bool | hasSensitiveContent (TGeoVolume *vol) |
| Returns true if vol or any descendant is a sensitive volume (result is cached). More... | |
| void | populate (DetElement e) |
| Populate the Volume manager. More... | |
| size_t | scanPhysicalVolume (DetElement &parent, DetElement e, PlacedVolume pv, Encoding parent_encoding, SensitiveDetector &sd, Chain &chain) |
| Scan a single physical volume and look for sensitive elements below. More... | |
| void | add_entry (SensitiveDetector sd, DetElement parent, DetElement e, const TGeoNode *n, const Encoding &code, Chain &nodes) |
| void | print_node (SensitiveDetector sd, DetElement parent, DetElement e, const TGeoNode *n, const Encoding &code, const Chain &nodes) const |
Static Public Member Functions | |
| static Encoding | update_encoding (const IDDescriptor iddesc, const VolIDs &ids, const Encoding &initial) |
| Compute the encoding for a set of VolIDs within a readout descriptor. More... | |
| static Encoding | encoding (const IDDescriptor iddesc, const VolIDs &ids) |
| Compute the encoding for a set of VolIDs within a readout descriptor. More... | |
Private Types | |
| typedef std::vector< TGeoNode * > | Chain |
| typedef PlacedVolume::VolIDs | VolIDs |
| typedef std::pair< VolumeID, VolumeID > | Encoding |
Private Attributes | |
| const Detector & | m_detDesc |
| Reference to the Detector instance. More... | |
| VolumeManager | m_volManager |
| Reference to the volume manager to be populated. More... | |
| std::set< VolumeID > | m_entries |
| Set of already added entries. More... | |
| std::unordered_map< TGeoVolume *, bool > | m_has_sensitive |
| Cache: does a TGeoVolume subtree contain any sensitive volume? More... | |
| bool | m_debug = false |
| Debug flag. More... | |
| std::size_t | m_numNodes = 0 |
| Node counter. More... | |
Helper class to populate the volume manager.
Definition at line 48 of file VolumeManager.cpp.
|
private |
Definition at line 49 of file VolumeManager.cpp.
|
private |
Definition at line 51 of file VolumeManager.cpp.
|
private |
Definition at line 50 of file VolumeManager.cpp.
|
inline |
Default constructor.
Definition at line 67 of file VolumeManager.cpp.
|
inline |
Definition at line 258 of file VolumeManager.cpp.
|
inlinestatic |
Compute the encoding for a set of VolIDs within a readout descriptor.
Definition at line 244 of file VolumeManager.cpp.
|
inline |
Returns true if vol or any descendant is a sensitive volume (result is cached).
Definition at line 77 of file VolumeManager.cpp.
|
inline |
Access node count.
Definition at line 74 of file VolumeManager.cpp.
|
inline |
Populate the Volume manager.
Definition at line 90 of file VolumeManager.cpp.
|
inline |
Definition at line 297 of file VolumeManager.cpp.
|
inline |
Scan a single physical volume and look for sensitive elements below.
Check if this particular volume is the placement of one of the children of this detector element. If the daughter placement is also a detector child, then we must reset the node chain.
Distinguish logically the two following cases for our understanding.... Though the treatment is identical
Definition at line 113 of file VolumeManager.cpp.
|
inlinestatic |
Compute the encoding for a set of VolIDs within a readout descriptor.
Definition at line 230 of file VolumeManager.cpp.
|
private |
Debug flag.
Definition at line 61 of file VolumeManager.cpp.
|
private |
Reference to the Detector instance.
Definition at line 53 of file VolumeManager.cpp.
|
private |
Set of already added entries.
Definition at line 57 of file VolumeManager.cpp.
|
private |
Cache: does a TGeoVolume subtree contain any sensitive volume?
Definition at line 59 of file VolumeManager.cpp.
|
private |
Node counter.
Definition at line 63 of file VolumeManager.cpp.
|
private |
Reference to the volume manager to be populated.
Definition at line 55 of file VolumeManager.cpp.
1.8.18