CMS 3D CMS Logo

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 
46  ~AlignableMuon() override;
47 
50  void update(const DTGeometry* , const CSCGeometry*);
51 
53  const align::Alignables& components() const final { return theMuonComponents; }
54 
56  virtual Alignable* mother() { return nullptr; }
57 
70 
73 
76 
79 
82 
83 
86 
87 private:
88 
91 
94 
97 
99  Alignments* alignments() const override;
100 
102  AlignmentErrorsExtended* alignmentErrors() const override;
103 
104 
105 
106  // Sub-structure builders
107 
109  void buildDTBarrel(const DTGeometry*, bool update = false);
110 
112  void buildCSCEndcap(const CSCGeometry*, bool update = false);
113 
115  void recursiveSetMothers( Alignable* alignable );
116 
119 
121  std::vector<AlignableDTChamber*> theDTChambers;
122  std::vector<AlignableDTStation*> theDTStations;
123  std::vector<AlignableDTWheel*> theDTWheels;
124  std::vector<AlignableDTBarrel*> theDTBarrel;
125 
126  std::vector<AlignableCSCChamber*> theCSCChambers;
127  std::vector<AlignableCSCStation*> theCSCStations;
128  std::vector<AlignableCSCRing*> theCSCRings;
129  std::vector<AlignableCSCEndcap*> theCSCEndcaps;
130 
132 
133 };
134 
135 #endif //AlignableMuon_H
136 
A muon DT Chamber( an AlignableDet )
AlignmentErrorsExtended * alignmentErrors() const override
Get alignment errors sorted by DetId.
align::Alignables DTLayers()
Methods to return specific of components.
void update(const DTGeometry *, const CSCGeometry *)
align::Alignables CSCChambers()
Alignments * alignments() const override
Get alignments sorted by DetId.
align::Alignables DTBarrel()
align::Alignables CSCStations()
align::Alignables DTStations()
~AlignableMuon() override
Destructor.
virtual Alignable * mother()
Alignable tracker has no mother.
Definition: AlignableMuon.h:56
AlignableSurface computeSurface()
Get the Surface.
const AlignableObjectId & objectIdProvider() const
Return muon alignable object ID provider derived from the muon system geometry.
Definition: AlignableMuon.h:85
std::vector< AlignableCSCEndcap * > theCSCEndcaps
Alignments * dtAlignments()
Get DT alignments sorted by DetId.
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.
std::vector< AlignableDTStation * > theDTStations
AlignmentErrorsExtended * cscAlignmentErrorsExtended()
Get CSC alignment errors sorted by DetId.
align::Alignables CSCLayers()
void buildCSCEndcap(const CSCGeometry *, bool update=false)
Build muon end caps.
std::vector< AlignableDTChamber * > theDTChambers
Containers of separate components.
std::vector< AlignableCSCRing * > theCSCRings
align::Alignables DTSuperLayers()
PositionType computePosition()
Get the position (centered at 0 by default)
Alignments * cscAlignments()
Get CSC alignments sorted by DetId.
const align::Alignables & components() const final
Return all components.
Definition: AlignableMuon.h:53
AlignableMuon(const DTGeometry *, const CSCGeometry *)
Constructor from geometries.
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
Get DT alignment errors sorted by DetId.
std::vector< Alignable * > Alignables
Definition: Utilities.h:32
align::Alignables CSCRings()
void buildDTBarrel(const DTGeometry *, bool update=false)
Build muon barrel.
RotationType computeOrientation()
Get the global orientation (no rotation by default)
std::vector< AlignableDTBarrel * > theDTBarrel
std::vector< AlignableDTWheel * > theDTWheels
Constructor of the full muon geometry.
Definition: AlignableMuon.h:37
std::vector< AlignableCSCChamber * > theCSCChambers
A muon CSC Chamber( an AlignableDet )