![]() |
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 46 of file VolumeManager.cpp.
|
private |
Definition at line 47 of file VolumeManager.cpp.
|
private |
Definition at line 49 of file VolumeManager.cpp.
|
private |
Definition at line 48 of file VolumeManager.cpp.
|
inline |
Default constructor.
Definition at line 65 of file VolumeManager.cpp.
|
inline |
Definition at line 256 of file VolumeManager.cpp.
|
inlinestatic |
Compute the encoding for a set of VolIDs within a readout descriptor.
Definition at line 242 of file VolumeManager.cpp.
|
inline |
Returns true if vol or any descendant is a sensitive volume (result is cached).
Definition at line 75 of file VolumeManager.cpp.
|
inline |
Access node count.
Definition at line 72 of file VolumeManager.cpp.
|
inline |
Populate the Volume manager.
Definition at line 88 of file VolumeManager.cpp.
|
inline |
Definition at line 295 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 111 of file VolumeManager.cpp.
|
inlinestatic |
Compute the encoding for a set of VolIDs within a readout descriptor.
Definition at line 228 of file VolumeManager.cpp.
|
private |
Debug flag.
Definition at line 59 of file VolumeManager.cpp.
|
private |
Reference to the Detector instance.
Definition at line 51 of file VolumeManager.cpp.
|
private |
Set of already added entries.
Definition at line 55 of file VolumeManager.cpp.
|
private |
Cache: does a TGeoVolume subtree contain any sensitive volume?
Definition at line 57 of file VolumeManager.cpp.
|
private |
Node counter.
Definition at line 61 of file VolumeManager.cpp.
|
private |
Reference to the volume manager to be populated.
Definition at line 53 of file VolumeManager.cpp.
1.8.18