ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/interface/AlignableDataIO.h
Revision: 1.2
Committed: Mon Nov 13 08:40:12 2006 UTC (18 years, 5 months ago) by flucke
Content type: text/plain
Branch: MAIN
CVS Tags: CMSSW_1_6_12, CMSSW_1_6_12_pre2, CMSSW_1_6_12_pre1, CMSSW_1_6_11, CMSSW_1_7_7, CMSSW_1_6_11_pre1, CMSSW_1_7_6, CMSSW_1_6_10, CMSSW_1_6_10_pre2, CMSSW_1_6_10_pre1, CMSSW_1_6_9, CMSSW_1_6_9_pre2, CMSSW_1_6_9_pre1, CMSSW_1_7_5, CMSSW_1_7_4, CMSSW_1_7_3, CMSSW_1_6_8, CMSSW_1_6_8_pre2, CMSSW_1_7_2, CMSSW_1_6_8_pre1, CMSSW_1_7_1, CMSSW_1_7_0, CMSSW_1_7_0_pre13, CMSSW_1_4_10, CMSSW_1_7_0_pre12, CMSSW_1_7_0_pre11, CMSSW_1_7_0_pre10, CMSSW_1_7_0_pre9, CMSSW_1_7_0_pre8, CMSSW_1_7_0_pre7, CMSSW_1_4_9, CMSSW_1_4_8, CMSSW_1_6_7, CMSSW_1_7_0_pre6, CMSSW_1_6_6, CMSSW_1_6_5, CMSSW_1_6_5_pre1, CMSSW_1_6_4, CMSSW_1_7_0_pre5, CMSSW_1_6_3, CMSSW_1_6_1, CMSSW_1_7_0_pre4, V01-04-00-08, CMSSW_1_7_0_pre3, CMSSW_1_7_0_pre2, CMSSW_1_6_0, CMSSW_1_6_0_pre14, CMSSW_1_7_0_pre1, CMSSW_1_6_0_DAQ3, CMSSW_1_6_0_pre13, CMSSW_1_6_0_pre12, CMSSW_1_6_0_pre11, CMSSW_1_6_0_pre10, CMSSW_1_4_7, CMSSW_1_6_0_pre9, CMSSW_1_6_0_pre8, CMSSW_1_5_4, CMSSW_1_6_0_pre7, CMSSW_1_5_3, CMSSW_1_6_0_pre6, CMSSW_1_4_6, CMSSW_1_3_6, CMSSW_1_6_0_DAQ1, CMSSW_1_6_0_pre5, V01-04-00-07, V01-09-00, V01-04-00-06, CMSSW_1_6_0_pre4, CMSSW_1_3_1_HLT6, CMSSW_1_5_2, CMSSW_1_3_5, CMSSW_1_6_0_pre3, CMSSW_1_6_0_pre2, CMSSW_1_6_0_pre1, CMSSW_1_5_1, CMSSW_1_4_5, CMSSW_1_5_0, V01-08-01, V01-04-00-05, CMSSW_1_4_3g483, CMSSW_1_4_4, CMSSW_1_5_0_pre6, CMSSW_1_4_3, V01-04-00-03, V01-08-00, CMSSW_1_3_1_HLT5, CMSSW_1_5_0_pre5, CMSSW_1_4_2, CMSSW_1_3_1_HLT4, CMSSW_1_4_1, CMSSW_1_5_0_pre4, V01-07-04, CMSSW_1_3_1_HLT3, CMSSW_1_5_0_pre3, V01-07-03, V01-07-02, CMSSW_1_4_0_DAQ1, CMSSW_1_3_4, V01-06-01, CMSSW_1_3_3, V01-07-01, V01-04-00-02, CMSSW_1_4_0, CMSSW_1_5_0_pre2, CMSSW_1_3_2, CMSSW_1_4_0_pre7, CMSSW_1_4_0_pre6, CMSSW_1_4_0_pre5, V01-07-00, V01-04-00-01, CMSSW_1_5_0_pre1, CMSSW_1_2_6, CMSSW_1_2_5, CMSSW_1_4_0_pre4, V01-06-00, V01-05-00, V01-04-01, CMSSW_1_3_1, CMSSW_1_4_0_pre3, CMSSW_1_2_4, CMSSW_1_4_0_pre2, V01-04-00, CMSSW_1_3_0, CMSSW_1_3_0_pre7, V01-03-01, CMSSW_1_4_0_pre1, V01-03-00, CMSSW_1_3_0_pre6, cklae_20070314, CMSSW_1_2_0_4821, CMSSW_1_2_0_g4_82p01, V01-02-00, V01-01-04, CMSSW_1_3_0_pre5, CMSSW_1_3_0_pre4, CMSSW_1_2_3, V01-01-03, CMSSW_1_3_0_pre3, V01-01-02, CMSSW_1_2_0_g4_82, CMSSW_1_3_0_SLC4_pre2, CMSSW_1_3_0_pre2, CMSSW_1_2_2, CMSSW_1_2_1, V01-01-01, V01-01-00, 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, V00-07-03, CMSSW_1_2_0_pre6, CMSSW_1_2_0_pre5, V00-07-02
Branch point for: V01-04-00-04
Changes since 1.1: +3 -3 lines
Log Message:
- many const char* instead of char* as argument
- some few class arguments by const reference

