File indexing completed on 2024-04-06 11:56:38
0001 #ifndef Alignment_MuonAlignment_AlignableGEMEndcap_H
0002 #define Alignment_MuonAlignment_AlignableGEMEndcap_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
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