CMS 3D CMS Logo

DetGeomDesc.h
Go to the documentation of this file.
1 /****************************************************************************
2 *
3 * Authors:
4 * Jan Kašpar (jan.kaspar@gmail.com)
5 * CMSSW developpers (based on class GeometricDet)
6 *
7 ****************************************************************************/
8 
9 #ifndef Geometry_VeryForwardGeometryBuilder_DetGeomDesc
10 #define Geometry_VeryForwardGeometryBuilder_DetGeomDesc
11 
17 
18 class DDFilteredView;
20 
21 
41 {
42  public:
43  typedef std::vector< const DetGeomDesc*> ConstContainer;
44  typedef std::vector< DetGeomDesc*> Container;
46 
48  typedef unsigned int GeometricEnumType;
49 
51  DetGeomDesc(nav_type navtype, GeometricEnumType dd = 0);
52  DetGeomDesc(DDExpandedView* ev, GeometricEnumType dd = 0);
53  DetGeomDesc(DDFilteredView* fv, GeometricEnumType dd = 0);
54 
56  DetGeomDesc(const DetGeomDesc &);
58 
60  virtual ~DetGeomDesc();
61 
64  virtual DetId geographicalID() const { return _geographicalID; }
65 
67  virtual ConstContainer components() const;
68  virtual Container components();
69  virtual ConstContainer deepComponents() const;
70  virtual std::vector< DDExpandedNode > parents() const
71  { return _parents; }
72 
74  void setComponents(Container cont)
75  { _container = cont; }
76  void addComponents(Container cont);
79  { _container.resize(0);}
80  void deleteComponents();
81  void deepDeleteComponents();
82  bool isLeaf() const
83  { return (_container.size() == 0); }
84 
86  DDRotationMatrix rotation() const {return _rot;}
87  DDTranslation translation() const {return _trans;}
88  DDSolidShape shape() const {return _shape;}
89  GeometricEnumType type() const {return _type;}
90  DDName name() const {return _ddname;};
91  nav_type navType() const {return _ddd;}
92  std::vector<double> params() const {return _params;}
93  virtual int copyno() const {return _copy;}
94  virtual double volume() const {return _volume;}
95  virtual double density() const {return _density;}
96  virtual double weight() const {return _weight;}
97  virtual std::string material() const {return _material;}
98 
101 
102  private:
103  Container _container;
104  nav_type _ddd;
109  GeometricEnumType _type;
110  std::vector<double> _params;
112  std::vector< DDExpandedNode > _parents;
113  double _volume;
114  double _density;
115  double _weight;
116  int _copy;
118 };
119 
120 #endif
std::vector< DDExpandedNode > _parents
Definition: DetGeomDesc.h:112
DDRotationMatrix rotation() const
geometry information
Definition: DetGeomDesc.h:86
DetGeomDesc(nav_type navtype, GeometricEnumType dd=0)
Constructors to be used when looping over DDD.
Definition: DetGeomDesc.cc:22
DDSolidShape _shape
Definition: DetGeomDesc.h:107
void addComponents(Container cont)
Definition: DetGeomDesc.cc:150
void setComponents(Container cont)
components (children) management
Definition: DetGeomDesc.h:74
DetId _geographicalID
Definition: DetGeomDesc.h:111
DetGeomDesc & operator=(const DetGeomDesc &)
Definition: DetGeomDesc.cc:85
DDSolidShape
Definition: DDSolidShapes.h:6
DDRotationMatrix _rot
Definition: DetGeomDesc.h:106
virtual double density() const
Definition: DetGeomDesc.h:95
void clearComponents()
Definition: DetGeomDesc.h:78
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
nav_type navType() const
Definition: DetGeomDesc.h:91
bool ev
DDExpandedView::nav_type nav_type
Definition: DetGeomDesc.h:45
double _volume
Definition: DetGeomDesc.h:113
void deepDeleteComponents()
deletes just the first daughters
Definition: DetGeomDesc.cc:173
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
virtual ~DetGeomDesc()
destructor
Definition: DetGeomDesc.cc:107
void ApplyAlignment(const RPAlignmentCorrectionData &)
alignment
Definition: DetGeomDesc.cc:184
void setGeographicalID(DetId id)
ID stuff.
Definition: DetGeomDesc.h:63
DDTranslation _trans
Definition: DetGeomDesc.h:105
virtual ConstContainer components() const
access to the tree structure
Definition: DetGeomDesc.cc:121
Geometrical description of a detector.
Definition: DetGeomDesc.h:40
virtual std::vector< DDExpandedNode > parents() const
returns all the components below
Definition: DetGeomDesc.h:70
DDTranslation translation() const
Definition: DetGeomDesc.h:87
std::vector< DetGeomDesc * > Container
Definition: DetGeomDesc.h:44
Alignment correction or result of alignment procedure for a single RP sensor. Within the geometry des...
DDName name() const
Definition: DetGeomDesc.h:90
virtual std::string material() const
Definition: DetGeomDesc.h:97
GeometricEnumType _type
Definition: DetGeomDesc.h:109
virtual double volume() const
Definition: DetGeomDesc.h:94
virtual int copyno() const
Definition: DetGeomDesc.h:93
Definition: DetId.h:18
void deleteComponents()
Definition: DetGeomDesc.cc:166
double _density
Definition: DetGeomDesc.h:114
virtual DetId geographicalID() const
Definition: DetGeomDesc.h:64
double _weight
Definition: DetGeomDesc.h:115
std::vector< double > _params
Definition: DetGeomDesc.h:110
nav_type _ddd
Definition: DetGeomDesc.h:104
GeometricEnumType type() const
Definition: DetGeomDesc.h:89
std::vector< const DetGeomDesc * > ConstContainer
Definition: DetGeomDesc.h:43
virtual double weight() const
Definition: DetGeomDesc.h:96
unsigned int GeometricEnumType
a type (not used in the moment, left for the future)
Definition: DetGeomDesc.h:48
DDName _ddname
Definition: DetGeomDesc.h:108
std::vector< double > params() const
Definition: DetGeomDesc.h:92
Container _container
Definition: DetGeomDesc.h:103
std::string _material
Definition: DetGeomDesc.h:117
virtual ConstContainer deepComponents() const
Definition: DetGeomDesc.cc:132
Provides an exploded view of the detector (tree-view)
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
void addComponent(DetGeomDesc *)
Definition: DetGeomDesc.cc:159
DDSolidShape shape() const
Definition: DetGeomDesc.h:88
std::vector< int > nav_type
std::vector of sibling numbers
bool isLeaf() const
traverses the treee and deletes all nodes.
Definition: DetGeomDesc.h:82