DD4hep  1.36.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 <memory>
38 
39 // Forward declarations
40 class TGeoManager;
41 
43 namespace dd4hep {
44 
46  std::string versionString();
47 
48  // Foward declarations
49  class NamedObject;
50 
52  namespace xml {
53  class UriReader;
54  }
55 
58  public:
59  enum Conventions {
60  STP = 1<<0, // Standard temperature and pressure (273.15 Kelvin, 1 ATM)
61  NTP = 1<<1, // Normal temperature and pressure (293.15 Kelvin, 1 ATM)
62  USER = 1<<2, // Explicitly set before materials are defined (recommended)
63  USER_SET = 1<<3,
64  USER_NOTIFIED = 1<<4
65  };
66  public:
67  double pressure;
68  double temperature;
69  long convention;
70  bool is_NTP() const { return (convention&NTP) != 0; }
71  bool is_STP() const { return (convention&STP) != 0; }
72  bool is_user_defined() const { return (convention&USER) != 0; }
73  };
74 
76 
89  class Detector {
90  public:
92  typedef std::map<std::string, Handle<NamedObject> > HandleMap;
93  typedef std::map<std::string, std::string> PropertyValues;
94  typedef std::map<std::string, PropertyValues> Properties;
95 
97  enum State {
99  NOT_READY = 1<<0,
101  LOADING = 1<<1,
103  READY = 1<<2
104  };
105 
107  virtual ~Detector() = default;
108 
110  virtual DetectorBuildType buildType() const = 0;
112  virtual void init() = 0;
114  virtual void endDocument(bool close_geometry = true) = 0;
116  virtual void endDocument(const char* option) = 0;
117 
119  virtual State state() const = 0;
121  virtual TGeoManager& manager() const = 0;
123  virtual Properties& properties() const = 0;
125  virtual Material air() const = 0;
127  virtual Material vacuum() const = 0;
129  virtual VisAttr invisible() const = 0;
130 
132  virtual DetElement world() const = 0;
134  virtual DetElement trackers() const = 0;
135 
137  virtual Volume worldVolume() const = 0;
139  virtual Volume parallelWorldVolume() const = 0;
141  virtual Volume trackingVolume() const = 0;
143  virtual void setTrackingVolume(Volume vol) = 0;
144 
146  virtual VolumeManager volumeManager() const = 0;
147 
150 
152  virtual const STD_Conditions& stdConditions() const = 0;
154  virtual void setStdConditions(double temp, double pressure) = 0;
156  virtual void setStdConditions(const std::string& type) = 0;
157 
158 
160  virtual Header header() const = 0;
162  virtual void setHeader(Header h) = 0;
163 
165  virtual OverlayedField field() const = 0;
166 
168  virtual const HandleMap& constants() const = 0;
170  virtual const HandleMap& regions() const = 0;
172  virtual const HandleMap& detectors() const = 0;
174  virtual const HandleMap& sensitiveDetectors() const = 0;
176  virtual const HandleMap& readouts() const = 0;
178  virtual const HandleMap& visAttributes() const = 0;
180  virtual const HandleMap& limitsets() const = 0;
182  virtual const HandleMap& fields() const = 0;
184  virtual const HandleMap& idSpecifications() const = 0;
185 
186 #ifndef __MAKECINT__
187 
188 
197  virtual const std::vector<DetElement>& detectors(const std::string& type,
198  bool throw_exc=false) const = 0;
199 
201  virtual std::vector<DetElement> detectors(const std::string& type1,
202  const std::string& type2,
203  const std::string& type3="",
204  const std::string& type4="",
205  const std::string& type5="" ) = 0;
206 
208  virtual std::vector<std::string> detectorTypes() const = 0;
209 
210 
214  virtual std::vector<DetElement> detectors(unsigned int includeFlag,
215  unsigned int excludeFlag=0 ) const = 0 ;
216 #endif
217 
220 
228  virtual void declareParent(const std::string& detector_name, const DetElement& det) = 0;
229 
231 
234  virtual Volume pickMotherVolume(const DetElement& sd) const = 0;
235 
237  virtual std::string constantAsString(const std::string& name) const = 0;
239  virtual long constantAsLong(const std::string& name) const = 0;
241  virtual double constantAsDouble(const std::string& name) const = 0;
242 
244  virtual Constant constant(const std::string& name) const = 0;
246  template <class T> T constant(const std::string& name) const;
247 
249  virtual Material material(const std::string& name) const = 0;
251  virtual IDDescriptor idSpecification(const std::string& name) const = 0;
253  virtual Region region(const std::string& name) const = 0;
255  virtual VisAttr visAttributes(const std::string& name) const = 0;
257  virtual LimitSet limitSet(const std::string& name) const = 0;
259  virtual Readout readout(const std::string& name) const = 0;
261  virtual SensitiveDetector sensitiveDetector(const std::string& name) const = 0;
263  virtual CartesianField field(const std::string& name) const = 0;
265  virtual DetElement detector(const std::string& name) const = 0;
266 
268  virtual Detector& add(Constant constant) = 0;
270  virtual Detector& add(VisAttr attr) = 0;
272  virtual Detector& add(LimitSet limitset) = 0;
274  virtual Detector& add(Region region) = 0;
276  virtual Detector& add(IDDescriptor spec) = 0;
278  virtual Detector& add(Readout readout) = 0;
280  virtual Detector& add(SensitiveDetector entry) = 0;
284  virtual Detector& add(CartesianField entry) = 0;
285 
287  virtual Detector& addConstant(const Handle<NamedObject>& element) = 0;
289  virtual Detector& addVisAttribute(const Handle<NamedObject>& element) = 0;
291  virtual Detector& addLimitSet(const Handle<NamedObject>& limset) = 0;
293  virtual Detector& addIDSpecification(const Handle<NamedObject>& element) = 0;
299  virtual Detector& addSensitiveDetector(const Handle<NamedObject>& element) = 0;
304 
306  virtual void fromCompact(const std::string& fname,
307  DetectorBuildType type = BUILD_DEFAULT) = 0;
309  virtual void fromXML (const std::string& fname,
310  DetectorBuildType type = BUILD_DEFAULT) = 0;
312  virtual void fromXML (const std::string& fname,
313  xml::UriReader* entity_resolver,
314  DetectorBuildType type = BUILD_DEFAULT) = 0;
315 
317  virtual void dump() const = 0;
319  virtual long apply(const char* factory, int argc, char** argv) const = 0;
320 
322  virtual void* addUserExtension(unsigned long long int key, ExtensionEntry* entry) = 0;
323 
325 
326  virtual void* removeUserExtension(unsigned long long int key, bool destroy) = 0;
327 
329  virtual void* userExtension(unsigned long long int key, bool alert=true) const = 0;
330 
332  template <typename IFACE, typename CONCRETE> IFACE* addExtension(CONCRETE* c) {
333  return (IFACE*) addUserExtension(detail::typeHash64<IFACE>(),
335  }
336 
338  template <class IFACE> IFACE* removeExtension(bool destroy=true) {
339  return (IFACE*) removeUserExtension(detail::typeHash64<IFACE>(),destroy);
340  }
341 
343  template <class IFACE> IFACE* extension(bool alert=true) const {
344  return (IFACE*) userExtension(detail::typeHash64<IFACE>(),alert);
345  }
346 
348  static Detector& getInstance(const std::string& name="default");
350  static void destroyInstance(const std::string& name="default");
352  static std::unique_ptr<Detector> make_unique(const std::string& name);
353 
354  };
355 
356  /*
357  * The following are convenience implementations to access constants by type.
358  * I do not think this violates the interface approach, but it is so much
359  * more intuitiv to say constant<int>(name) than constantAsInt(name).
360  */
361 #ifndef __CINT__
362  template <> inline short Detector::constant<short>(const std::string& name) const {
364  return (short) constantAsLong(name);
365  }
366 
368  template <> inline unsigned short Detector::constant<unsigned short>(const std::string& name) const {
369  return (unsigned short) constantAsLong(name);
370  }
371 
373  template <> inline int Detector::constant<int>(const std::string& name) const {
374  return (int) constantAsLong(name);
375  }
376 
378  template <> inline unsigned int Detector::constant<unsigned int>(const std::string& name) const {
379  return (unsigned int) constantAsLong(name);
380  }
381 
383  template <> inline long Detector::constant<long>(const std::string& name) const {
384  return constantAsLong(name);
385  }
386 
388  template <> inline unsigned long Detector::constant<unsigned long>(const std::string& name) const {
389  return (unsigned long) constantAsLong(name);
390  }
391 
393  template <> inline float Detector::constant<float>(const std::string& name) const {
394  return (float) constantAsDouble(name);
395  }
396 
398  template <> inline double Detector::constant<double>(const std::string& name) const {
399  return constantAsDouble(name);
400  }
401 
403  template <> inline std::string Detector::constant<std::string>(const std::string& name) const {
404  return constantAsString(name);
405  }
406 #endif
407 } /* End namespace dd4hep */
408 #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:332
dd4hep::Detector::State
State
The detector description states.
Definition: Detector.h:97
dd4hep::STD_Conditions::is_STP
bool is_STP() const
Definition: Detector.h:71
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:101
dd4hep::ExtensionEntry
Definition of the extension entry interface class.
Definition: ExtensionEntry.h:37
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:43
dd4hep::Detector::Properties
std::map< std::string, PropertyValues > Properties
Definition: Detector.h:94
dd4hep::Detector::vacuum
virtual Material vacuum() const =0
Return handle to material describing vacuum.
dd4hep::VisAttr
Handle class describing visualization attributes.
Definition: Objects.h:323
dd4hep::Detector::detectors
virtual const HandleMap & detectors() const =0
Accessor to the map of sub-detectors.
dd4hep::STD_Conditions::Conventions
Conventions
Definition: Detector.h:59
dd4hep::STD_Conditions::USER
@ USER
Definition: Detector.h:62
dd4hep::IDDescriptor
Class implementing the ID encoding of the detector response.
Definition: IDDescriptor.h:36
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:122
dd4hep::Detector::PropertyValues
std::map< std::string, std::string > PropertyValues
Definition: Detector.h:93
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:63
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:271
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:68
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:132
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:57
dd4hep::DetElement
Handle class describing a detector element.
Definition: DetElement.h:187
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:208
dd4hep::Volume
Handle class holding a placed volume (also called physical volume)
Definition: Volumes.h:371
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:120
dd4hep::LimitSet
Handle class describing a set of limits as they are used for simulation.
Definition: Objects.h:424
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:144
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:461
dd4hep::Detector::detectorTypes
virtual std::vector< std::string > detectorTypes() const =0
Access the available 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:157
NamedObject.h
dd4hep::STD_Conditions::is_NTP
bool is_NTP() const
Definition: Detector.h:70
dd4hep::Detector::make_unique
static std::unique_ptr< Detector > make_unique(const std::string &name)
Unique creation without internal registration.
Definition: DetectorImp.cpp:128
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:92
dd4hep::Detector::NOT_READY
@ NOT_READY
The detector description object is freshly created. No geometry nothing.
Definition: Detector.h:99
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:64
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:69
dd4hep::Detector::extension
IFACE * extension(bool alert=true) const
Access extension element by the type.
Definition: Detector.h:343
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:67
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:89
dd4hep::STD_Conditions::is_user_defined
bool is_user_defined() const
Definition: Detector.h:72
dd4hep::Readout
Handle to the implementation of the readout structure of a subdetector.
Definition: Readout.h:38
dd4hep::Detector::endDocument
virtual void endDocument(const char *option)=0
Finalize the geometry.
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:60
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:338
dd4hep::Detector::READY
@ READY
The geometry is loaded.
Definition: Detector.h:103
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:61