Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Alignment_MuonAlignment_AlignableGEMRing_H
0002 #define Alignment_MuonAlignment_AlignableGEMRing_H
0003 
0004 /* \class AlignableGEMRing
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 #include "Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h"
0012 #include <vector>
0013 
0014 class GeomDet;
0015 
0016 class AlignableGEMRing : public AlignableComposite {
0017 public:
0018   AlignableGEMRing(const std::vector<AlignableGEMSuperChamber*>& GEMSuperChambers);
0019 
0020   PositionType computePosition();
0021 
0022   RotationType computeOrientation();
0023 
0024   AlignableSurface computeSurface();
0025 
0026   AlignableGEMSuperChamber& superChamber(int i);
0027 
0028   friend std::ostream& operator<<(std::ostream&, const AlignableGEMRing&);
0029 
0030   void dump(void) const override;
0031 
0032 private:
0033   std::vector<AlignableGEMSuperChamber*> theGEMSuperChambers;
0034 };
0035 
0036 #endif