File indexing completed on 2023-03-17 10:39:35
0001 #ifndef Alignment_MuonAlignment_AlignableCSCRing_H
0002 #define Alignment_MuonAlignment_AlignableCSCRing_H
0003
0004
0005
0006
0007
0008
0009
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/AlignableCSCChamber.h"
0017
0018 #include <vector>
0019
0020 class GeomDet;
0021 class AlignableCSCChamber;
0022
0023
0024
0025
0026
0027
0028 class AlignableCSCRing : public AlignableComposite {
0029 public:
0030 AlignableCSCRing(const std::vector<AlignableCSCChamber*>& cscChambers);
0031
0032
0033 PositionType computePosition();
0034
0035 RotationType computeOrientation();
0036
0037 AlignableSurface computeSurface();
0038
0039 AlignableCSCChamber& chamber(int i);
0040
0041
0042
0043
0044 friend std::ostream& operator<<(std::ostream&, const AlignableCSCRing&);
0045
0046
0047 void dump(void) const override;
0048
0049 private:
0050 std::vector<AlignableCSCChamber*> theCSCChambers;
0051 };
0052
0053 #endif