ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/src/AlignableDataIO.cc
Revision: 1.2
Committed: Tue Nov 7 17:48:25 2006 UTC (18 years, 5 months ago) by flucke
Content type: text/plain
Branch: MAIN
CVS Tags: CMSSW_1_3_6, CMSSW_1_3_1_HLT6, CMSSW_1_3_5, CMSSW_1_3_1_HLT5, CMSSW_1_3_1_HLT4, CMSSW_1_3_1_HLT3, CMSSW_1_3_4, CMSSW_1_3_3, CMSSW_1_3_2, CMSSW_1_2_6, CMSSW_1_2_5, CMSSW_1_3_1, CMSSW_1_2_4, CMSSW_1_4_0_pre2, CMSSW_1_3_0, CMSSW_1_3_0_pre7, CMSSW_1_4_0_pre1, CMSSW_1_3_0_pre6, CMSSW_1_2_0_4821, CMSSW_1_2_0_g4_82p01, V01-02-00, V01-01-04, CMSSW_1_3_0_pre5, CMSSW_1_3_0_pre4, CMSSW_1_2_3, V01-01-03, CMSSW_1_3_0_pre3, V01-01-02, CMSSW_1_2_0_g4_82, CMSSW_1_3_0_SLC4_pre2, CMSSW_1_3_0_pre2, CMSSW_1_2_2, CMSSW_1_2_1, V01-01-01, V01-01-00, CMSSW_1_3_0_SLC4_pre1, CMSSW_1_3_0_pre1, V01-00-00, CMSSW_1_2_0_g4_81, CMSSW_1_2_0_SL4, V00-08-01, CMSSW_1_2_0, V00-08-00, CMSSW_1_2_0_pre9, CMSSW_1_2_0_pre8_g4_81, CMSSW_1_2_0_pre8, V00-07-03, CMSSW_1_2_0_pre6, CMSSW_1_2_0_pre5, V00-07-02, V00-07-01, V00-07-00
Changes since 1.1: +6 -6 lines
Log Message:
reduce severity level of many messages

File Contents

# User Rev Content
1 fronga 1.1 #include "FWCore/MessageLogger/interface/MessageLogger.h"
2    
3     #include "Alignment/CommonAlignmentParametrization/interface/AlignmentTransformations.h"
4     #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     if ( ali->alignmentParameters()->isValid() || !(validCheck) )
35     {
36     // position in global frame
37     GlobalPoint pos = ali->surface().position();
38     // global rotation
39     Surface::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     else
49     return 1;
50     }
51    
52    
53     // ----------------------------------------------------------------------------
54     int AlignableDataIO::writeRelPos(Alignable* ali, bool validCheck)
55     {
56     if ( ali->alignmentParameters()->isValid() || !(validCheck) )
57     {
58     // rel. shift in global frame
59     GlobalVector pos = ali->displacement();
60     // rel. rotation in global frame
61     Surface::RotationType rot = ali->rotation();
62     // write
63     TrackerAlignableId converter;
64     return writeRelRaw(AlignableRelData(pos,rot,converter.alignableId(ali),
65     converter.alignableTypeId(ali)));
66     }
67     else
68     return 1;
69     }
70    
71    
72     // ----------------------------------------------------------------------------
73     int AlignableDataIO::writeOrgPos(Alignable* ali, bool validCheck)
74     {
75     if ( ali->alignmentParameters()->isValid() || !(validCheck) )
76     {
77     // misalignment shift/rotation
78     GlobalVector ashift = ali->displacement();
79     Surface::RotationType arot = ali->rotation();
80     // global position/rotation
81     GlobalPoint cpos = ali->surface().position();
82     Surface::RotationType crot = ali->surface().rotation();
83     // orig position
84     GlobalPoint pos(cpos.x()-ashift.x(),
85     cpos.y()-ashift.y(),
86     cpos.z()-ashift.z());
87     // orig rotation
88     int ierr;
89     AlignmentTransformations alignTransform;
90     Surface::RotationType rot
91     = crot*alignTransform.rotationType( alignTransform.algebraicMatrix(arot).inverse(ierr) );
92     // write
93     TrackerAlignableId converter;
94     return writeAbsRaw(AlignableAbsData(pos,rot,converter.alignableId(ali),
95     converter.alignableTypeId(ali)));
96     }
97     else
98     return 1;
99     }
100    
101    
102     // ----------------------------------------------------------------------------
103     int AlignableDataIO::writeAbsPos(const std::vector<Alignable*>& alivec,
104     bool validCheck)
105     {
106    
107     int icount=0;
108     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
109     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     AlignableDataIO::readAbsPos(const std::vector<Alignable*>& alivec, int& ierr)
124     {
125    
126     AlignablePositions retvec;
127     int ierr2=0;
128     ierr=0;
129     for( std::vector<Alignable*>::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 flucke 1.2 LogDebug("ReadAbsPos") << "all,written: " << alivec.size() <<"," << retvec.size();
137 fronga 1.1
138     return retvec;
139    
140     }
141    
142    
143     // ----------------------------------------------------------------------------
144     int AlignableDataIO::writeOrgPos( const std::vector<Alignable*>& alivec,
145     bool validCheck )
146     {
147    
148     int icount=0;
149     for( std::vector<Alignable*>::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 flucke 1.2 LogDebug("WriteOrgPos") << "all,written: " << alivec.size() <<"," << icount;
157 fronga 1.1 return 0;
158    
159     }
160    
161    
162     // ----------------------------------------------------------------------------
163     AlignablePositions
164     AlignableDataIO::readOrgPos(const std::vector<Alignable*>& alivec, int& ierr)
165     {
166    
167     AlignablePositions retvec;
168     int ierr2=0;
169     ierr=0;
170     for( std::vector<Alignable*>::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 flucke 1.2 LogDebug("ReadOrgPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
178 fronga 1.1
179     return retvec;
180    
181     }
182    
183    
184     // ----------------------------------------------------------------------------
185     int AlignableDataIO::writeRelPos(const std::vector<Alignable*>& alivec,
186     bool validCheck )
187     {
188    
189     int icount=0;
190     for( std::vector<Alignable*>::const_iterator it=alivec.begin();
191     it!=alivec.end(); it++ ) {
192     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     AlignableDataIO::readRelPos(const std::vector<Alignable*>& alivec, int& ierr)
204     {
205    
206     AlignableShifts retvec;
207     int ierr2=0;
208     ierr=0;
209     for( std::vector<Alignable*>::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 flucke 1.2 LogDebug("ReadRelPos") << "all,read: " << alivec.size() <<", "<< retvec.size();
216 fronga 1.1
217     return retvec;
218    
219     }
220