CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlignableMuon.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignment_AlignableMuon_H
2 #define Alignment_MuonAlignment_AlignableMuon_H
3 
16 
19 
20 class CSCGeometry;
21 
22 // Classes that will be used to construct the muon
23 class AlignableDTBarrel;
24 class AlignableDTWheel;
25 class AlignableDTStation;
26 class AlignableDTChamber;
27 class AlignableCSCEndcap;
29 class AlignableCSCRing;
31 
32 
33 
34 
36 
38 {
39 
40 public:
41 
43  AlignableMuon( const DTGeometry* , const CSCGeometry* );
44 
47 
48 
50  virtual align::Alignables components() const { return theMuonComponents; }
51 
53  virtual Alignable* mother() { return 0; }
54 
55  // Methods to return specific of components
67 
68  // Get DT alignments sorted by DetId
70 
71  // Get DT alignment errors sorted by DetId
73 
74  // Get CSC alignments sorted by DetId
76 
77  // Get CSC alignment errors sorted by DetId
79 
80 
83 
84 private:
85 
86  // Get the position (centered at 0 by default)
88 
89  // Get the global orientation (no rotation by default)
91 
92  // Get the Surface
94 
95  // Get alignments sorted by DetId
96  Alignments* alignments() const;
97 
98  // Get alignment errors sorted by DetId
100 
101 
102 
103  // Sub-structure builders
104 
105  // Build muon barrel
106  void buildDTBarrel( const DTGeometry* );
107 
108  // Build muon end caps
109  void buildCSCEndcap( const CSCGeometry* );
110 
112  void recursiveSetMothers( Alignable* alignable );
113 
116 
117  // Containers of separate components
118 
119  std::vector<AlignableDTChamber*> theDTChambers;
120  std::vector<AlignableDTStation*> theDTStations;
121  std::vector<AlignableDTWheel*> theDTWheels;
122  std::vector<AlignableDTBarrel*> theDTBarrel;
123 
124  std::vector<AlignableCSCChamber*> theCSCChambers;
125  std::vector<AlignableCSCStation*> theCSCStations;
126  std::vector<AlignableCSCRing*> theCSCRings;
127  std::vector<AlignableCSCEndcap*> theCSCEndcaps;
128 
130 
131 };
132 
133 #endif //AlignableMuon_H
134 
A muon DT Chamber( an AlignableDet )
align::Alignables DTLayers()
align::Alignables CSCChambers()
align::Alignables DTBarrel()
align::Alignables CSCStations()
align::Alignables DTStations()
virtual Alignable * mother()
Alignable tracker has no mother.
Definition: AlignableMuon.h:53
AlignableSurface computeSurface()
const AlignableObjectId & objectIdProvider() const
Return muon alignable object ID provider derived from the muon system geometry.
Definition: AlignableMuon.h:82
Alignments * alignments() const
Return alignment data.
std::vector< AlignableCSCEndcap * > theCSCEndcaps
Alignments * dtAlignments()
const AlignableObjectId alignableObjectId_
alignable object ID provider
align::Alignables CSCEndcaps()
align::Alignables theMuonComponents
align::Alignables DTChambers()
align::Alignables DTWheels()
std::vector< AlignableCSCStation * > theCSCStations
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
Allows conversion between type and name, and vice-versa.
virtual align::Alignables components() const
Return all components.
Definition: AlignableMuon.h:50
std::vector< AlignableDTStation * > theDTStations
AlignmentErrorsExtended * cscAlignmentErrorsExtended()
align::Alignables CSCLayers()
std::vector< AlignableDTChamber * > theDTChambers
std::vector< AlignableCSCRing * > theCSCRings
align::Alignables DTSuperLayers()
PositionType computePosition()
Alignments * cscAlignments()
align::RotationType RotationType
Definition: Alignable.h:36
AlignmentErrorsExtended * alignmentErrors() const
Return vector of alignment errors.
AlignableMuon(const DTGeometry *, const CSCGeometry *)
Constructor from geometries.
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
align::PositionType PositionType
Definition: Alignable.h:35
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
void buildDTBarrel(const DTGeometry *)
align::Alignables CSCRings()
RotationType computeOrientation()
std::vector< AlignableDTBarrel * > theDTBarrel
~AlignableMuon()
Destructor.
std::vector< AlignableDTWheel * > theDTWheels
Constructor of the full muon geometry.
Definition: AlignableMuon.h:37
void buildCSCEndcap(const CSCGeometry *)
std::vector< AlignableCSCChamber * > theCSCChambers
A muon CSC Chamber( an AlignableDet )