Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:39:35

0001 #ifndef Alignment_MuonAlignment_AlignableDTBarrel_H
0002 #define Alignment_MuonAlignment_AlignableDTBarrel_H
0003 
0004 /** \class AlignableDTBarrel
0005  *  The alignable muon DT barrel.
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/AlignableDTWheel.h"
0017 
0018 #include <vector>
0019 
0020 class GeomDet;
0021 
0022 /// Concrete class for muon DT Barrel alignable.
0023 ///
0024 /// Misalignment can be de-/reactivated (forwarded to components).
0025 ///
0026 
0027 class AlignableDTBarrel : public AlignableComposite {
0028 public:
0029   AlignableDTBarrel(const std::vector<AlignableDTWheel*>& dtWheels);
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   AlignableDTWheel& wheel(int i);
0039 
0040   /// Printout muon Barrel information (not recursive)
0041   friend std::ostream& operator<<(std::ostream&, const AlignableDTBarrel&);
0042 
0043   /// Recursive printout of the muon Barrel structure
0044   void dump(void) const override;
0045 
0046   // Get alignments sorted by DetId
0047   Alignments* alignments() const override;
0048 
0049   // Get alignment errors sorted by DetId
0050   AlignmentErrorsExtended* alignmentErrors() const override;
0051 
0052 private:
0053   std::vector<AlignableDTWheel*> theDTWheels;
0054 };
0055 
0056 #endif