Revision: | 1.1 |
Committed: | Fri Aug 4 16:15:13 2006 UTC (18 years, 9 months ago) by fronga |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | CMSSW_1_2_6, CMSSW_1_2_5, CMSSW_1_2_4, CMSSW_1_2_0_4821, CMSSW_1_2_0_g4_82p01, CMSSW_1_2_3, CMSSW_1_2_0_g4_82, CMSSW_1_2_2, CMSSW_1_2_1, CMSSW_1_3_0_SLC4_pre1, CMSSW_1_3_0_pre1, V01-00-00, CMSSW_1_2_0_g4_81, CMSSW_1_2_0_SL4, V00-08-01, CMSSW_1_2_0, V00-08-00, CMSSW_1_2_0_pre9, CMSSW_1_2_0_pre8_g4_81, CMSSW_1_2_0_pre8, CMSSW_1_1_2, CMSSW_1_2_0_pre7, V00-07-03, CMSSW_1_2_0_pre6, CMSSW_1_2_0_pre5, V00-07-02, V00-07-01, V00-07-00, V00-06-00, CMSSW_1_2_0_pre4, V00-05-00, CMSSW_1_1_1, CMSSW_1_2_0_pre3, V00-04-00, CMSSW_1_0_6, V00-03-00, CMSSW_1_2_0_pre2, CMSSW_1_0_5, CMSSW_1_1_0, CMSSW_1_2_0_pre1, CMSSW_1_0_4, CMSSW_1_1_0_pre4, CMSSW_1_0_3, CMSSW_1_0_0_g4_81, CMSSW_1_1_0_pre3, CMSSW_1_0_2, CMSSW_1_0_1, CMSSW_1_1_0_pre2, CMSSW_1_0_0, CMSSW_1_0_0_pre5, CMSSW_1_1_0_pre1, CMSSW_1_0_0_pre4, CMSSW_1_0_0_pre3, CMSSW_1_0_0_pre2, V00-02-00, CMSSW_1_0_0_pre1, V00-01-00 |
Log Message: | First version with EDLooper interface, and running in latest release. |
# | User | Rev | Content |
---|---|---|---|
1 | fronga | 1.1 | #ifndef Alignment_CommonAlignmentAlgorithm_AlignableData_h |
2 | #define Alignment_CommonAlignmentAlgorithm_AlignableData_h | ||
3 | |||
4 | #include "Geometry/Surface/interface/Surface.h" | ||
5 | #include "DataFormats/Math/interface/Point3D.h" | ||
6 | #include "DataFormats/Math/interface/Vector3D.h" | ||
7 | |||
8 | #include<vector> | ||
9 | |||
10 | /// Helper class to store position data of an alignable; | ||
11 | /// Contents: position vector, rotation matrix, DetId and TypeId; | ||
12 | /// can be used for both absolute and relative positions/rotations | ||
13 | |||
14 | |||
15 | template<class T> class AlignableData | ||
16 | { | ||
17 | |||
18 | public: | ||
19 | |||
20 | /// constructor | ||
21 | AlignableData(T pos, Surface::RotationType rot, | ||
22 | unsigned int id, int objid) : | ||
23 | thePos(pos), theRot(rot), theObjId(objid), theId(id) {} | ||
24 | |||
25 | /// accessors | ||
26 | T pos(void) const { return thePos; } | ||
27 | Surface::RotationType rot(void) const { return theRot; } | ||
28 | int objId(void) const { return theObjId; } | ||
29 | unsigned int id(void) const { return theId; } | ||
30 | |||
31 | private: | ||
32 | |||
33 | // data members | ||
34 | |||
35 | T thePos; | ||
36 | Surface::RotationType theRot; | ||
37 | int theObjId; | ||
38 | unsigned int theId; | ||
39 | |||
40 | }; | ||
41 | |||
42 | /// Absolute position/rotation | ||
43 | typedef AlignableData<GlobalPoint> AlignableAbsData; | ||
44 | /// relative position/rotation | ||
45 | typedef AlignableData<GlobalVector> AlignableRelData; | ||
46 | |||
47 | typedef std::vector<AlignableAbsData> AlignablePositions; | ||
48 | typedef std::vector<AlignableRelData> AlignableShifts; | ||
49 | |||
50 | #endif | ||
51 |