CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Alignment/CommonAlignmentAlgorithm/interface/AlignableData.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignableData_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignableData_h
00003 
00004 #include "Alignment/CommonAlignment/interface/StructureType.h"
00005 #include "CondFormats/Alignment/interface/Definitions.h"
00006 #include <vector>
00007 
00012 
00013 template<class T> class AlignableData 
00014 {
00015 
00016 public:
00017 
00020   AlignableData(const T& pos,
00021                 const align::RotationType& rot, 
00022                 align::ID id, align::StructureType objid,
00023                 const std::vector<double> &deformationParameters = std::vector<double>()) :
00024     thePos(pos), theRot(rot), theObjId(objid), theId(id),
00025     theDeformationParameters(deformationParameters) {}
00026 
00028   const T& pos() const { return thePos; }
00029   const align::RotationType& rot() const { return theRot; }
00030   align::StructureType objId() const { return theObjId; }
00031   align::ID id() const { return theId; }
00032   const std::vector<double> deformationParameters() const { return theDeformationParameters;}
00033 
00034 private:
00035 
00036   // data members
00037 
00038   T thePos;
00039   align::RotationType theRot;
00040   align::StructureType theObjId;
00041   align::ID theId;
00042   std::vector<double> theDeformationParameters;
00043 
00044 };
00045 
00047 typedef AlignableData<align::GlobalPoint>  AlignableAbsData;
00049 typedef AlignableData<align::GlobalVector> AlignableRelData;
00050 
00051 typedef std::vector<AlignableAbsData> AlignablePositions;
00052 typedef std::vector<AlignableRelData> AlignableShifts;
00053 
00054 #endif
00055