DD4hep  1.31.0
Detector Description Toolkit for High Energy Physics
Objects.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_OBJECTS_H
14 #define DD4HEP_OBJECTS_H
15 
16 // Framework include files
17 #include <DD4hep/Handle.h>
18 #include <DD4hep/NamedObject.h>
19 
20 // Forward declarations
21 class TMap;
22 class TGeoElement;
23 class TGeoMaterial;
24 class TGeoMedium;
25 class TGeoMatrix;
26 class TGeoRotation;
27 class TGeoTranslation;
28 class TGeoPhysicalNode;
29 class TGeoIdentity;
30 
31 #ifdef __GNUC__
32 #pragma GCC diagnostic push
33 #pragma GCC diagnostic ignored "-Wdeprecated" // Code that causes warning goes here
34 #endif
35 // ROOT include files
36 #include <Math/Vector3D.h>
37 #include <Math/Transform3D.h>
38 #include <Math/Translation3D.h>
39 #include <Math/RotationX.h>
40 #include <Math/RotationY.h>
41 #include <Math/RotationZ.h>
42 #include <Math/Rotation3D.h>
43 #include <Math/RotationZYX.h>
44 #include <Math/EulerAngles.h>
45 #include <Math/VectorUtil.h>
46 #include <TGeoElement.h>
47 #include <TGeoMaterial.h>
48 #include <TGeoMedium.h>
49 #include <TGeoPhysicalNode.h>
50 #include <TGDMLMatrix.h>
51 
52 #ifdef __GNUC__
53 #pragma GCC diagnostic pop
54 #endif
55 
56 // C/C++ include files
57 #include <set>
58 #include <cmath>
59 #include <vector>
60 
61 #define _USE_MATH_DEFINES
62 #ifndef M_PI
63 #define M_PI 3.14159265358979323846
64 #endif
65 
67 namespace dd4hep {
68 
69  // Forward declarations
70  class Detector;
71  class IDDescriptor;
72  class VisAttrObject;
73  class HeaderObject;
74  class ConstantObject;
75  class RegionObject;
76  class LimitSetObject;
77 
78  typedef ROOT::Math::RhoZPhiVector PositionRhoZPhi;
79  typedef ROOT::Math::Polar3DVector PositionPolar;
80  typedef ROOT::Math::XYZVector Position;
81  typedef ROOT::Math::XYZVector Direction;
82  typedef ROOT::Math::XYZVector XYZAngles;
83 
84  template <class V> V RotateX(const V& v, double a) {
86  }
87  template <class V> V RotateY(const V& v, double a) {
89  }
90  template <class V> V RotateZ(const V& v, double a) {
92  }
93 
119 
120 
122 
127  class Author: public Ref_t {
128  public:
130  Author() = default;
132  Author(const Author& e) = default;
134  template <typename Q> Author(const Handle<Q>& e) : Ref_t(e) { }
136  Author(Detector& doc);
138  Author& operator=(const Author& e) = default;
140  std::string authorName() const;
142  void setAuthorName(const std::string& nam);
144  std::string authorEmail() const;
146  void setAuthorEmail(const std::string& addr);
147  };
148 
150 
157  class Header: public Handle<HeaderObject> {
158  public:
160  Header() = default;
162  Header(const Header& copy) = default;
164  template <typename Q> Header(const Handle<Q>& e) : Handle<HeaderObject>(e) { }
166  Header(const std::string& author, const std::string& url);
168  Header& operator=(const Header& copy) = default;
170  const std::string name() const;
172  void setName(const std::string& new_name);
174  const std::string title() const;
176  void setTitle(const std::string& new_title);
178  const std::string& author() const;
180  void setAuthor(const std::string& new_author);
182  const std::string& url() const;
184  void setUrl(const std::string& new_url);
186  const std::string& status() const;
188  void setStatus(const std::string& new_status);
190  const std::string& version() const;
192  void setVersion(const std::string& new_version);
194  const std::string& comment() const;
196  void setComment(const std::string& new_comment);
197  };
198 
200 
208  class Constant: public Handle<ConstantObject> {
209  public:
211  Constant() = default;
213  Constant(const Constant& copy) = default;
215  template <typename Q> Constant(const Handle<Q>& e) : Handle<ConstantObject> (e) { }
217  Constant(const std::string& name);
219  Constant(const std::string& name, const std::string& val, const std::string& typ="number");
221  Constant& operator=(const Constant& copy) = default;
223  bool operator==(const Constant& rhs) const {
224  return m_element == rhs.m_element;
225  }
227  std::string dataType() const;
229  std::string toString() const;
230  };
231 
233 
241  class Atom: public Handle<TGeoElement> {
242  public:
244  Atom() = default;
246  Atom(const Atom& copy) = default;
248  Atom(Object* e) : Handle<Object>(e) { }
249 #ifndef __CINT__
250  Atom(const Handle<Object>& e) : Handle<Object>(e) { }
252 #endif
253  template <typename Q> Atom(const Handle<Q>& e) : Handle<Object>(e) { }
256  Atom(const std::string& name, const std::string& formula, int Z, int N, double density);
258  Atom& operator=(const Atom& copy) = default;
259  };
260 
262 
271  class Material: public Handle<TGeoMedium> {
272  public:
273  typedef const TGDMLMatrix* Property;
274 
275  public:
277  Material() = default;
279  Material(const Material& copy) = default;
281  Material(Object* e) : Handle<Object>(e) { }
282 #ifndef __CINT__
283  Material(const Handle<Object>& e) : Handle<Object>(e) { }
285 #endif
286  template <typename Q> Material(const Handle<Q>& e) : Handle<Object>(e) { }
289  Material& operator=(const Material& copy) = default;
291  double Z() const ;
293  double A() const ;
295  double density() const ;
297  std::string toString() const;
299  double radLength() const;
301  double intLength() const;
303  double fraction(Atom atom) const;
305  Property property(const char* name) const;
307  Property property(const std::string& name) const;
309  std::string propertyRef(const std::string& name, const std::string& default_value="");
311  double constProperty(const std::string& name) const;
313  std::string constPropertyRef(const std::string& name, const std::string& default_value="");
314  };
315 
317 
323  class VisAttr: public Handle<VisAttrObject> {
324  public:
325  enum Style {
326  SOLID = 0x1, WIREFRAME = 0x2, DASHED = 0x2, LAST_STYLE
327  };
329  VisAttr() = default;
331  VisAttr(const VisAttr& e) = default;
332 #ifndef __CINT__
333  VisAttr(const Handle<Object>& e) : Handle<Object>(e) { }
335 #endif
336  template <typename Q> VisAttr(const Handle<Q>& e) : Handle<Object>(e) { }
339  VisAttr(const std::string& name);
341  VisAttr(const char* name);
343  VisAttr& operator=(const VisAttr& attr) = default;
344 
346  bool showDaughters() const;
348  void setShowDaughters(bool value);
349 
351  bool visible() const;
353  void setVisible(bool value);
354 
356  int lineStyle() const;
358  void setLineStyle(int style);
359 
361  int drawingStyle() const;
363  void setDrawingStyle(int style);
364 
366  float alpha() const;
367 
369  int color() const;
371  void setColor(float alpha, float red, float green, float blue);
372 
374  bool rgb(float& red, float& green, float& blue) const;
376  bool argb(float& alpha, float& red, float& green, float& blue) const;
377 
379  std::string toString() const;
380  };
381 
383 
388  class Limit {
389  public:
391  std::string particles;
393  std::string name;
395  std::string unit;
397  std::string content;
399  double value = 0.0;
400  public:
402  Limit() = default;
404  Limit(const Limit& c) = default;
406  Limit& operator=(const Limit& c) = default;
408  bool operator==(const Limit& c) const;
410  bool operator<(const Limit& c) const;
412  std::string toString() const;
413  };
414 
416 
424  class LimitSet: public Handle<LimitSetObject> {
425  public:
427  typedef std::set<Limit> Set;
428  typedef std::set<Limit>::iterator iterator;
429  typedef std::set<Limit>::const_iterator const_iterator;
430  public:
432  LimitSet() = default;
434  LimitSet(const LimitSet& e) = default;
435 #ifndef __CINT__
438 #endif
439  template <typename Q> LimitSet(const Handle<Q>& e) : Handle<LimitSetObject>(e) { }
442  LimitSet& operator=(const LimitSet& c) = default;
444  LimitSet(const std::string& name);
446  bool addLimit(const Limit& limit);
448  const std::set<Limit>& limits() const;
450  bool addCut(const Limit& limit);
452  const std::set<Limit>& cuts() const;
453  };
454 
456 
461  class Region: public Handle<RegionObject> {
462  public:
464  Region() = default;
466  Region(const Region& e) = default;
467 #ifndef __CINT__
468  Region(const Handle<RegionObject>& e) : Handle<Object>(e) { }
470 #endif
471  template <typename Q> Region(const Handle<Q>& e) : Handle<Object>(e) { }
474  Region(const std::string& name);
476  Region& operator=(const Region& c) = default;
477 
479  Region& setStoreSecondaries(bool value);
481  Region& setThreshold(double value);
483  Region& setCut(double value);
485  Region& setCut(double value, const std::string& particle);
486 
488  std::vector<std::string>& limits() const;
489 
491  double cut() const;
493  double threshold() const;
495  bool storeSecondaries() const;
497  bool useDefaultCut() const;
499  bool wasThresholdSet() const;
500  };
501 
502 } /* End namespace dd4hep */
503 
504 #include <Math/Vector4D.h>
505 #include <Math/Point3D.h>
506 
507 namespace ROOT {
508  namespace Math {
510  inline double operator *(const dd4hep::Position& l, const dd4hep::Position& r) {
511  return std::sqrt(l.X() * r.X() + l.Y() * r.Y() + l.Z() * r.Z());
512  }
514  inline double mean_length(const dd4hep::Position& p1, const dd4hep::Position& p2) {
515  return 0.5 * (p1.R() + p2.R()) / 2.0;
516  }
519  return 0.5 * (p1 + p2);
520  }
521 
522  // These operators are used for component properties.
523  // The implementation is in the parsers, but since the parsers
524  // do not have public include files, they are defined here.
525 
527  bool operator<(const XYZPoint& a, const XYZPoint& b);
529  bool operator<(const XYZVector& a, const XYZVector& b);
531  bool operator<(const PxPyPzEVector& a, const PxPyPzEVector& b);
532  }
533 }
534 #endif // DD4HEP_OBJECTS_H
dd4hep::Material::operator=
Material & operator=(const Material &copy)=default
Assignment operator.
dd4hep::Header::setAuthor
void setAuthor(const std::string &new_author)
Accessor: set object author.
Definition: Objects.cpp:102
dd4hep::Author::setAuthorEmail
void setAuthorEmail(const std::string &addr)
Set the author's email address.
Definition: Objects.cpp:56
dd4hep::Author::Author
Author(const Author &e)=default
Constructorto be used for assignment from a handle.
dd4hep::Limit::operator=
Limit & operator=(const Limit &c)=default
Assignment operator.
dd4hep::Constant::operator=
Constant & operator=(const Constant &copy)=default
Copy assignment.
dd4hep::Limit::operator==
bool operator==(const Limit &c) const
Equality operator.
Definition: Objects.cpp:427
dd4hep::Material::Material
Material()=default
Default constructor.
dd4hep::VisAttr::color
int color() const
Get object color.
Definition: Objects.cpp:375
dd4hep::Header::comment
const std::string & comment() const
Accessor to object comment.
Definition: Objects.cpp:127
dd4hep::LimitSet::cuts
const std::set< Limit > & cuts() const
Accessor to limits container.
Definition: Objects.cpp:475
dd4hep::LimitSet::const_iterator
std::set< Limit >::const_iterator const_iterator
Definition: Objects.h:429
dd4hep::Atom
Handle class describing an element in the periodic table.
Definition: Objects.h:241
dd4hep::Material::toString
std::string toString() const
String representation of this object.
Definition: Objects.cpp:293
dd4hep::VisAttr::argb
bool argb(float &alpha, float &red, float &green, float &blue) const
Get alpha and RGB values of the color (if valid)
Definition: Objects.cpp:405
dd4hep::HeaderObject
Concrete object implementation for the Header handle.
Definition: ObjectsInterna.h:39
dd4hep::Constant::Constant
Constant(const Constant &copy)=default
Constructor to be used for assignment from a handle.
dd4hep::Header::setStatus
void setStatus(const std::string &new_status)
Accessor: set object status.
Definition: Objects.cpp:112
dd4hep::Region::wasThresholdSet
bool wasThresholdSet() const
Access was_threshold_set flag.
Definition: Objects.cpp:532
dd4hep::Header::operator=
Header & operator=(const Header &copy)=default
Assignment operator.
dd4hep::Constant::Constant
Constant(const Handle< Q > &e)
Constructor to be used when reading the already parsed DOM tree.
Definition: Objects.h:215
v
View * v
Definition: MultiView.cpp:28
dd4hep::Author::Author
Author(const Handle< Q > &e)
Constructor to be used when assigning already valid handle.
Definition: Objects.h:134
dd4hep::Handle< TGeoElement >::Object
TGeoElement Object
Extern accessible definition of the contained element type.
Definition: Handle.h:86
dd4hep::Header::title
const std::string title() const
Accessor to object title.
Definition: Objects.cpp:77
dd4hep::Limit::particles
std::string particles
Particle the limit should be applied to.
Definition: Objects.h:391
dd4hep::XYZAngles
ROOT::Math::XYZVector XYZAngles
Definition: Objects.h:82
dd4hep::Material::property
Property property(const char *name) const
Access to tabular properties of the material.
Definition: Objects.cpp:258
dd4hep::Author::Author
Author()=default
Default constructor.
dd4hep::Material::Property
const TGDMLMatrix * Property
Definition: Objects.h:273
dd4hep::VisAttr::toString
std::string toString() const
String representation of this object.
Definition: Objects.cpp:416
dd4hep::Region::setStoreSecondaries
Region & setStoreSecondaries(bool value)
Set flag to store secondaries.
Definition: Objects.cpp:491
dd4hep::VisAttr
Handle class describing visualization attributes.
Definition: Objects.h:323
dd4hep::Region::storeSecondaries
bool storeSecondaries() const
Access secondaries flag.
Definition: Objects.cpp:524
dd4hep::Region::setCut
Region & setCut(double value)
Set default production cut.
Definition: Objects.cpp:502
dd4hep::Region::Region
Region()=default
Default constructor.
dd4hep::LimitSet::limits
const std::set< Limit > & limits() const
Accessor to limits container.
Definition: Objects.cpp:463
dd4hep::Header::setComment
void setComment(const std::string &new_comment)
Accessor: set object comment.
Definition: Objects.cpp:132
dd4hep::Limit
Small object describing a limit structure acting on a particle type.
Definition: Objects.h:388
dd4hep::Limit::toString
std::string toString() const
Conversion to a string representation.
Definition: Objects.cpp:443
Handle.h
dd4hep::Author
Handle class describing an author entity.
Definition: Objects.h:127
dd4hep::VisAttr::setShowDaughters
void setShowDaughters(bool value)
Set Flag to show/hide daughter elements.
Definition: Objects.cpp:335
dd4hep::Material::constPropertyRef
std::string constPropertyRef(const std::string &name, const std::string &default_value="")
Access string property value from the material table.
Definition: Objects.cpp:285
dd4hep::Handle< NamedObject >
dd4hep::Atom::operator=
Atom & operator=(const Atom &copy)=default
Assignment operator.
dd4hep::Rotation3D
ROOT::Math::Rotation3D Rotation3D
Definition: Objects.h:112
dd4hep::VisAttr::setLineStyle
void setLineStyle(int style)
Set line style.
Definition: Objects.cpp:355
dd4hep::Material::propertyRef
std::string propertyRef(const std::string &name, const std::string &default_value="")
Access string property value from the material table.
Definition: Objects.cpp:268
dd4hep::Region::operator=
Region & operator=(const Region &c)=default
Assignment operator.
dd4hep::PositionPolar
ROOT::Math::Polar3DVector PositionPolar
Definition: Objects.h:79
dd4hep::RotateZ
V RotateZ(const V &v, double a)
Definition: Objects.h:90
dd4hep::Header::url
const std::string & url() const
Accessor to object url.
Definition: Objects.cpp:87
dd4hep::Direction
Position Direction
Definition: Fields.h:28
dd4hep::Handle< ConstantObject >::name
const char * name() const
Access the object name (or "" if not supported by the object)
dd4hep::Header::setUrl
void setUrl(const std::string &new_url)
Accessor: set object url.
Definition: Objects.cpp:92
dd4hep::Region::limits
std::vector< std::string > & limits() const
Access references to user limits.
Definition: Objects.cpp:509
dd4hep::LimitSet::LimitSet
LimitSet(const LimitSet &e)=default
Copy constructor for handle.
dd4hep::Material::intLength
double intLength() const
Access the interaction length of the underlying material.
Definition: Objects.cpp:220
dd4hep::Material::A
double A() const
atomic number of the underlying material
Definition: Objects.cpp:187
dd4hep::Material::fraction
double fraction(Atom atom) const
Access the fraction of an element within the material.
Definition: Objects.cpp:231
dd4hep::VisAttr::Style
Style
Definition: Objects.h:325
dd4hep::RotateY
V RotateY(const V &v, double a)
Definition: Objects.h:87
dd4hep::VisAttr::alpha
float alpha() const
Get alpha value.
Definition: Objects.cpp:370
dd4hep::VisAttr::VisAttr
VisAttr(const VisAttr &e)=default
Copy constructor for handle.
dd4hep::Region::Region
Region(const Region &e)=default
Copy Constructor.
ROOT::Math::operator*
double operator*(const dd4hep::Position &l, const dd4hep::Position &r)
Dot product of 3-vectors.
Definition: Objects.h:510
dd4hep::Region::setCut
Region & setCut(double value, const std::string &particle)
Set particle type specific cut (Geant4 accepts e+, e-, gamma, and proton)
dd4hep::Material::density
double density() const
density of the underlying material
Definition: Objects.cpp:198
dd4hep::Constant::dataType
std::string dataType() const
Access the constant.
Definition: Objects.cpp:147
dd4hep::Header::name
const std::string name() const
Accessor to object name.
Definition: Objects.cpp:67
dd4hep::VisAttr::lineStyle
int lineStyle() const
Get line style.
Definition: Objects.cpp:350
dd4hep::Material
Handle class describing a material.
Definition: Objects.h:271
dd4hep::VisAttr::drawingStyle
int drawingStyle() const
Get drawing style.
Definition: Objects.cpp:360
dd4hep::Constant::operator==
bool operator==(const Constant &rhs) const
Equality operator.
Definition: Objects.h:223
dd4hep::Translation3D
ROOT::Math::Translation3D Translation3D
Definition: Objects.h:118
dd4hep::VisAttr::showDaughters
bool showDaughters() const
Get Flag to show/hide daughter elements.
Definition: Objects.cpp:330
dd4hep::VisAttr::setDrawingStyle
void setDrawingStyle(int style)
Set drawing style.
Definition: Objects.cpp:365
dd4hep::Region::threshold
double threshold() const
Access production threshold.
Definition: Objects.cpp:519
dd4hep::LimitSet::operator=
LimitSet & operator=(const LimitSet &c)=default
Assignment operator.
dd4hep::Handle< TGeoElement >::Handle
Handle()=default
Default constructor.
dd4hep::Constant
Handle class describing a constant (define) object in description.
Definition: Objects.h:208
dd4hep::Author::operator=
Author & operator=(const Author &e)=default
Assignment operator.
dd4hep::Header::setTitle
void setTitle(const std::string &new_title)
Accessor: set object title.
Definition: Objects.cpp:82
dd4hep::VisAttr::setVisible
void setVisible(bool value)
Set visibility flag.
Definition: Objects.cpp:345
dd4hep::LimitSet
Handle class describing a set of limits as they are used for simulation.
Definition: Objects.h:424
dd4hep::Limit::name
std::string name
Limit name.
Definition: Objects.h:393
dd4hep::Author::setAuthorName
void setAuthorName(const std::string &nam)
Set the author's name.
Definition: Objects.cpp:46
dd4hep::VisAttr::DASHED
@ DASHED
Definition: Objects.h:326
dd4hep::RegionObject
Concrete object implementation of the Region Handle.
Definition: ObjectsInterna.h:111
dd4hep::Material::constProperty
double constProperty(const std::string &name) const
Access to tabular properties of the material.
Definition: Objects.cpp:276
dd4hep::RotationZ
ROOT::Math::RotationZ RotationZ
Definition: Objects.h:106
dd4hep::Material::Z
double Z() const
proton number of the underlying material
Definition: Objects.cpp:175
dd4hep::Header::author
const std::string & author() const
Accessor to object author.
Definition: Objects.cpp:97
dd4hep::LimitSet::Set
std::set< Limit > Set
Iterator definitions.
Definition: Objects.h:427
dd4hep::Region
Handle class describing a region as used in simulation.
Definition: Objects.h:461
dd4hep::VisAttr::rgb
bool rgb(float &red, float &green, float &blue) const
Get RGB values of the color (if valid)
Definition: Objects.cpp:395
dd4hep::Header::setName
void setName(const std::string &new_name)
Accessor: set object name.
Definition: Objects.cpp:72
dd4hep::Header
Handle class describing the basic information about geometry objects as it is defined in Detector.
Definition: Objects.h:157
NamedObject.h
dd4hep::ConstantObject
Concrete object implementation for the Constant handle.
Definition: ObjectsInterna.h:64
dd4hep::Handle< ConstantObject >::m_element
ConstantObject * m_element
Single and only data member: Reference to the actual element.
Definition: Handle.h:91
dd4hep::Limit::content
std::string content
Content.
Definition: Objects.h:397
dd4hep::Atom::Atom
Atom(const Atom &copy)=default
Copy constructor.
dd4hep::RotateX
V RotateX(const V &v, double a)
Definition: Objects.h:84
dd4hep::Limit::unit
std::string unit
Units.
Definition: Objects.h:395
dd4hep::PositionRhoZPhi
ROOT::Math::RhoZPhiVector PositionRhoZPhi
Definition: Objects.h:76
dd4hep::Material::Material
Material(const Material &copy)=default
Copy constructor.
dd4hep::Author::authorName
std::string authorName() const
Access the auhor's name.
Definition: Objects.cpp:41
dd4hep::LimitSet::iterator
std::set< Limit >::iterator iterator
Definition: Objects.h:428
dd4hep::sim::IDDescriptor
IDDescriptor IDDescriptor
Definition: LCIOConversions.cpp:69
dd4hep::Limit::value
double value
Double value.
Definition: Objects.h:399
dd4hep::Atom::Atom
Atom()=default
Default constructor.
dd4hep::Header::Header
Header(const Handle< Q > &e)
Constructor to be used when reading the already parsed DOM tree.
Definition: Objects.h:164
dd4hep::Region::cut
double cut() const
Access cut value.
Definition: Objects.cpp:514
dd4hep::LimitSet::addCut
bool addCut(const Limit &limit)
Add new limit. Returns true if the new limit was added, false if it already existed.
Definition: Objects.cpp:469
dd4hep::Transform3D
ROOT::Math::Transform3D Transform3D
Definition: Objects.h:116
dd4hep::Constant::toString
std::string toString() const
String representation of this object.
Definition: Objects.cpp:155
dd4hep::Limit::Limit
Limit(const Limit &c)=default
Copy constructor.
dd4hep::Position
ROOT::Math::XYZVector Position
Definition: Objects.h:80
dd4hep::EulerAngles
ROOT::Math::EulerAngles EulerAngles
Definition: Objects.h:114
dd4hep::RotationY
ROOT::Math::RotationY RotationY
Definition: Objects.h:108
ROOT::Math::operator<
bool operator<(const XYZPoint &a, const XYZPoint &b)
Allow point insertion of a point in maps.
Definition: ParsersObjects_XYZPoint.cpp:18
dd4hep::VisAttr::visible
bool visible() const
Get visibility flag.
Definition: Objects.cpp:340
dd4hep::Header::Header
Header()=default
Default constructor.
dd4hep::Limit::operator<
bool operator<(const Limit &c) const
operator less
Definition: Objects.cpp:432
dd4hep::VisAttr::SOLID
@ SOLID
Definition: Objects.h:326
dd4hep::Region::useDefaultCut
bool useDefaultCut() const
Access use_default_cut flag.
Definition: Objects.cpp:528
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::VisAttr::WIREFRAME
@ WIREFRAME
Definition: Objects.h:326
ROOT::Math::mean_length
double mean_length(const dd4hep::Position &p1, const dd4hep::Position &p2)
Calculate the mean length of two vectors.
Definition: Objects.h:514
ROOT::Math::mean_direction
dd4hep::Position mean_direction(const dd4hep::Position &p1, const dd4hep::Position &p2)
Calculate the mean direction of two vectors.
Definition: Objects.h:518
dd4hep::Detector
The main interface to the dd4hep detector description package.
Definition: Detector.h:90
dd4hep::Limit::Limit
Limit()=default
Default constructor.
dd4hep::RotationX
ROOT::Math::RotationX RotationX
Definition: Objects.h:110
dd4hep::LimitSetObject
Concrete object implementation of the LimitSet Handle.
Definition: ObjectsInterna.h:134
dd4hep::detail::tools::copy
void copy(Alignment from, Alignment to)
Copy alignment object from source object.
Definition: AlignmentTools.cpp:43
dd4hep::Material::radLength
double radLength() const
Access the radiation length of the underlying material.
Definition: Objects.cpp:209
dd4hep::RotationZYX
ROOT::Math::RotationZYX RotationZYX
Definition: Objects.h:104
dd4hep::Header::status
const std::string & status() const
Accessor to object status.
Definition: Objects.cpp:107
dd4hep::VisAttr::setColor
void setColor(float alpha, float red, float green, float blue)
Set object color.
Definition: Objects.cpp:380
dd4hep::Constant::Constant
Constant()=default
Default constructor.
dd4hep::Material::Material
Material(Object *e)
Initialization from pointer.
Definition: Objects.h:281
dd4hep::LimitSet::addLimit
bool addLimit(const Limit &limit)
Add new limit. Returns true if the new limit was added, false if it already existed.
Definition: Objects.cpp:457
dd4hep::Header::setVersion
void setVersion(const std::string &new_version)
Accessor: set object version.
Definition: Objects.cpp:122
dd4hep::VisAttr::operator=
VisAttr & operator=(const VisAttr &attr)=default
Assignment operator.
ROOT
ROOT include files.
Definition: Objects.h:507
dd4hep::Header::Header
Header(const Header &copy)=default
Constructorto be used for assignment from a handle.
dd4hep::VisAttr::VisAttr
VisAttr()=default
Default constructor.
dd4hep::Header::version
const std::string & version() const
Accessor to object version.
Definition: Objects.cpp:117
dd4hep::Atom::Atom
Atom(Object *e)
Initialization from pointer.
Definition: Objects.h:248
dd4hep::VisAttr::LAST_STYLE
@ LAST_STYLE
Definition: Objects.h:326
dd4hep::Author::authorEmail
std::string authorEmail() const
Access the auhor's email address.
Definition: Objects.cpp:51
dd4hep::LimitSet::LimitSet
LimitSet()=default
Constructor to be used when reading the already parsed DOM tree.
dd4hep::Region::setThreshold
Region & setThreshold(double value)
Set threshold in MeV.
Definition: Objects.cpp:496