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

# User Rev Content
1 cklae 1.4 #include "Alignment/CommonAlignment/interface/Alignable.h"
2     #include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
3 fronga 1.1 #include "FWCore/MessageLogger/interface/MessageLogger.h"
4 flucke 1.5 #include "Geometry/CommonTopologies/interface/SurfaceDeformation.h"
5 fronga 1.1
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 flucke 1.5 // 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 cklae 1.3 // write
50     return writeAbsRaw(
51     AlignableAbsData( pos,rot,
52 cklae 1.4 ali->id(),
53 flucke 1.5 ali->alignableObjectId(),
54     pars)
55 cklae 1.3 );
56     }
57    
58     return 1;
59 fronga 1.1 }
60    
61    
62     // ----------------------------------------------------------------------------
63     int AlignableDataIO::writeRelPos(Alignable* ali, bool validCheck)
64     {
65 cklae 1.3 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 flucke 1.5 // FIXME: should add something to store changes of surface deformations...
72     std::vector<double> pars;
73 cklae 1.3 // write
74 cklae 1.4 return writeRelRaw(AlignableRelData(pos,rot,ali->id(),
75 flucke 1.5 ali->alignableObjectId(), pars));
76 cklae 1.3 }
77    
78     return 1;
79 fronga 1.1 }
80    
81    
82     // ----------------------------------------------------------------------------
83     int AlignableDataIO::writeOrgPos(Alignable* ali, bool validCheck)
84     {
85 cklae 1.3 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 flucke 1.5 // FIXME: should add something to store changes of surface deformations...
92     std::vector<double> pars;
93 cklae 1.3 // write
94 cklae 1.4 return writeAbsRaw(AlignableAbsData(pos,rot,ali->id(),
95 flucke 1.5 ali->alignableObjectId(), pars));
96 cklae 1.3 }
97    
98     return 1;
99 fronga 1.1 }
100    
101    
102     // ----------------------------------------------------------------------------
103 cklae 1.4 int AlignableDataIO::writeAbsPos(const align::Alignables& alivec,
104 cklae 1.3 bool validCheck)
105 fronga 1.1 {
106    
107     int icount=0;
108 cklae 1.4 for( align::Alignables::const_iterator it=alivec.begin();
109 cklae 1.3 it!=alivec.end(); it++ )
110     {
111     int iret = writeAbsPos(*it,validCheck);
112     if (iret==0) icount++;
113     }
114 flucke 1.2 LogDebug("WriteAbsPos") << "all,written: " << alivec.size() <<","<< icount;
115 fronga 1.1
116     return 0;
117    
118     }
119    
120    
121     // ----------------------------------------------------------------------------
122     AlignablePositions
123 cklae 1.4 AlignableDataIO::readAbsPos(const align::Alignables& alivec, int& ierr)
124 fronga 1.1 {
125    
126     AlignablePositions retvec;
127     int ierr2=0;
128     ierr=0;
129 cklae 1.4 for( align::Alignables::const_iterator it=alivec.begin();
130 cklae 1.3 it!=alivec.end(); it++ )
131     {
132     AlignableAbsData ad=readAbsPos(*it, ierr2);
133     if (ierr2==0) retvec.push_back(ad);
134     }
135 fronga 1.1
136 flucke 1.2 LogDebug("ReadAbsPos") << "all,written: " << alivec.size() <<"," << retvec.size();
137 fronga 1.1
138     return retvec;
139    
140     }
141    
142    
143     // ----------------------------------------------------------------------------
144 cklae 1.4 int AlignableDataIO::writeOrgPos( const align::Alignables& alivec,
145 cklae 1.3 bool validCheck )
146 fronga 1.1 {
147    
148     int icount=0;
149 cklae 1.4 for( align::Alignables::const_iterator it=alivec.begin();
150 cklae 1.3 it!=alivec.end(); it++ )
151     {
152     int iret=writeOrgPos(*it,validCheck);
153     if (iret==0) icount++;
154     }
155 fronga 1.1
156 flucke 1.2 LogDebug("WriteOrgPos") << "all,written: " << alivec.size() <<"," << icount;
157 fronga 1.1 return 0;
158    
159     }
160    
161    
162     // ----------------------------------------------------------------------------
163     AlignablePositions
164 cklae 1.4 AlignableDataIO::readOrgPos(const align::Alignables& alivec, int& ierr)
165 fronga 1.1 {
166    
167     AlignablePositions retvec;
168     int ierr2=0;
169     ierr=0;
170 cklae 1.4 for( align::Alignables::const_iterator it=alivec.begin();
171 cklae 1.3 it!=alivec.end(); it++ )
172     {
173     AlignableAbsData ad=readOrgPos(*it, ierr2);
174     if (ierr2==0) retvec.push_back(ad);
175     }
176 fronga 1.1
177 flucke 1.2 LogDebug("ReadOrgPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
178 fronga 1.1
179     return retvec;
180    
181     }
182    
183    
184     // ----------------------------------------------------------------------------
185 cklae 1.4 int AlignableDataIO::writeRelPos(const align::Alignables& alivec,
186 cklae 1.3 bool validCheck )
187 fronga 1.1 {
188    
189     int icount=0;
190 cklae 1.4 for( align::Alignables::const_iterator it=alivec.begin();
191 cklae 1.3 it!=alivec.end(); it++ ) {
192 fronga 1.1 int iret=writeRelPos(*it,validCheck);
193     if (iret==0) icount++;
194     }
195 flucke 1.2 LogDebug("WriteRelPos") << "all,written: " << alivec.size() <<", "<< icount;
196 fronga 1.1 return 0;
197    
198     }
199    
200    
201     // ----------------------------------------------------------------------------
202     AlignableShifts
203 cklae 1.4 AlignableDataIO::readRelPos(const align::Alignables& alivec, int& ierr)
204 fronga 1.1 {
205    
206     AlignableShifts retvec;
207     int ierr2=0;
208     ierr=0;
209 cklae 1.4 for( align::Alignables::const_iterator it=alivec.begin();
210 cklae 1.3 it!=alivec.end(); it++ )
211     {
212     AlignableRelData ad=readRelPos(*it, ierr2);
213     if (ierr2==0) retvec.push_back(ad);
214     }
215 flucke 1.2 LogDebug("ReadRelPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
216 fronga 1.1
217     return retvec;
218    
219     }