File indexing completed on 2024-04-06 11:56:07
0001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignableData_h
0002 #define Alignment_CommonAlignmentAlgorithm_AlignableData_h
0003
0004 #include "Alignment/CommonAlignment/interface/StructureType.h"
0005 #include "CondFormats/Alignment/interface/Definitions.h"
0006 #include <vector>
0007
0008
0009
0010
0011
0012
0013 template <class T>
0014 class AlignableData {
0015 public:
0016
0017
0018 AlignableData(const T& pos,
0019 const align::RotationType& rot,
0020 align::ID id,
0021 align::StructureType objid,
0022 const std::vector<double>& deformationParameters = std::vector<double>())
0023 : thePos(pos), theRot(rot), theObjId(objid), theId(id), theDeformationParameters(deformationParameters) {}
0024
0025
0026 const T& pos() const { return thePos; }
0027 const align::RotationType& rot() const { return theRot; }
0028 align::StructureType objId() const { return theObjId; }
0029 align::ID id() const { return theId; }
0030 const std::vector<double> deformationParameters() const { return theDeformationParameters; }
0031
0032 private:
0033
0034
0035 T thePos;
0036 align::RotationType theRot;
0037 align::StructureType theObjId;
0038 align::ID theId;
0039 std::vector<double> theDeformationParameters;
0040 };
0041
0042
0043 typedef AlignableData<align::GlobalPoint> AlignableAbsData;
0044
0045 typedef AlignableData<align::GlobalVector> AlignableRelData;
0046
0047 typedef std::vector<AlignableAbsData> AlignablePositions;
0048 typedef std::vector<AlignableRelData> AlignableShifts;
0049
0050 #endif