Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:56:38

0001 #ifndef Alignment_MuonAlignment_AlignableDTStation_H
0002 #define Alignment_MuonAlignment_AlignableDTStation_H
0003 
0004 /** \class AlignableDTStation
0005  *  The alignable muon DT station.
0006  *
0007  *  $Date: 2008/04/15 16:05:53 $
0008  *  $Revision: 1.10 $
0009  *  \author Andre Sznajder - UERJ(Brazil)
0010  */
0011 
0012 #include "Alignment/CommonAlignment/interface/Utilities.h"
0013 #include "Alignment/CommonAlignment/interface/AlignableComposite.h"
0014 #include "Alignment/CommonAlignment/interface/AlignableSurface.h"
0015 
0016 #include "Alignment/MuonAlignment/interface/AlignableDTChamber.h"
0017 
0018 #include <vector>
0019 
0020 class GeomDet;
0021 
0022 /// Concrete class for muon DT Station alignable.
0023 ///
0024 /// Misalignment can be de-/reactivated (forwarded to components).
0025 ///
0026 
0027 class AlignableDTStation : public AlignableComposite {
0028 public:
0029   AlignableDTStation(const std::vector<AlignableDTChamber*>& dtChambers);
0030 
0031   // gets the global position as the average over all positions of the layers
0032   PositionType computePosition();
0033   // get the global orientation
0034   RotationType computeOrientation();  //see explanation for "theOrientation"
0035   // get the Surface
0036   AlignableSurface computeSurface();
0037 
0038   AlignableDTChamber& chamber(int i);
0039 
0040   /// Printout muon DT Station information (not recursive)
0041   friend std::ostream& operator<<(std::ostream&, const AlignableDTStation&);
0042 
0043   /// Recursive printout of the muon DT Station structure
0044   void dump(void) const override;
0045 
0046 private:
0047   std::vector<AlignableDTChamber*> theDTChambers;
0048 };
0049 
0050 #endif