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 
13 #include <vector>
14 
15 
19 
21 
22 class CSCGeometry;
23 
24 // Classes that will be used to construct the muon
25 class AlignableDTBarrel;
26 class AlignableDTWheel;
27 class AlignableDTStation;
28 class AlignableDTChamber;
29 class AlignableCSCEndcap;
31 class AlignableCSCRing;
33 
34 
35 
36 
38 
40 {
41 
42 public:
43 
45  AlignableMuon( const DTGeometry* , const CSCGeometry* );
46 
49 
50 
52  virtual std::vector<Alignable*> components() const { return theMuonComponents; }
53 
55  virtual Alignable* mother() { return 0; }
56 
57  // Methods to return specific of components
58  std::vector<Alignable*> DTLayers();
59  std::vector<Alignable*> DTSuperLayers();
60  std::vector<Alignable*> DTChambers();
61  std::vector<Alignable*> DTStations();
62  std::vector<Alignable*> DTWheels();
63  std::vector<Alignable*> DTBarrel();
64  std::vector<Alignable*> CSCLayers();
65  std::vector<Alignable*> CSCChambers();
66  std::vector<Alignable*> CSCStations();
67  std::vector<Alignable*> CSCRings();
68  std::vector<Alignable*> CSCEndcaps();
69 
70  // Get DT alignments sorted by DetId
72 
73  // Get DT alignment errors sorted by DetId
75 
76  // Get CSC alignments sorted by DetId
78 
79  // Get CSC alignment errors sorted by DetId
81 
82 
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 
114 
115  // Containers of separate components
116 
117  std::vector<AlignableDTChamber*> theDTChambers;
118  std::vector<AlignableDTStation*> theDTStations;
119  std::vector<AlignableDTWheel*> theDTWheels;
120  std::vector<AlignableDTBarrel*> theDTBarrel;
121 
122  std::vector<AlignableCSCChamber*> theCSCChambers;
123  std::vector<AlignableCSCStation*> theCSCStations;
124  std::vector<AlignableCSCRing*> theCSCRings;
125  std::vector<AlignableCSCEndcap*> theCSCEndcaps;
126 
127  std::vector<Alignable*> theMuonComponents;
128 
129 };
130 
131 #endif //AlignableMuon_H
132 
133 
134 
135 
A muon DT Chamber( an AlignableDet )
AlignmentErrors * dtAlignmentErrors()
std::vector< Alignable * > DTSuperLayers()
std::vector< Alignable * > CSCStations()
std::vector< Alignable * > DTWheels()
std::vector< Alignable * > DTChambers()
virtual Alignable * mother()
Alignable tracker has no mother.
Definition: AlignableMuon.h:55
AlignableSurface computeSurface()
Alignments * alignments() const
Return alignment data.
std::vector< AlignableCSCEndcap * > theCSCEndcaps
std::vector< Alignable * > DTLayers()
std::vector< Alignable * > CSCChambers()
Alignments * dtAlignments()
std::vector< Alignable * > CSCLayers()
std::vector< Alignable * > CSCEndcaps()
std::vector< AlignableCSCStation * > theCSCStations
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
AlignmentErrors * alignmentErrors() const
Return vector of alignment errors.
AlignmentErrors * cscAlignmentErrors()
std::vector< AlignableDTStation * > theDTStations
std::vector< Alignable * > CSCRings()
std::vector< Alignable * > DTStations()
std::vector< Alignable * > DTBarrel()
std::vector< AlignableDTChamber * > theDTChambers
std::vector< AlignableCSCRing * > theCSCRings
PositionType computePosition()
Alignments * cscAlignments()
align::RotationType RotationType
Definition: Alignable.h:36
AlignableMuon(const DTGeometry *, const CSCGeometry *)
Constructor from geometries.
align::PositionType PositionType
Definition: Alignable.h:35
void buildDTBarrel(const DTGeometry *)
RotationType computeOrientation()
std::vector< AlignableDTBarrel * > theDTBarrel
~AlignableMuon()
Destructor.
std::vector< AlignableDTWheel * > theDTWheels
Constructor of the full muon geometry.
Definition: AlignableMuon.h:39
std::vector< Alignable * > theMuonComponents
virtual std::vector< Alignable * > components() const
Return all components.
Definition: AlignableMuon.h:52
void buildCSCEndcap(const CSCGeometry *)
std::vector< AlignableCSCChamber * > theCSCChambers
A muon CSC Chamber( an AlignableDet )