ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/src/AlignableDataIO.cc
Revision: 1.5
Committed: Fri Feb 11 12:47:43 2011 UTC (14 years, 2 months ago) by flucke
Content type: text/plain
Branch: MAIN
CVS Tags: CMSSW_6_2_0, CMSSW_6_2_0_pre7_TS133806, CMSSW_5_3_11_patch3, CMSSW_6_1_2_SLHC6_patch1, CMSSW_5_3_11_patch2, CMSSW_5_3_11_patch1, CMSSW_6_2_0_pre8, CMSSW_6_1_2_SLHC6, V04-00-14, V04-00-13, CMSSW_6_1_2_SLHC5, CMSSW_5_3_11, CMSSW_6_2_0_pre7_TS132947, CMSSW_4_4_5_patch3, CMSSW_6_2_0_pre7_g496p02, V04-00-09-53X-calib-V01, CMSSW_6_2_0_pre7, V04-00-12, br53-00-09, br53-00-08, CMSSW_5_3_10_patch2, br53-00-07, br53-00-06, br53-00-05, CMSSW_6_1_2_SLHC4_patch1, CMSSW_6_1_2_SLHC4, CMSSW_6_1_2_SLHC2_patch3, CMSSW_6_2_0_pre6_patch1, CMSSW_6_1_2_SLHC2_patch2, CMSSW_6_2_0_pre6, CMSSW_5_3_10_patch1, CMSSW_6_1_2_SLHC3, CMSSW_6_1_2_SLHC2_patch1, CMSSW_5_3_10, CMSSW_6_1_2_SLHC2, CMSSW_6_2_0_pre5slc6, br53-00-04, br53-00-03, br53-00-02, CMSSW_5_3_9_patch3, CMSSW_6_1_2_SLHC1, CMSSW_6_2_0_pre5, CMSSW_6_1_X_2012-12-19-0200, CMSSW_6_0_X_2012-08-07-0200, CMSSW_5_2_X_2012-05-03-0200, CMSSW_5_2_X_2012-03-08-0200, CMSSW_5_0_X_2011-12-18-0200, CMSSW_4_4_X_2011-06-09-0400, CMSSW_5_3_9_patch2, CMSSW_6_1_2, CMSSW_6_2_0_pre4, CMSSW_5_3_9_patch1, CMSSW_6_2_0_pre3, CMSSW_6_1_1_SLHCphase2tk1, CMSSW_5_3_9, CMSSW_6_1_1_SLHCphase1tk1, CMSSW_5_2_9, br53-00-01, CMSSW_6_2_0_pre2, CMSSW_6_1_1, CMSSW_5_3_8_patch3, CMSSW_5_3_7_patch6, CMSSW_6_2_0_pre1, CMSSW_5_3_8_patch2, CMSSW_5_3_8_patch1, CMSSW_5_3_8, CMSSW_5_3_8_HI_patch2, CMSSW_5_3_7_patch5, CMSSW_5_3_8_HI_patch1, CMSSW_5_2_6_patch2, V04-00-11, CMSSW_6_1_0, CMSSW_5_3_8_HI, CMSSW_5_3_7_patch4, CMSSW_5_3_7_patch3, CMSSW_6_0_1_PostLS1v2_patch4, CMSSW_6_1_0_pre8, CMSSW_5_3_7_25nspatch1, CMSSW_5_3_7_patch2, V04-00-10, CMSSW_6_1_0_pre7_TS127013, CMSSW_6_0_1_PostLS1v2_patch3, CMSSW_6_1_0_pre7, CMSSW_5_3_7_patch1, CMSSW_6_1_0_pre6_TS126203_TS126341_patch1, CMSSW_5_3_7_alcapatch1, CMSSW_6_1_0_pre6g496cand01, CMSSW_5_3_7, CMSSW_6_0_1_PostLS1v2_patch2, CMSSW_6_0_1_PostLS1v2_patch1, CMSSW_6_1_0_pre6_TS126203_TS126341, CMSSW_6_1_0_pre6, CMSSW_6_0_1_PostLS1v2, CMSSW_4_4_5_patch2, CMSSW_5_3_6_patch1, CMSSW_5_2_8, CMSSW_6_1_0_pre5, CMSSW_6_0_1_PostLS1v1, CMSSW_5_2_7_hltpatch2, CMSSW_5_3_4_TC125616patch1, V04-00-09, CMSSW_6_0_1, CMSSW_5_3_4_patch2, CMSSW_6_1_0_pre3_TS124729, CMSSW_6_1_0_pre4, CMSSW_5_3_5, CMSSW_5_3_3_patch3, CMSSW_5_3_4_patch1, CMSSW_6_1_0_pre3, CMSSW_4_4_5_patch1, CMSSW_5_2_7, CMSSW_5_3_4, V04-00-08, CMSSW_5_3_2_patch5, V04-00-07, CMSSW_6_1_0_pre2, CMSSW_5_3_4_cand2, CMSSW_5_3_4_cand1_patch1, CMSSW_6_0_0_patch1, V04-00-06, CMSSW_6_0_0_SLHCtkpre1, V04-00-05, V04-00-04, V04-00-03, V04-00-02, CMSSW_6_1_0_pre1, CMSSW_5_3_4_cand1, CMSSW_6_0_0_TS123272, CMSSW_5_2_6_patch1, CMSSW_6_0_0, V04-00-01, CMSSW_4_4_5, V04-00-00, CMSSW_5_3_3_patch2, CMSSW_4_2_8_SLHChcal6, CMSSW_5_3_3, CMSSW_5_3_3_patch1, CMSSW_6_0_0_pre11, CMSSW_6_0_0_pre10, CMSSW_4_2_8_SLHChcal5, CMSSW_6_0_0_pre9, CMSSW_4_2_8_SLHCstd2_patch2, CMSSW_4_2_8_SLHCtk3_patch2, CMSSW_4_2_8_SLHChcal2_patch3, CMSSW_5_3_2_patch4, CMSSW_6_0_0_pre8, CMSSW_4_2_8_SLHCstd2_patch1, CMSSW_4_2_8_SLHCtk3_patch1, CMSSW_4_2_8_SLHChcal4_patch4, CMSSW_5_3_3_cand1, CMSSW_5_3_2_patch2, CMSSW_5_3_2_metpatch1, CMSSW_5_2_6_hltpatch1, CMSSW_4_2_8_SLHChcal4_patch3, CMSSW_6_0_0_pre7py273, CMSSW_5_2_6, CMSSW_5_3_2_patch1, CMSSW_4_2_8_SLHChcal4_patch2, CMSSW_4_2_8_SLHChcal4_patch1, CMSSW_5_3_2, CMSSW_6_0_0_pre7, CMSSW_5_2_4_hltpatch4, CMSSW_6_0_0_pre6g495p01, CMSSW_5_2_5_patch3, CMSSW_5_2_5_patch2, CMSSW_6_0_0_pre6, CMSSW_5_3_1, CMSSW_5_2_5_ecalpatch1, CMSSW_6_0_0_pre5, CMSSW_5_3_0_patch1, CMSSW_4_2_8_SLHChcal4, CMSSW_4_2_8_SLHCtk3, CMSSW_5_2_5, CMSSW_5_2_5_patch1, CMSSW_4_2_9_HLT1_bphpatch4, CMSSW_sm120515b, CMSSW_sm120515a, CMSSW_4_2_8_SLHCstd2, CMSSW_5_3_0, CMSSW_6_0_0_pre4, CMSSW_5_2_4_hltpatch2, CMSSW_4_2_9_HLT1_bphpatch3, CMSSW_6_0_X, CMSSW_5_2_5_cand1, CMSSW_4_2_8_SLHCtk_patch2, CMSSW_4_2_8_SLHChcal2_patch2, CMSSW_4_2_8_SLHC2_patch2, CMSSW_5_2_4_patch4, CMSSW_6_0_0_pre3, CMSSW_5_2_4_patch3, CMSSW_4_2_8_SLHCtk2, CMSSW_5_2_4_patch2, CMSSW_4_2_8_SLHChcal3, CMSSW_4_2_8_SLHCstd, CMSSW_5_2_4_patch1, CMSSW_5_2_4, CMSSW_5_2_3_patch4, CMSSW_4_2_8_SLHC2_patch1, CMSSW_4_2_8_SLHCtk_patch1, CMSSW_4_2_8_SLHChcal2_patch1, CMSSW_4_2_9_HLT1_bphpatch2, CMSSW_5_2_3_patch3, CMSSW_4_2_9_HLT1_bphpatch1, CMSSW_6_0_0_pre2, CMSSW_5_2_3_patch2, CMSSW_5_2_3_patch1, CMSSW_5_2_3, CMSSW_6_0_0_pre1, CMSSW_5_1_3, CMSSW_5_2_2, CMSSW_5_2_1, CMSSW_4_4_4, CMSSW_5_1_2_patch1, CMSSW_5_2_0, CMSSW_5_1_1_patch3, CMSSW_5_2_0_pre5_TS117504, CMSSW_5_1_2, CMSSW_5_2_0_pre6, CMSSW_5_1_1_patch2, CMSSW_4_4_3_patch1, CMSSW_5_1_1_patch1, CMSSW_5_2_0_pre5, CMSSW_5_1_1, CMSSW_5_0_1_patch3, CMSSW_5_0_1_patch2, CMSSW_5_2_0_pre4, CMSSW_4_2_8_SLHCtk, CMSSW_5_0_1_patch1, CMSSW_5_2_0_pre3HLT, CMSSW_4_2_8_p7rootfix, CMSSW_5_2_0_pre3, CMSSW_5_0_1, CMSSW_5_2_0_pre2_TS113282, CMSSW_4_4_3, CMSSW_5_0_0_patch1, CMSSW_5_2_0_pre2, CMSSW_5_2_0_pre1, CMSSW_5_1_0_pre2, CMSSW_5_1_0_pre1, CMSSW_4_4_2_patch10, CMSSW_5_0_0, CMSSW_4_2_8_SLHChcal, CMSSW_4_4_2_patch9, CMSSW_4_4_2_patch8, CMSSW_5_0_0_pre7, CMSSW_4_2_8_SLHC1, CMSSW_4_2_8_SLHC2, CMSSW_5_0_0_pre6g494, CMSSW_4_4_2_patch7, CMSSW_5_0_0_pre6, CMSSW_4_4_2_patch6, CMSSW_5_0_0_pre5_root532rc1, CMSSW_4_4_2_patch5, CMSSW_4_4_2_patch4, CMSSW_4_4_2_patch3, CMSSW_4_2_3_SLHC4_patch1, CMSSW_4_4_2_patch2, CMSSW_5_0_0_pre5, CMSSW_4_4_2_patch1, CMSSW_4_4_2, CMSSW_5_0_0_pre4, CMSSW_4_4_0_patch4, CMSSW_4_2_8_patch7, CMSSW_5_0_0_pre3, CMSSW_4_4_1, CMSSW_5_0_0_pre2, CMSSW_4_4_0_patch3, CMSSW_4_2_8_patch6, CMSSW_4_4_0_patch2, CMSSW_4_2_9_HLT1_hltpatch2, CMSSW_4_2_9_HLT2_hltpatch1, CMSSW_4_4_0_patch1, CMSSW_4_2_8_patch5, CMSSW_4_2_9_HLT3, CMSSW_5_0_0_pre1, CMSSW_4_4_0, CMSSW_4_2_9_HLT2, CMSSW_4_2_8_patch4, CMSSW_4_2_9_HLT1_patch1, CMSSW_4_4_0_pre10, CMSSW_4_2_8_patch3, CMSSW_4_4_0_pre9, CMSSW_4_2_8_patch2, CMSSW_4_2_9_HLT1, CMSSW_4_2_9_HLT, CMSSW_4_4_0_pre8, CMSSW_4_2_7_hltpatch3, CMSSW_4_2_8_patch1, CMSSW_4_4_0_pre7_g494p02, CMSSW_4_4_0_pre7, CMSSW_4_4_0_pre6, CMSSW_4_2_8, CMSSW_4_2_7_hltpatch2, CMSSW_4_2_3_SLHC4, CMSSW_4_2_3_SLHC2, CMSSW_4_2_5_hltpatch1, CMSSW_4_2_7_hltpatch1, CMSSW_4_2_7_patch2, CMSSW_4_4_0_pre5, CMSSW_4_2_7_patch1, CMSSW_4_2_7, CMSSW_4_4_0_pre4, CMSSW_4_3_0_dqmpatch2, CMSSW_4_2_6, CMSSW_4_4_0_pre3, CMSSW_4_3_0_dqmpatch1, CMSSW_4_3_0, CMSSW_4_4_0_pre2, CMSSW_4_2_4_patch2, CMSSW_4_2_4_hltpatch1, CMSSW_4_2_5, V03-03-05-01, CMSSW_4_4_0_pre1, CMSSW_4_3_0_pre6_dqmIO, CMSSW_4_3_0_pre7, CMSSW_4_2_4_patch1, CMSSW_4_2_3_SLHC3, CMSSW_4_2_4, CMSSW_4_2_3_patch5, CMSSW_4_2_3_patch4, CMSSW_4_3_0_pre6, CMSSW_4_2_3_patch3, V03-05-00, CMSSW_4_2_3_patch2, CMSSW_4_3_0_pre5, CMSSW_4_2_3_patch1, CMSSW_4_2_3_SLHC_pre1, CMSSW_4_2_2_patch2, CMSSW_4_2_3, CMSSW_4_2_2_patch1, CMSSW_4_3_0_pre4, CMSSW_4_2_1_patch2, CMSSW_4_2_2_SLHC_pre1, CMSSW_4_2_2, CMSSW_4_2_1_patch1, CMSSW_4_3_0_pre3, CMSSW_4_2_1, CMSSW_4_2_0, CMSSW_4_3_0_pre2, CMSSW_4_3_0_pre1, CMSSW_4_2_0_pre8, V03-04-00-01, CMSSW_4_2_0_pre7, CMSSW_4_2_0_pre6, CMSSW_4_2_0_pre5, V03-04-00, V03-03-06, HEAD
Branch point for: branch53X_calibration
Changes since 1.4: +18 -3 lines
Log Message:
enable to write out surface deformation parameters for DetUnits,
but writing only treated for absolute positions (not relative),
reading not at all...

