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