File Contents

# Content
1 #ifndef Alignment_CommonAlignmentAlgorithm_AlignableDataIO_H
2 #define Alignment_CommonAlignmentAlgorithm_AlignableDataIO_H
3
4 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignableData.h"
5 #include "Alignment/CommonAlignment/interface/Alignable.h"
6
7 /// Abstract base class for IO of alignable positions/shifts.
8 /// Derived concrete class must implement raw read/write methods
9
10 class AlignableDataIO
11 {
12
13 protected:
14
15 enum PosType { Abs, Org, Rel };
16
17 /// Constructor
18 AlignableDataIO(PosType p) : thePosType(p) {};
19
20 /// Destructor
21 virtual ~AlignableDataIO(){};
22
23 /// Open IO handle
24 virtual int open( const char* filename, int iteration, bool writemode ) = 0;
25
26 /// Close IO handle
27 virtual int close(void) = 0;
28
29 /// Write absolute positions of one Alignable
30 int writeAbsPos(Alignable* ali, bool validCheck);
31
32 /// Write absolute positions of many Alignables
33 int writeAbsPos(const std::vector<Alignable*>& alivec, bool validCheck);
34
35 /// Read absolute positions of one Alignable
36 AlignableAbsData readAbsPos(Alignable* ali, int& ierr);
37
38 /// Read absolute positions of many Alignables
39 AlignablePositions readAbsPos(const std::vector<Alignable*>& alivec, int& ierr);
40
41
42 /// Write original positions of one Alignable
43 int writeOrgPos(Alignable* ali, bool validCheck);
44
45 /// Write original positions of many Alignables
46 int writeOrgPos(const std::vector<Alignable*>& alivec, bool validCheck);
47
48 /// Read original positions of one Alignable
49 AlignableAbsData readOrgPos(Alignable* ali, int& ierr);
50
51 /// Read original positions of many Alignables
52 AlignablePositions readOrgPos(const std::vector<Alignable*>& alivec, int& ierr);
53
54
55 /// Write relative positions of one Alignable
56 int writeRelPos(Alignable* ali, bool validCheck);
57
58 /// Write relative positions of many Alignables
59 int writeRelPos(const std::vector<Alignable*>& alivec, bool validCheck);
60
61 /// Read relative positions of one Alignable
62 AlignableRelData readRelPos(Alignable* ali, int& ierr);
63
64 /// Read relative positions of many Alignables
65 AlignableShifts readRelPos(const std::vector<Alignable*>& alivec, int& ierr);
66
67 // 'raw' read/write methods
68 // must be provided by concrete derived class
69
70 /// Write absolute positions
71 virtual int writeAbsRaw(const AlignableAbsData &ad) =0;
72 /// Read absolute positions
73 virtual AlignableAbsData readAbsRaw(Alignable* ali,int& ierr) =0;
74 /// Write relative positions
75 virtual int writeRelRaw(const AlignableRelData &ad) =0;
76 /// Read relative positions
77 virtual AlignableRelData readRelRaw(Alignable* ali,int& ierr) =0;
78
79 // Data members
80 PosType thePosType; // Defines whether absolute/orig/relative pos. are used
81
82 };
83
84 #endif