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... |
# | 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 | } |