CMS 3D CMS Logo

AlignableDTStation.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignment_AlignableDTStation_H
2 #define Alignment_MuonAlignment_AlignableDTStation_H
3 
16 
18 
19 
20 #include <vector>
21 
22 class GeomDet;
23 
28 
30 {
31 
32  public:
33 
34  AlignableDTStation( const std::vector<AlignableDTChamber*>& dtChambers );
35 
36  ~AlignableDTStation() override;
37 
38  std::vector<Alignable*> components() const override
39  {
40 
41  std::vector<Alignable*> result;
42  result.insert( result.end(), theDTChambers.begin(), theDTChambers.end() );
43  return result;
44 
45  }
46 
47  // gets the global position as the average over all positions of the layers
49  // get the global orientation
50  RotationType computeOrientation() ; //see explanation for "theOrientation"
51  // get the Surface
53 
55 
57  friend std::ostream& operator << ( std::ostream&, const AlignableDTStation& );
58 
60  void dump( void ) const override;
61 
62 
63 private:
64 
65  std::vector<AlignableDTChamber*> theDTChambers;
66 
67 
68 };
69 
70 #endif
71 
72 
73 
74 
A muon DT Chamber( an AlignableDet )
AlignableSurface computeSurface()
std::vector< Alignable * > components() const override
Return vector of direct components.
RotationType computeOrientation()
Just initialize to default given by default constructor of a RotationType.
AlignableDTChamber & chamber(int i)
Return Alignable DT Chamber at given index.
friend std::ostream & operator<<(std::ostream &, const AlignableDTStation &)
Printout muon DT Station information (not recursive)
std::vector< AlignableDTChamber * > theDTChambers
AlignableDTStation(const std::vector< AlignableDTChamber * > &dtChambers)
The constructor simply copies the vector of DT Chambers and computes the surface from them...
void dump(void) const override
Recursive printout of the muon DT Station structure.
~AlignableDTStation() override
Clean delete of the vector and its elements.
PositionType computePosition()
Compute average z position from all components (x and y forced to 0)