Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Alignment_MuonAlignment_AlignableCSCEndcap_H
0002 #define Alignment_MuonAlignment_AlignableCSCEndcap_H
0003 
0004 /** \class AlignableCSCCEndcap
0005  *  The alignable muon CSC endcap.
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/AlignableCSCStation.h"
0017 
0018 #include <vector>
0019 
0020 class GeomDet;
0021 
0022 /// Concrete class for muon CSC Endcap alignable.
0023 ///
0024 /// Misalignment can be de-/reactivated (forwarded to components).
0025 ///
0026 
0027 class AlignableCSCEndcap : public AlignableComposite {
0028 public:
0029   AlignableCSCEndcap(const std::vector<AlignableCSCStation*>& cscStations);
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   AlignableCSCStation& station(int i);
0039 
0040   /// Printout muon End Cap information (not recursive)
0041   friend std::ostream& operator<<(std::ostream&, const AlignableCSCEndcap&);
0042 
0043   /// Recursive printout of the muon End Cap 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<AlignableCSCStation*> theCSCStations;
0054 };
0055 
0056 #endif