DD4hep - The AIDA detector description toolkit for high energy physics experiments
DD4hep  Rev:Unversioneddirectory
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VolumeManagerInterna.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation for LCD
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 //
14 // NOTE:
15 //
16 // This is an internal include file. It should only be included to
17 // instantiate code. Otherwise the VolumeManager include file should be
18 // sufficient for all practical purposes.
19 //
20 //==========================================================================
21 
22 #ifndef DD4HEP_GEOMETRY_VOLUMEMANAGERINTERNA_H
23 #define DD4HEP_GEOMETRY_VOLUMEMANAGERINTERNA_H
24 
25 // Framework include files
26 #include "DD4hep/Volumes.h"
27 #include "DD4hep/Detector.h"
28 #include "DD4hep/IDDescriptor.h"
29 #include "DD4hep/VolumeManager.h"
30 
31 // ROOT include files
32 #include "TGeoMatrix.h"
33 
35 namespace DD4hep {
36 
38  namespace Geometry {
39 
40  // Forward declarations
41  class LCDD;
42  class VolumeManagerContext;
43  class VolumeManagerObject;
44 
46 
53  public:
54  typedef std::vector<TGeoNode*> Path;
56 
68  TGeoHMatrix toDetector;
70  TGeoHMatrix toWorld;
75  public:
79  virtual ~VolumeManagerContext();
80  };
81 
83 
90  public:
96 
97  public:
117  int flags;
118  public:
122  virtual ~VolumeManagerObject();
124  Context* search(const VolumeID& id) const;
126  void update(unsigned long tags, DetElement& det, void* param);
127  };
128 
129  } /* End namespace Geometry */
130 } /* End namespace DD4hep */
131 #endif /* DD4hep_GEOMETRY_VOLUMEMANAGERINTERNA_H */
VolIDs volID
Volume IDS corresponding to this element.
Handle class holding a placed volume (also called physical volume)
Definition: Volumes.h:135
Detectors subdetectors
The container of subdetector elements.
TGeoHMatrix toDetector
The transformation of space-points to the corrdinate system of the closests detector element...
DetElement element
Handle to the closest Detector element.
virtual ~VolumeManagerContext()
Default destructor.
Volumes volumes
The container of placements managed by this instance.
VolumeManagerObject * top
The reference to the TOP level VolumeManager.
TGeoHMatrix toWorld
The transformation of space-points to the world corrdinate system.
VolumeID mask
Ignore mask of the placement identifier.
This structure describes the cached data for one placement held by the volume manager.
DetElement detector
The Detector element handle managed by this instance.
void update(unsigned long tags, DetElement &det, void *param)
Update callback when alignment has changed (called only for subdetectors....)
Field system
The system field descriptor.
Context * search(const VolumeID &id) const
Search the locally cached volumes for a matching ID.
Implementation of a named object.
Definition: NamedObject.h:31
This structure describes the internal data of the volume manager object.
VolumeID identifier
Placement identifier.
std::map< VolumeID, VolumeManager > Managers
Definition: VolumeManager.h:86
Handle class describing a detector element.
Definition: Detector.h:172
virtual ~VolumeManagerObject()
Default destructor.
Path path
Path of placements to this sensitive volume.
DetElement detector
Handle to the subdetector element handle.
long long int VolumeID
Definition: Primitives.h:35
std::map< DetElement, VolumeManager > Detectors
Definition: VolumeManager.h:87
Managers managers
The volume managers for the individual subdetector elements.
IDDescriptor id
The ID descriptor object.
Class implementing the ID encoding of detector response.
Definition: IDDescriptor.h:40
std::map< VolumeID, VolumeManagerContext * > Volumes
Definition: VolumeManager.h:88