File indexing completed on 2023-03-17 10:39:35
0001 #ifndef Alignment_MuonAlignment_AlignableGEMRing_H
0002 #define Alignment_MuonAlignment_AlignableGEMRing_H
0003
0004
0005
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