File indexing completed on 2024-04-06 11:56:05
0001 #ifndef Alignment_CommonAlignment_AlignableSurface_H
0002 #define Alignment_CommonAlignment_AlignableSurface_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include <vector>
0014
0015 #include "Alignment/CommonAlignment/interface/Utilities.h"
0016 #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h"
0017
0018 class Plane;
0019
0020 class AlignableSurface : public GloballyPositioned<align::Scalar> {
0021 public:
0022
0023 AlignableSurface(const Plane& surface);
0024
0025
0026 AlignableSurface(const align::PositionType& = PositionType(),
0027 const align::RotationType& = RotationType()
0028 );
0029
0030 align::Scalar width() const { return theWidth; }
0031
0032 align::Scalar length() const { return theLength; }
0033
0034 void setWidth(align::Scalar width) { theWidth = width; }
0035
0036 void setLength(align::Scalar length) { theLength = length; }
0037
0038 using GloballyPositioned<align::Scalar>::toGlobal;
0039 using GloballyPositioned<align::Scalar>::toLocal;
0040
0041
0042 align::GlobalPoints toGlobal(const align::LocalPoints&) const;
0043
0044
0045 align::RotationType toGlobal(const align::RotationType&) const;
0046
0047
0048 align::EulerAngles toGlobal(const align::EulerAngles&) const;
0049
0050
0051 align::RotationType toLocal(const align::RotationType&) const;
0052
0053
0054 align::EulerAngles toLocal(const align::EulerAngles&) const;
0055
0056 private:
0057 align::Scalar theWidth;
0058 align::Scalar theLength;
0059 };
0060
0061 #endif