Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Alignment_MuonAlignment_AlignableGEMEndcap_H
0002 #define Alignment_MuonAlignment_AlignableGEMEndcap_H
0003 
0004 /* \class AlignableGEMEndcap
0005  * \author Hyunyong Kim - TAMU
0006  */
0007 
0008 #include "Alignment/CommonAlignment/interface/Utilities.h"
0009 #include "Alignment/CommonAlignment/interface/AlignableComposite.h"
0010 #include "Alignment/CommonAlignment/interface/AlignableSurface.h"
0011 
0012 #include "Alignment/MuonAlignment/interface/AlignableGEMStation.h"
0013 
0014 #include <vector>
0015 
0016 class GeomDet;
0017 
0018 class AlignableGEMEndcap : public AlignableComposite {
0019 public:
0020   AlignableGEMEndcap(const std::vector<AlignableGEMStation*>& GEMStations);
0021 
0022   PositionType computePosition();
0023 
0024   RotationType computeOrientation();
0025 
0026   AlignableSurface computeSurface();
0027 
0028   AlignableGEMStation& station(int i);
0029 
0030   friend std::ostream& operator<<(std::ostream&, const AlignableGEMEndcap&);
0031 
0032   void dump(void) const override;
0033 
0034   Alignments* alignments() const override;
0035 
0036   AlignmentErrorsExtended* alignmentErrors() const override;
0037 
0038 private:
0039   std::vector<AlignableGEMStation*> theGEMStations;
0040 };
0041 
0042 #endif