DD4hep  1.28.0
Detector Description Toolkit for High Energy Physics
Detector.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
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 #ifndef DD4HEP_DETECTOR_H
14 #define DD4HEP_DETECTOR_H
15 
16 #include <DD4hep/Version.h>
17 
18 // Framework includes
19 #include <DD4hep/Handle.h>
20 #include <DD4hep/Fields.h>
21 #include <DD4hep/Objects.h>
22 #include <DD4hep/Shapes.h>
23 #include <DD4hep/Volumes.h>
24 #include <DD4hep/Readout.h>
25 #include <DD4hep/DetElement.h>
26 #include <DD4hep/NamedObject.h>
27 #include <DD4hep/Segmentations.h>
28 #include <DD4hep/VolumeManager.h>
30 #include <DD4hep/ExtensionEntry.h>
31 #include <DD4hep/BuildType.h>
32 
33 // C/C++ include files
34 #include <map>
35 #include <vector>
36 #include <string>
37 #include <cstdio>
38 #include <memory>
39 
40 // Forward declarations
41 class TGeoManager;
42 
44 namespace dd4hep {
45 
47  std::string versionString();
48 
49  // Foward declarations
50  class NamedObject;
51 
53  namespace xml {
54  class UriReader;
55  }
56 
59  public:
60  enum Conventions {
61  STP = 1<<0, // Standard temperature and pressure (273.15 Kelvin, 1 ATM)
62  NTP = 1<<1, // Normal temperature and pressure (293.15 Kelvin, 1 ATM)
63  USER = 1<<2, // Explicitly set before materials are defined (recommended)
64  USER_SET = 1<<3,
65  USER_NOTIFIED = 1<<4
66  };
67  public:
68  double pressure;
69  double temperature;
70  long convention;
71  bool is_NTP() const { return (convention&NTP) != 0; }
72  bool is_STP() const { return (convention&STP) != 0; }
73  bool is_user_defined() const { return (convention&USER) != 0; }
74  };
75 
77 
90  class Detector {
91  public:
93  typedef std::map<std::string, Handle<NamedObject> > HandleMap;
94  typedef std::map<std::string, std::string> PropertyValues;
95  typedef std::map<std::string, PropertyValues> Properties;
96 
98  enum State {
100  NOT_READY = 1<<0,
102  LOADING = 1<<1,
104  READY = 1<<2
105  };
106 
108  virtual ~Detector() = default;
109 
111  virtual DetectorBuildType buildType() const = 0;
113  virtual void init() = 0;
115  virtual void endDocument(bool close_geometry=true) = 0;
116 
118  virtual State state() const = 0;
120  virtual TGeoManager& manager() const = 0;
122  virtual Properties& properties() const = 0;
124  virtual Material air() const = 0;
126  virtual Material vacuum() const = 0;
128  virtual VisAttr invisible() const = 0;
129 
131  virtual DetElement world() const = 0;
133  virtual DetElement trackers() const = 0;
134 
136  virtual Volume worldVolume() const = 0;
138  virtual Volume parallelWorldVolume() const = 0;
140  virtual Volume trackingVolume() const = 0;
142  virtual void setTrackingVolume(Volume vol) = 0;
143 
145  virtual VolumeManager volumeManager() const = 0;
146 
149 
151  virtual const STD_Conditions& stdConditions() const = 0;
153  virtual void setStdConditions(double temp, double pressure) = 0;
155  virtual void setStdConditions(const std::string& type) = 0;
156 
157 
159  virtual Header header() const = 0;
161  virtual void setHeader(Header h) = 0;
162 
164  virtual OverlayedField field() const = 0;
165 
167  virtual const HandleMap& constants() const = 0;
169  virtual const HandleMap& regions() const = 0;
171  virtual const HandleMap& detectors() const = 0;
173  virtual const HandleMap& sensitiveDetectors() const = 0;
175  virtual const HandleMap& readouts() const = 0;
177  virtual const HandleMap& visAttributes() const = 0;
179  virtual const HandleMap& limitsets() const = 0;
181  virtual const HandleMap& fields() const = 0;
183  virtual const HandleMap& idSpecifications() const = 0;
184 
185 #ifndef __MAKECINT__
186 
187 
196  virtual const std::vector<DetElement>& detectors(const std::string& type,
197  bool throw_exc=false) const = 0;
198 
200  virtual std::vector<DetElement> detectors(const std::string& type1,
201  const std::string& type2,
202  const std::string& type3="",
203  const std::string& type4="",
204  const std::string& type5="" ) = 0;
205 
207  virtual std::vector<std::string> detectorTypes() const = 0;
208 
209 
213  virtual std::vector<DetElement> detectors(unsigned int includeFlag,
214  unsigned int excludeFlag=0 ) const = 0 ;
215 #endif
216 
219 
227  virtual void declareParent(const std::string& detector_name, const DetElement& det) = 0;
228 
230 
233  virtual Volume pickMotherVolume(const DetElement& sd) const = 0;
234 
236  virtual std::string constantAsString(const std::string& name) const = 0;
238  virtual long constantAsLong(const std::string& name) const = 0;
240  virtual double constantAsDouble(const std::string& name) const = 0;
241 
243  virtual Constant constant(const std::string& name) const = 0;
245  template <class T> T constant(const std::string& name) const;
246 
248  virtual Material material(const std::string& name) const = 0;
250  virtual IDDescriptor idSpecification(const std::string& name) const = 0;
252  virtual Region region(const std::string& name) const = 0;
254  virtual VisAttr visAttributes(const std::string& name) const = 0;
256  virtual LimitSet limitSet(const std::string& name) const = 0;
258  virtual Readout readout(const std::string& name) const = 0;
260  virtual SensitiveDetector sensitiveDetector(const std::string& name) const = 0;
262  virtual CartesianField field(const std::string& name) const = 0;
264  virtual DetElement detector(const std::string& name) const = 0;
265 
267  virtual Detector& add(Constant constant) = 0;
269  virtual Detector& add(VisAttr attr) = 0;
271  virtual Detector& add(LimitSet limitset) = 0;
273  virtual Detector& add(Region region) = 0;
275  virtual Detector& add(IDDescriptor spec) = 0;
277  virtual Detector& add(Readout readout) = 0;
279  virtual Detector& add(SensitiveDetector entry) = 0;
283  virtual Detector& add(CartesianField entry) = 0;
284 
286  virtual Detector& addConstant(const Handle<NamedObject>& element) = 0;
288  virtual Detector& addVisAttribute(const Handle<NamedObject>& element) = 0;
290  virtual Detector& addLimitSet(const Handle<NamedObject>& limset) = 0;
292  virtual Detector& addIDSpecification(const Handle<NamedObject>& element) = 0;
298  virtual Detector& addSensitiveDetector(const Handle<NamedObject>& element) = 0;
303 
305  virtual void fromCompact(const std::string& fname,
306  DetectorBuildType type = BUILD_DEFAULT) = 0;
308  virtual void fromXML (const std::string& fname,
309  DetectorBuildType type = BUILD_DEFAULT) = 0;
311  virtual void fromXML (const std::string& fname,
312  xml::UriReader* entity_resolver,
313  DetectorBuildType type = BUILD_DEFAULT) = 0;
314 
316  virtual void dump() const = 0;
318  virtual long apply(const char* factory, int argc, char** argv) const = 0;
319 
321  virtual void* addUserExtension(unsigned long long int key, ExtensionEntry* entry) = 0;
322 
324 
325  virtual void* removeUserExtension(unsigned long long int key, bool destroy) = 0;
326 
328  virtual void* userExtension(unsigned long long int key, bool alert=true) const = 0;
329 
331  template <typename IFACE, typename CONCRETE> IFACE* addExtension(CONCRETE* c) {
332  return (IFACE*) addUserExtension(detail::typeHash64<IFACE>(),
334  }
335 
337  template <class IFACE> IFACE* removeExtension(bool destroy=true) {
338  return (IFACE*) removeUserExtension(detail::typeHash64<IFACE>(),destroy);
339  }
340 
342  template <class IFACE> IFACE* extension(bool alert=true) const {
343  return (IFACE*) userExtension(detail::typeHash64<IFACE>(),alert);
344  }
345 
347  static Detector& getInstance(const std::string& name="default");
349  static void destroyInstance(const std::string& name="default");
351  static std::unique_ptr<Detector> make_unique(const std::string& name);
352 
353  };
354 
355  /*
356  * The following are convenience implementations to access constants by type.
357  * I do not think this violates the interface approach, but it is so much
358  * more intuitiv to say constant<int>(name) than constantAsInt(name).
359  */
360 #ifndef __CINT__
361  template <> inline short Detector::constant<short>(const std::string& name) const {
363  return (short) constantAsLong(name);
364  }
365 
367  template <> inline unsigned short Detector::constant<unsigned short>(const std::string& name) const {
368  return (unsigned short) constantAsLong(name);
369  }
370 
372  template <> inline int Detector::constant<int>(const std::string& name) const {
373  return (int) constantAsLong(name);
374  }
375 
377  template <> inline unsigned int Detector::constant<unsigned int>(const std::string& name) const {
378  return (unsigned int) constantAsLong(name);
379  }
380 
382  template <> inline long Detector::constant<long>(const std::string& name) const {
383  return constantAsLong(name);
384  }
385 
387  template <> inline unsigned long Detector::constant<unsigned long>(const std::string& name) const {
388  return (unsigned long) constantAsLong(name);
389  }
390 
392  template <> inline float Detector::constant<float>(const std::string& name) const {
393  return (float) constantAsDouble(name);
394  }
395 
397  template <> inline double Detector::constant<double>(const std::string& name) const {
398  return constantAsDouble(name);
399  }
400 
402  template <> inline std::string Detector::constant<std::string>(const std::string& name) const {
403  return constantAsString(name);
404  }
405 #endif
406 } /* End namespace dd4hep */
407 #endif // DD4HEP_DETECTOR_H
dd4hep::Detector::manager
virtual TGeoManager & manager() const =0
Access the geometry manager of this instance.
dd4hep::Detector::addExtension
IFACE * addExtension(CONCRETE *c)
Extend the sensitive detector element with an arbitrary structure accessible by the type.
Definition: Detector.h:331
dd4hep::Detector::State
State
The detector description states.
Definition: Detector.h:98
dd4hep::STD_Conditions::is_STP
bool is_STP() const
Definition: Detector.h:72
dd4hep::Detector::setHeader
virtual void setHeader(Header h)=0
Accessor to the header entry.
dd4hep::Detector::LOADING
@ LOADING
The geometry is being created and loaded. (parsing ongoing)
Definition: Detector.h:102
dd4hep::ExtensionEntry
Definition of the extension entry interface class.
Definition: ExtensionEntry.h:39
dd4hep::Detector::dump
virtual void dump() const =0
Stupid legacy method.
dd4hep::Detector::world
virtual DetElement world() const =0
Return reference to the top-most (world) detector element.
Objects.h
Segmentations.h
Volumes.h
dd4hep::Detector::addIDSpecification
virtual Detector & addIDSpecification(const Handle< NamedObject > &element)=0
Add a new id descriptor by named reference to the detector description.
dd4hep::Detector::detector
virtual DetElement detector(const std::string &name) const =0
Retrieve a subdetector element by its name from the detector description.
dd4hep::Detector::detectors
virtual const std::vector< DetElement > & detectors(const std::string &type, bool throw_exc=false) const =0
Access a set of subdetectors according to the sensitive type.
dd4hep::SensitiveDetector
Handle class to hold the information of a sensitive detector.
Definition: DetElement.h:44
dd4hep::Detector::Properties
std::map< std::string, PropertyValues > Properties
Definition: Detector.h:95
dd4hep::Detector::vacuum
virtual Material vacuum() const =0
Return handle to material describing vacuum.
dd4hep::VisAttr
Handle class describing visualization attributes.
Definition: Objects.h:324
dd4hep::Detector::detectors
virtual const HandleMap & detectors() const =0
Accessor to the map of sub-detectors.
dd4hep::STD_Conditions::Conventions
Conventions
Definition: Detector.h:60
dd4hep::STD_Conditions::USER
@ USER
Definition: Detector.h:63
dd4hep::IDDescriptor
Class implementing the ID encoding of the detector response.
Definition: IDDescriptor.h:37
Handle.h
dd4hep::Detector::add
virtual Detector & add(IDDescriptor spec)=0
Add a new id descriptor to the detector description.
dd4hep::Detector::removeUserExtension
virtual void * removeUserExtension(unsigned long long int key, bool destroy)=0
Remove an existing extension object from the Detector instance.
dd4hep::Detector::add
virtual Detector & add(CartesianField entry)=0
Add a field component to the detector description.
dd4hep::versionString
std::string versionString()
return a string with the current dd4hep version in the form vXX-YY.
Definition: DetectorImp.cpp:139
dd4hep::Detector::PropertyValues
std::map< std::string, std::string > PropertyValues
Definition: Detector.h:94
dd4hep::Handle< NamedObject >
dd4hep::Detector::region
virtual Region region(const std::string &name) const =0
Retrieve a region object by its name from the detector description.
dd4hep::Detector::add
virtual Detector & add(LimitSet limitset)=0
Add a new limit set to the detector description.
dd4hep::Detector::readouts
virtual const HandleMap & readouts() const =0
Accessor to the map of readout structures.
dd4hep::Detector::constantAsDouble
virtual double constantAsDouble(const std::string &name) const =0
Typed access to constants: double values.
dd4hep::STD_Conditions::USER_SET
@ USER_SET
Definition: Detector.h:64
dd4hep::Detector::pickMotherVolume
virtual Volume pickMotherVolume(const DetElement &sd) const =0
Access mother volume by detector element.
dd4hep::Detector::fields
virtual const HandleMap & fields() const =0
Accessor to the map of field entries, which together form the global field.
dd4hep::Detector::add
virtual Detector & add(DetElement detector)=0
Add a new subdetector to the detector description.
dd4hep::Detector::worldVolume
virtual Volume worldVolume() const =0
Return handle to the world volume containing everything.
dd4hep::Detector::addUserExtension
virtual void * addUserExtension(unsigned long long int key, ExtensionEntry *entry)=0
Add an extension object to the detector element (low level member function)
dd4hep::Detector::fromXML
virtual void fromXML(const std::string &fname, xml::UriReader *entity_resolver, DetectorBuildType type=BUILD_DEFAULT)=0
Read any geometry description or alignment file with external XML entity resolution.
dd4hep::Detector::volumeManager
virtual VolumeManager volumeManager() const =0
Return handle to the VolumeManager.
dd4hep::Detector::idSpecification
virtual IDDescriptor idSpecification(const std::string &name) const =0
Retrieve a id descriptor by its name from the detector description.
dd4hep::Detector::userExtension
virtual void * userExtension(unsigned long long int key, bool alert=true) const =0
Access an existing extension object from the detector element (low level member function)
dd4hep::Detector::addVisAttribute
virtual Detector & addVisAttribute(const Handle< NamedObject > &element)=0
Add a new visualisation attribute by named reference to the detector description.
dd4hep::OverlayedField
Class describing a field overlay with several sources.
Definition: Fields.h:138
VolumeManager.h
dd4hep::Detector::addField
virtual Detector & addField(const Handle< NamedObject > &field)=0
Add a field component by named reference to the detector description.
dd4hep::Detector::addLimitSet
virtual Detector & addLimitSet(const Handle< NamedObject > &limset)=0
Add a new limit set by named reference to the detector description.
dd4hep::Material
Handle class describing a material.
Definition: Objects.h:272
dd4hep::Detector::addConstant
virtual Detector & addConstant(const Handle< NamedObject > &element)=0
Add a new constant by named reference to the detector description.
dd4hep::STD_Conditions::temperature
double temperature
Definition: Detector.h:69
dd4hep::Detector::material
virtual Material material(const std::string &name) const =0
Retrieve a matrial by its name from the detector description.
dd4hep::Detector::trackers
virtual DetElement trackers() const =0
Return reference to detector element with all tracker devices.
dd4hep::Detector::setTrackingVolume
virtual void setTrackingVolume(Volume vol)=0
Set the tracking volume of the detector.
dd4hep::Detector::getInstance
static Detector & getInstance(const std::string &name="default")
—Factory method----—
Definition: DetectorImp.cpp:150
dd4hep::Detector::constants
virtual const HandleMap & constants() const =0
Accessor to the map of constants.
dd4hep::STD_Conditions
Helper class to access default temperature and pressure.
Definition: Detector.h:58
dd4hep::DetElement
Handle class describing a detector element.
Definition: DetElement.h:188
dd4hep::Detector::add
virtual Detector & add(Readout readout)=0
Add a new detector readout to the detector description.
dd4hep::Detector::add
virtual Detector & add(Region region)=0
Add a new detector region to the detector description.
dd4hep::Detector::air
virtual Material air() const =0
Return handle to material describing air.
dd4hep::Constant
Handle class describing a constant (define) object in description.
Definition: Objects.h:209
dd4hep::Volume
Handle class holding a placed volume (also called physical volume)
Definition: Volumes.h:378
dd4hep::Detector::addSensitiveDetector
virtual Detector & addSensitiveDetector(const Handle< NamedObject > &element)=0
Add a new sensitive detector by named reference to the detector description.
dd4hep::VolumeManager
Class to support the retrieval of detector elements and volumes given a valid identifier.
Definition: VolumeManager.h:135
Readout.h
dd4hep::Detector::apply
virtual long apply(const char *factory, int argc, char **argv) const =0
Manipulate geometry using factory converter.
dd4hep::Detector::regions
virtual const HandleMap & regions() const =0
Accessor to the map of region settings.
dd4hep::Detector::field
virtual OverlayedField field() const =0
Return handle to the combined electromagentic field description.
dd4hep::Detector::init
virtual void init()=0
Initialize geometry.
dd4hep::detail::DeleteExtension
Implementation class for the object extension mechanism.
Definition: ExtensionEntry.h:122
dd4hep::LimitSet
Handle class describing a set of limits as they are used for simulation.
Definition: Objects.h:425
OpticalSurfaceManager.h
dd4hep::Detector::sensitiveDetector
virtual SensitiveDetector sensitiveDetector(const std::string &name) const =0
Retrieve a sensitive detector by its name from the detector description.
dd4hep::xml
Namespace for the AIDA detector description toolkit supporting XML utilities.
Definition: ConditionsTags.h:27
dd4hep::Detector::constantAsString
virtual std::string constantAsString(const std::string &name) const =0
Typed access to constants: access string values.
dd4hep::Detector::destroyInstance
static void destroyInstance(const std::string &name="default")
Destroy the singleton instance.
Definition: DetectorImp.cpp:162
dd4hep::Detector::surfaceManager
virtual OpticalSurfaceManager surfaceManager() const =0
Access the optical surface manager.
dd4hep::Detector::endDocument
virtual void endDocument(bool close_geometry=true)=0
Finalize the geometry.
dd4hep::Detector::stdConditions
virtual const STD_Conditions & stdConditions() const =0
Access default conditions (temperature and pressure.
dd4hep::Detector::limitsets
virtual const HandleMap & limitsets() const =0
Accessor to the map of limit settings.
dd4hep::Region
Handle class describing a region as used in simulation.
Definition: Objects.h:462
dd4hep::Detector::detectorTypes
virtual std::vector< std::string > detectorTypes() const =0
Access the availible detector types.
dd4hep::Detector::sensitiveDetectors
virtual const HandleMap & sensitiveDetectors() const =0
Accessor to the map of sub-detectors.
Shapes.h
dd4hep::Header
Handle class describing the basic information about geometry objects as it is defined in Detector.
Definition: Objects.h:158
NamedObject.h
dd4hep::STD_Conditions::is_NTP
bool is_NTP() const
Definition: Detector.h:71
dd4hep::Detector::make_unique
static std::unique_ptr< Detector > make_unique(const std::string &name)
Unique creation without internal registration.
Definition: DetectorImp.cpp:145
BuildType.h
dd4hep::Detector::fromCompact
virtual void fromCompact(const std::string &fname, DetectorBuildType type=BUILD_DEFAULT)=0
Deprecated call (use fromXML): Read compact geometry description or alignment file.
dd4hep::Detector::limitSet
virtual LimitSet limitSet(const std::string &name) const =0
Retrieve a limitset by its name from the detector description.
dd4hep::Detector::add
virtual Detector & add(VisAttr attr)=0
Add a new visualisation attribute to the detector description.
dd4hep::Detector::add
virtual Detector & add(Constant constant)=0
Add a new constant to the detector description.
dd4hep::Detector::trackingVolume
virtual Volume trackingVolume() const =0
Return handle to the volume containing the tracking devices.
dd4hep::Detector::visAttributes
virtual VisAttr visAttributes(const std::string &name) const =0
Retrieve a visualization attribute by its name from the detector description.
dd4hep::Detector::invisible
virtual VisAttr invisible() const =0
Return handle to "invisible" visualization attributes.
dd4hep::Detector::visAttributes
virtual const HandleMap & visAttributes() const =0
Accessor to the map of visualisation attributes.
dd4hep::Detector::state
virtual State state() const =0
Access the state of the geometry.
dd4hep::xml::UriReader
Class supporting to read data given a URI.
Definition: UriReader.h:35
dd4hep::Detector::HandleMap
std::map< std::string, Handle< NamedObject > > HandleMap
Type definition of a map of named handles.
Definition: Detector.h:93
dd4hep::Detector::NOT_READY
@ NOT_READY
The detector description object is freshly created. No geometry nothing.
Definition: Detector.h:100
dd4hep::Detector::add
virtual Detector & add(SensitiveDetector entry)=0
Add a new sensitive detector to the detector description.
dd4hep::STD_Conditions::USER_NOTIFIED
@ USER_NOTIFIED
Definition: Detector.h:65
key
unsigned char key
Definition: AlignmentsCalculator.cpp:69
dd4hep::Detector::buildType
virtual DetectorBuildType buildType() const =0
Access flag to steer the detail of building of the geometry/detector description.
dd4hep::Detector::~Detector
virtual ~Detector()=default
Destructor.
DetElement.h
dd4hep::Detector::constant
virtual Constant constant(const std::string &name) const =0
Retrieve a constant by its name from the detector description.
dd4hep::Detector::constantAsLong
virtual long constantAsLong(const std::string &name) const =0
Typed access to constants: long values.
dd4hep::STD_Conditions::convention
long convention
Definition: Detector.h:70
dd4hep::Detector::extension
IFACE * extension(bool alert=true) const
Access extension element by the type.
Definition: Detector.h:342
dd4hep::DetectorBuildType
DetectorBuildType
Detector description build types.
Definition: BuildType.h:34
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
det
DetElement::Object * det
Definition: AlignmentsCalculator.cpp:66
dd4hep::STD_Conditions::pressure
double pressure
Definition: Detector.h:68
dd4hep::Detector::constant
T constant(const std::string &name) const
Typed access to constants: access any type values.
dd4hep::Detector::fromXML
virtual void fromXML(const std::string &fname, DetectorBuildType type=BUILD_DEFAULT)=0
Read any geometry description or alignment file.
dd4hep::Detector::addDetector
virtual Detector & addDetector(const Handle< NamedObject > &detector)=0
Add a new subdetector by named reference to the detector description.
dd4hep::Detector
The main interface to the dd4hep detector description package.
Definition: Detector.h:90
dd4hep::STD_Conditions::is_user_defined
bool is_user_defined() const
Definition: Detector.h:73
dd4hep::Readout
Handle to the implementation of the readout structure of a subdetector.
Definition: Readout.h:38
dd4hep::Detector::setStdConditions
virtual void setStdConditions(double temp, double pressure)=0
Set the STD temperature and pressure.
dd4hep::STD_Conditions::STP
@ STP
Definition: Detector.h:61
dd4hep::BUILD_DEFAULT
@ BUILD_DEFAULT
Definition: BuildType.h:36
dd4hep::Detector::field
virtual CartesianField field(const std::string &name) const =0
Retrieve a field component by its name from the detector description.
dd4hep::Detector::readout
virtual Readout readout(const std::string &name) const =0
Retrieve a readout object by its name from the detector description.
dd4hep::Detector::idSpecifications
virtual const HandleMap & idSpecifications() const =0
Accessor to the map of ID specifications.
dd4hep::Detector::setStdConditions
virtual void setStdConditions(const std::string &type)=0
Set the STD conditions according to defined types (STP or NTP)
dd4hep::Detector::declareParent
virtual void declareParent(const std::string &detector_name, const DetElement &det)=0
Register new parent detector using the detector name.
dd4hep::Detector::addReadout
virtual Detector & addReadout(const Handle< NamedObject > &readout)=0
Add a new detector readout by named reference to the detector description.
dd4hep::Detector::parallelWorldVolume
virtual Volume parallelWorldVolume() const =0
Return handle to the parallel world volume.
Fields.h
dd4hep::Detector::detectors
virtual std::vector< DetElement > detectors(unsigned int includeFlag, unsigned int excludeFlag=0) const =0
dd4hep::Detector::header
virtual Header header() const =0
Accessor to the map of header entries.
ExtensionEntry.h
dd4hep::Detector::removeExtension
IFACE * removeExtension(bool destroy=true)
Remove an existing extension object from the Detector instance. If not destroyed, the instance is ret...
Definition: Detector.h:337
dd4hep::Detector::READY
@ READY
The geometry is loaded.
Definition: Detector.h:104
dd4hep::OpticalSurfaceManager
Class to support the handling of optical surfaces.
Definition: OpticalSurfaceManager.h:37
dd4hep::Detector::addRegion
virtual Detector & addRegion(const Handle< NamedObject > &region)=0
Add a new detector region by named reference to the detector description.
dd4hep::Detector::properties
virtual Properties & properties() const =0
Access to properties map.
dd4hep::CartesianField
Base class describing any field with 3D cartesian vectors for the field strength.
Definition: Fields.h:40
dd4hep::Detector::detectors
virtual std::vector< DetElement > detectors(const std::string &type1, const std::string &type2, const std::string &type3="", const std::string &type4="", const std::string &type5="")=0
Access a set of subdetectors according to several sensitive types.
dd4hep::STD_Conditions::NTP
@ NTP
Definition: Detector.h:62