ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/src/AlignableDataIO.cc
Revision: 1.3
Committed: Mon Mar 12 21:39:04 2007 UTC (18 years, 1 month ago) by cklae
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_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_5_2, 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_5_0_pre5, CMSSW_1_4_2, CMSSW_1_4_1, CMSSW_1_5_0_pre4, V01-07-04, CMSSW_1_5_0_pre3, V01-07-03, V01-07-02, CMSSW_1_4_0_DAQ1, V01-06-01, V01-07-01, V01-04-00-02, CMSSW_1_4_0, CMSSW_1_5_0_pre2, 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_4_0_pre4, V01-06-00, V01-05-00, V01-04-01, CMSSW_1_4_0_pre3, V01-04-00, V01-03-01, V01-03-00, cklae_20070314
Branch point for: V01-04-00-04
Changes since 1.2: +72 -84 lines
Log Message:
Remove AlignmentTransformations and use align namespace.

File Contents

# User Rev Content
1 fronga 1.1 #include "FWCore/MessageLogger/interface/MessageLogger.h"
2    
3 cklae 1.3 #include "Alignment/CommonAlignment/interface/Utilities.h"
4 fronga 1.1 #include "Alignment/TrackerAlignment/interface/TrackerAlignableId.h"
5    
6     // this class's header
7     #include "Alignment/CommonAlignmentAlgorithm/interface/AlignableDataIO.h"
8    
9     // ----------------------------------------------------------------------------
10     AlignableAbsData AlignableDataIO::readAbsPos(Alignable* ali, int& ierr)
11     {
12     return readAbsRaw(ali,ierr);
13     }
14    
15    
16     // ----------------------------------------------------------------------------
17     AlignableAbsData AlignableDataIO::readOrgPos(Alignable* ali, int& ierr)
18     {
19     return readAbsRaw(ali,ierr);
20     }
21    
22    
23     // ----------------------------------------------------------------------------
24     AlignableRelData AlignableDataIO::readRelPos(Alignable* ali, int& ierr)
25     {
26     return readRelRaw(ali,ierr);
27     }
28    
29    
30     // ----------------------------------------------------------------------------
31     int AlignableDataIO::writeAbsPos(Alignable* ali, bool validCheck)
32     {
33    
34 cklae 1.3 if ( !(validCheck) || ali->alignmentParameters()->isValid() )
35     {
36     // position in global frame
37     align::PositionType pos = ali->surface().position();
38     // global rotation
39     align::RotationType rot = ali->surface().rotation();
40     // write
41     TrackerAlignableId converter;
42     return writeAbsRaw(
43     AlignableAbsData( pos,rot,
44     converter.alignableId(ali),
45     converter.alignableTypeId(ali) )
46     );
47     }
48    
49     return 1;
50 fronga 1.1 }
51    
52    
53     // ----------------------------------------------------------------------------
54     int AlignableDataIO::writeRelPos(Alignable* ali, bool validCheck)
55     {
56 cklae 1.3 if ( !(validCheck) || ali->alignmentParameters()->isValid() )
57     {
58     // rel. shift in global frame
59     align::GlobalVector pos = ali->displacement();
60     // rel. rotation in global frame
61     align::RotationType rot = ali->rotation();
62     // write
63     TrackerAlignableId converter;
64     return writeRelRaw(AlignableRelData(pos,rot,converter.alignableId(ali),
65     converter.alignableTypeId(ali)));
66     }
67    
68     return 1;
69 fronga 1.1 }
70    
71    
72     // ----------------------------------------------------------------------------
73     int AlignableDataIO::writeOrgPos(Alignable* ali, bool validCheck)
74     {
75 cklae 1.3 if ( !(validCheck) || ali->alignmentParameters()->isValid() )
76     {
77     // orig position
78     align::PositionType pos = ali->globalPosition() - ali->displacement();
79     // orig rotation
80     align::RotationType rot = ali->globalRotation() * ali->rotation().transposed();
81     // write
82     TrackerAlignableId converter;
83     return writeAbsRaw(AlignableAbsData(pos,rot,converter.alignableId(ali),
84     converter.alignableTypeId(ali)));
85     }
86    
87     return 1;
88 fronga 1.1 }
89    
90    
91     // ----------------------------------------------------------------------------
92     int AlignableDataIO::writeAbsPos(const std::vector<Alignable*>& alivec,
93 cklae 1.3 bool validCheck)
94 fronga 1.1 {
95    
96     int icount=0;
97     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
98 cklae 1.3 it!=alivec.end(); it++ )
99     {
100     int iret = writeAbsPos(*it,validCheck);
101     if (iret==0) icount++;
102     }
103 flucke 1.2 LogDebug("WriteAbsPos") << "all,written: " << alivec.size() <<","<< icount;
104 fronga 1.1
105     return 0;
106    
107     }
108    
109    
110     // ----------------------------------------------------------------------------
111     AlignablePositions
112     AlignableDataIO::readAbsPos(const std::vector<Alignable*>& alivec, int& ierr)
113     {
114    
115     AlignablePositions retvec;
116     int ierr2=0;
117     ierr=0;
118     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
119 cklae 1.3 it!=alivec.end(); it++ )
120     {
121     AlignableAbsData ad=readAbsPos(*it, ierr2);
122     if (ierr2==0) retvec.push_back(ad);
123     }
124 fronga 1.1
125 flucke 1.2 LogDebug("ReadAbsPos") << "all,written: " << alivec.size() <<"," << retvec.size();
126 fronga 1.1
127     return retvec;
128    
129     }
130    
131    
132     // ----------------------------------------------------------------------------
133     int AlignableDataIO::writeOrgPos( const std::vector<Alignable*>& alivec,
134 cklae 1.3 bool validCheck )
135 fronga 1.1 {
136    
137     int icount=0;
138     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
139 cklae 1.3 it!=alivec.end(); it++ )
140     {
141     int iret=writeOrgPos(*it,validCheck);
142     if (iret==0) icount++;
143     }
144 fronga 1.1
145 flucke 1.2 LogDebug("WriteOrgPos") << "all,written: " << alivec.size() <<"," << icount;
146 fronga 1.1 return 0;
147    
148     }
149    
150    
151     // ----------------------------------------------------------------------------
152     AlignablePositions
153     AlignableDataIO::readOrgPos(const std::vector<Alignable*>& alivec, int& ierr)
154     {
155    
156     AlignablePositions retvec;
157     int ierr2=0;
158     ierr=0;
159     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
160 cklae 1.3 it!=alivec.end(); it++ )
161     {
162     AlignableAbsData ad=readOrgPos(*it, ierr2);
163     if (ierr2==0) retvec.push_back(ad);
164     }
165 fronga 1.1
166 flucke 1.2 LogDebug("ReadOrgPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
167 fronga 1.1
168     return retvec;
169    
170     }
171    
172    
173     // ----------------------------------------------------------------------------
174     int AlignableDataIO::writeRelPos(const std::vector<Alignable*>& alivec,
175 cklae 1.3 bool validCheck )
176 fronga 1.1 {
177    
178     int icount=0;
179     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
180 cklae 1.3 it!=alivec.end(); it++ ) {
181 fronga 1.1 int iret=writeRelPos(*it,validCheck);
182     if (iret==0) icount++;
183     }
184 flucke 1.2 LogDebug("WriteRelPos") << "all,written: " << alivec.size() <<", "<< icount;
185 fronga 1.1 return 0;
186    
187     }
188    
189    
190     // ----------------------------------------------------------------------------
191     AlignableShifts
192     AlignableDataIO::readRelPos(const std::vector<Alignable*>& alivec, int& ierr)
193     {
194    
195     AlignableShifts retvec;
196     int ierr2=0;
197     ierr=0;
198     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
199 cklae 1.3 it!=alivec.end(); it++ )
200     {
201     AlignableRelData ad=readRelPos(*it, ierr2);
202     if (ierr2==0) retvec.push_back(ad);
203     }
204 flucke 1.2 LogDebug("ReadRelPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
205 fronga 1.1
206     return retvec;
207    
208     }