Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Alignment_MuonAlignment_AlignableCSCStation_H
0002 #define Alignment_MuonAlignment_AlignableCSCStation_H
0003 
0004 /** \class AlignableCSCStation 
0005  *  The alignable muon CSC station.
0006  *
0007  *  $Date: 2008/04/15 16:05:53 $
0008  *  $Revision: 1.12 $
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/AlignableCSCRing.h"
0017 
0018 #include <vector>
0019 
0020 class GeomDet;
0021 class AlignableCSCRing;
0022 
0023 /// Concrete class for muon CSC Station alignable.
0024 ///
0025 /// Misalignment can be de-/reactivated (forwarded to components).
0026 ///
0027 
0028 class AlignableCSCStation : public AlignableComposite {
0029 public:
0030   AlignableCSCStation(const std::vector<AlignableCSCRing*>& cscRings);
0031 
0032   // gets the global position as the average over all positions of the layers
0033   PositionType computePosition();
0034   // get the global orientation
0035   RotationType computeOrientation();  //see explanation for "theOrientation"
0036   // get the Surface
0037   AlignableSurface computeSurface();
0038 
0039   AlignableCSCRing& ring(int i);
0040 
0041   //virtual void twist(float);
0042 
0043   /// Printout muon CSC Station information (not recursive)
0044   friend std::ostream& operator<<(std::ostream&, const AlignableCSCStation&);
0045 
0046   /// Recursive printout of the muon CSC Station structure
0047   void dump(void) const override;
0048 
0049 private:
0050   std::vector<AlignableCSCRing*> theCSCRings;
0051 };
0052 
0053 #endif