File Contents

# Content
1 #include "Alignment/CommonAlignment/interface/Alignable.h"
2 #include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
3 #include "FWCore/MessageLogger/interface/MessageLogger.h"
4 #include "Geometry/CommonTopologies/interface/SurfaceDeformation.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 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 // if a unit: store surface deformation (little kind of hack)...
41 std::vector<double> pars;
42 if (ali->alignableObjectId() == align::AlignableDetUnit) { // only detunits have them
43 std::vector<std::pair<int,SurfaceDeformation*> > result;
44 if (1 == ali->surfaceDeformationIdPairs(result)) { // might not have any...
45 pars = result[0].second->parameters();
46 }
47 }
48
49 // write
50 return writeAbsRaw(
51 AlignableAbsData( pos,rot,
52 ali->id(),
53 ali->alignableObjectId(),
54 pars)
55 );
56 }
57
58 return 1;
59 }
60
61
62 // ----------------------------------------------------------------------------
63 int AlignableDataIO::writeRelPos(Alignable* ali, bool validCheck)
64 {
65 if ( !(validCheck) || ali->alignmentParameters()->isValid() )
66 {
67 // rel. shift in global frame
68 align::GlobalVector pos = ali->displacement();
69 // rel. rotation in global frame
70 align::RotationType rot = ali->rotation();
71 // FIXME: should add something to store changes of surface deformations...
72 std::vector<double> pars;
73 // write
74 return writeRelRaw(AlignableRelData(pos,rot,ali->id(),
75 ali->alignableObjectId(), pars));
76 }
77
78 return 1;
79 }
80
81
82 // ----------------------------------------------------------------------------
83 int AlignableDataIO::writeOrgPos(Alignable* ali, bool validCheck)
84 {
85 if ( !(validCheck) || ali->alignmentParameters()->isValid() )
86 {
87 // orig position
88 align::PositionType pos = ali->globalPosition() - ali->displacement();
89 // orig rotation
90 align::RotationType rot = ali->globalRotation() * ali->rotation().transposed();
91 // FIXME: should add something to store changes of surface deformations...
92 std::vector<double> pars;
93 // write
94 return writeAbsRaw(AlignableAbsData(pos,rot,ali->id(),
95 ali->alignableObjectId(), pars));
96 }
97
98 return 1;
99 }
100
101
102 // ----------------------------------------------------------------------------
103 int AlignableDataIO::writeAbsPos(const align::Alignables& alivec,
104 bool validCheck)
105 {
106
107 int icount=0;
108 for( align::Alignables::const_iterator it=alivec.begin();
109 it!=alivec.end(); it++ )
110 {
111 int iret = writeAbsPos(*it,validCheck);
112 if (iret==0) icount++;
113 }
114 LogDebug("WriteAbsPos") << "all,written: " << alivec.size() <<","<< icount;
115
116 return 0;
117
118 }
119
120
121 // ----------------------------------------------------------------------------
122 AlignablePositions
123 AlignableDataIO::readAbsPos(const align::Alignables& alivec, int& ierr)
124 {
125
126 AlignablePositions retvec;
127 int ierr2=0;
128 ierr=0;
129 for( align::Alignables::const_iterator it=alivec.begin();
130 it!=alivec.end(); it++ )
131 {
132 AlignableAbsData ad=readAbsPos(*it, ierr2);
133 if (ierr2==0) retvec.push_back(ad);
134 }
135
136 LogDebug("ReadAbsPos") << "all,written: " << alivec.size() <<"," << retvec.size();
137
138 return retvec;
139
140 }
141
142
143 // ----------------------------------------------------------------------------
144 int AlignableDataIO::writeOrgPos( const align::Alignables& alivec,
145 bool validCheck )
146 {
147
148 int icount=0;
149 for( align::Alignables::const_iterator it=alivec.begin();
150 it!=alivec.end(); it++ )
151 {
152 int iret=writeOrgPos(*it,validCheck);
153 if (iret==0) icount++;
154 }
155
156 LogDebug("WriteOrgPos") << "all,written: " << alivec.size() <<"," << icount;
157 return 0;
158
159 }
160
161
162 // ----------------------------------------------------------------------------
163 AlignablePositions
164 AlignableDataIO::readOrgPos(const align::Alignables& alivec, int& ierr)
165 {
166
167 AlignablePositions retvec;
168 int ierr2=0;
169 ierr=0;
170 for( align::Alignables::const_iterator it=alivec.begin();
171 it!=alivec.end(); it++ )
172 {
173 AlignableAbsData ad=readOrgPos(*it, ierr2);
174 if (ierr2==0) retvec.push_back(ad);
175 }
176
177 LogDebug("ReadOrgPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
178
179 return retvec;
180
181 }
182
183
184 // ----------------------------------------------------------------------------
185 int AlignableDataIO::writeRelPos(const align::Alignables& alivec,
186 bool validCheck )
187 {
188
189 int icount=0;
190 for( align::Alignables::const_iterator it=alivec.begin();
191 it!=alivec.end(); it++ ) {
192 int iret=writeRelPos(*it,validCheck);
193 if (iret==0) icount++;
194 }
195 LogDebug("WriteRelPos") << "all,written: " << alivec.size() <<", "<< icount;
196 return 0;
197
198 }
199
200
201 // ----------------------------------------------------------------------------
202 AlignableShifts
203 AlignableDataIO::readRelPos(const align::Alignables& alivec, int& ierr)
204 {
205
206 AlignableShifts retvec;
207 int ierr2=0;
208 ierr=0;
209 for( align::Alignables::const_iterator it=alivec.begin();
210 it!=alivec.end(); it++ )
211 {
212 AlignableRelData ad=readRelPos(*it, ierr2);
213 if (ierr2==0) retvec.push_back(ad);
214 }
215 LogDebug("ReadRelPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
216
217 return retvec;
218
219 }