39 std::pair<typename T::DetSet::const_iterator, typename T::DetSet::const_iterator>
41 typedef std::pair<typename T::DetSet::const_iterator, typename T::DetSet::const_iterator> return_type;
42 typename T::const_iterator
match = detset.find(
id);
43 if (match == detset.end())
return return_type();
44 typename T::DetSet hits = *
match;
45 return return_type(hits.begin(), hits.end());
55 matchedRecHits_( ps.getParameter<edm::
InputTag>(
"matchedRecHits") ),
56 rphiRecHits_( ps.getParameter<edm::
InputTag>(
"rphiRecHits") ),
57 stereoRecHits_( ps.getParameter<edm::
InputTag>(
"stereoRecHits") ) {
62 dbe_->setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Strip/SISTRIP");
64 meNumTotRphi = dbe_->book1D(
"NumTotRphi",
"Num of RecHits rphi",100, 0, 10000);
65 meNumTotSas = dbe_->book1D(
"NumTotSas",
"Num of RecHits sas",100, 0, 10000);
66 meNumTotMatched = dbe_->book1D(
"NumTotMatched",
"Num of RecHits rmatched",100, 0, 10000);
68 dbe_->setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Strip/TIB");
69 meNumRphiTIB = dbe_->book1D(
"NumRphiTIB",
"Num of RecHits rphi", 100, 0, 1000.);
70 meNumSasTIB = dbe_->book1D(
"NumSasTIB",
"Num of RecHits sas", 100, 0, 1000.);
71 meNumMatchedTIB = dbe_->book1D(
"NumMatchedTIB",
"Num of RecHits matched", 100, 0, 1000.);
74 for(
int i = 0 ;
i<4 ;
i++) {
76 sprintf(histo,
"Nstp_rphi_layer%dtib",
i+1);
77 meNstpRphiTIB[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
78 sprintf(histo,
"Adc_rphi_layer%dtib",
i+1);
79 meAdcRphiTIB[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
80 sprintf(histo,
"Posx_rphi_layer%dtib",
i+1);
81 mePosxRphiTIB[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
82 sprintf(histo,
"Errx_rphi_layer%dtib",
i+1);
83 meErrxRphiTIB[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0,0.01);
84 sprintf(histo,
"Res_rphi_layer%dtib",
i+1);
85 meResRphiTIB[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.02,+0.02);
86 sprintf(histo,
"Pull_LF_rphi_layer%dtib",
i+1);
88 sprintf(histo,
"Pull_MF_rphi_layer%dtib",
i+1);
90 sprintf(histo,
"Chi2_rphi_layer%dtib",
i+1);
91 meChi2RphiTIB[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
95 for(
int i = 0 ;
i<2 ;
i++) {
97 sprintf(histo,
"Nstp_sas_layer%dtib",
i+1);
98 meNstpSasTIB[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
99 sprintf(histo,
"Adc_sas_layer%dtib",
i+1);
100 meAdcSasTIB[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
101 sprintf(histo,
"Posx_sas_layer%dtib",
i+1);
102 mePosxSasTIB[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
103 sprintf(histo,
"Errx_sas_layer%dtib",
i+1);
104 meErrxSasTIB[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0.,0.01);
105 sprintf(histo,
"Res_sas_layer%dtib",
i+1);
106 meResSasTIB[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.02,+0.02);
107 sprintf(histo,
"Pull_LF_sas_layer%dtib",
i+1);
109 sprintf(histo,
"Pull_MF_sas_layer%dtib",
i+1);
111 sprintf(histo,
"Chi2_sas_layer%dtib",
i+1);
112 meChi2SasTIB[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
114 sprintf(histo,
"Posx_matched_layer%dtib",
i+1);
116 sprintf(histo,
"Posy_matched_layer%dtib",
i+1);
118 sprintf(histo,
"Errx_matched_layer%dtib",
i+1);
120 sprintf(histo,
"Erry_matched_layer%dtib",
i+1);
122 sprintf(histo,
"Resx_matched_layer%dtib",
i+1);
123 meResxMatchedTIB[
i] = dbe_->book1D(histo,
"RecHit Res(x) coord.",100,-0.02, +0.02);
124 sprintf(histo,
"Resy_matched_layer%dtib",
i+1);
126 sprintf(histo,
"Chi2_matched_layer%dtib",
i+1);
130 dbe_->setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Strip/TOB");
131 meNumRphiTOB = dbe_->book1D(
"NumRphiTOB",
"Num of RecHits rphi", 100, 0, 1000.);
132 meNumSasTOB = dbe_->book1D(
"NumSasTOB",
"Num of RecHits sas", 100, 0, 1000.);
133 meNumMatchedTOB = dbe_->book1D(
"NumMatchedTOB",
"Num of RecHits matched", 100, 0, 1000.);
135 for(
int i = 0 ;
i<6 ;
i++) {
137 sprintf(histo,
"Nstp_rphi_layer%dtob",
i+1);
138 meNstpRphiTOB[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
139 sprintf(histo,
"Adc_rphi_layer%dtob",
i+1);
140 meAdcRphiTOB[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
141 sprintf(histo,
"Posx_rphi_layer%dtob",
i+1);
142 mePosxRphiTOB[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
143 sprintf(histo,
"Errx_rphi_layer%dtob",
i+1);
144 meErrxRphiTOB[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0,0.01);
145 sprintf(histo,
"Res_rphi_layer%dtob",
i+1);
146 meResRphiTOB[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.02,+0.02);
147 sprintf(histo,
"Pull_LF_rphi_layer%dtob",
i+1);
149 sprintf(histo,
"Pull_MF_rphi_layer%dtob",
i+1);
151 sprintf(histo,
"Chi2_rphi_layer%dtob",
i+1);
152 meChi2RphiTOB[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
156 for(
int i = 0 ;
i<2 ;
i++) {
158 sprintf(histo,
"Nstp_sas_layer%dtob",
i+1);
159 meNstpSasTOB[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
160 sprintf(histo,
"Adc_sas_layer%dtob",
i+1);
161 meAdcSasTOB[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
162 sprintf(histo,
"Posx_sas_layer%dtob",
i+1);
163 mePosxSasTOB[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
164 sprintf(histo,
"Errx_sas_layer%dtob",
i+1);
165 meErrxSasTOB[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0.,0.01);
166 sprintf(histo,
"Res_sas_layer%dtob",
i+1);
167 meResSasTOB[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.02,+0.02);
168 sprintf(histo,
"Pull_LF_sas_layer%dtob",
i+1);
170 sprintf(histo,
"Pull_MF_sas_layer%dtob",
i+1);
172 sprintf(histo,
"Chi2_sas_layer%dtob",
i+1);
173 meChi2SasTOB[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
175 sprintf(histo,
"Posx_matched_layer%dtob",
i+1);
177 sprintf(histo,
"Posy_matched_layer%dtob",
i+1);
179 sprintf(histo,
"Errx_matched_layer%dtob",
i+1);
181 sprintf(histo,
"Erry_matched_layer%dtob",
i+1);
183 sprintf(histo,
"Resx_matched_layer%dtob",
i+1);
184 meResxMatchedTOB[
i] = dbe_->book1D(histo,
"RecHit Res(x) coord.",100,-0.02, +0.02);
185 sprintf(histo,
"Resy_matched_layer%dtob",
i+1);
187 sprintf(histo,
"Chi2_matched_layer%dtob",
i+1);
191 dbe_->setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Strip/TID");
192 meNumRphiTID = dbe_->book1D(
"NumRphiTID",
"Num of RecHits rphi", 100, 0, 1000.);
193 meNumSasTID = dbe_->book1D(
"NumSasTID",
"Num of RecHits sas", 100, 0, 1000.);
194 meNumMatchedTID = dbe_->book1D(
"NumMatchedTID",
"Num of RecHits matched", 100, 0, 1000.);
197 for(
int i = 0 ;
i<3 ;
i++) {
199 sprintf(histo,
"Nstp_rphi_layer%dtid",
i+1);
200 meNstpRphiTID[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
201 sprintf(histo,
"Adc_rphi_layer%dtid",
i+1);
202 meAdcRphiTID[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
203 sprintf(histo,
"Posx_rphi_layer%dtid",
i+1);
204 mePosxRphiTID[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
205 sprintf(histo,
"Errx_rphi_layer%dtid",
i+1);
206 meErrxRphiTID[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0,0.5);
207 sprintf(histo,
"Res_rphi_layer%dtid",
i+1);
208 meResRphiTID[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.5,+0.5);
209 sprintf(histo,
"Pull_LF_rphi_layer%dtid",
i+1);
211 sprintf(histo,
"Pull_MF_rphi_layer%dtid",
i+1);
213 sprintf(histo,
"Chi2_rphi_layer%dtid",
i+1);
214 meChi2RphiTID[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
218 for(
int i = 0 ;
i<2 ;
i++) {
220 sprintf(histo,
"Nstp_sas_layer%dtid",
i+1);
221 meNstpSasTID[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
222 sprintf(histo,
"Adc_sas_layer%dtid",
i+1);
223 meAdcSasTID[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
224 sprintf(histo,
"Posx_sas_layer%dtid",
i+1);
225 mePosxSasTID[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
226 sprintf(histo,
"Errx_sas_layer%dtid",
i+1);
227 meErrxSasTID[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0.,0.5);
228 sprintf(histo,
"Res_sas_layer%dtid",
i+1);
229 meResSasTID[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.5,+0.5);
230 sprintf(histo,
"Pull_LF_sas_layer%dtid",
i+1);
232 sprintf(histo,
"Pull_MF_sas_layer%dtid",
i+1);
234 sprintf(histo,
"Chi2_sas_layer%dtid",
i+1);
235 meChi2SasTID[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
237 sprintf(histo,
"Posx_matched_layer%dtid",
i+1);
239 sprintf(histo,
"Posy_matched_layer%dtid",
i+1);
241 sprintf(histo,
"Errx_matched_layer%dtid",
i+1);
243 sprintf(histo,
"Erry_matched_layer%dtid",
i+1);
245 sprintf(histo,
"Resx_matched_layer%dtid",
i+1);
247 sprintf(histo,
"Resy_matched_layer%dtid",
i+1);
249 sprintf(histo,
"Chi2_matched_layer%dtid",
i+1);
253 dbe_->setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Strip/TEC");
254 meNumRphiTEC = dbe_->book1D(
"NumRphiTEC",
"Num of RecHits rphi", 100, 0, 1000.);
255 meNumSasTEC = dbe_->book1D(
"NumSasTEC",
"Num of RecHits sas", 100, 0, 1000.);
256 meNumMatchedTEC = dbe_->book1D(
"NumMatchedTEC",
"Num of RecHits matched", 100, 0, 1000.);
259 for(
int i = 0 ;
i<7 ;
i++) {
261 sprintf(histo,
"Nstp_rphi_layer%dtec",
i+1);
262 meNstpRphiTEC[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
263 sprintf(histo,
"Adc_rphi_layer%dtec",
i+1);
264 meAdcRphiTEC[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
265 sprintf(histo,
"Posx_rphi_layer%dtec",
i+1);
266 mePosxRphiTEC[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
267 sprintf(histo,
"Errx_rphi_layer%dtec",
i+1);
268 meErrxRphiTEC[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0,0.5);
269 sprintf(histo,
"Res_rphi_layer%dtec",
i+1);
270 meResRphiTEC[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.5,+0.5);
271 sprintf(histo,
"Pull_LF_rphi_layer%dtec",
i+1);
273 sprintf(histo,
"Pull_MF_rphi_layer%dtec",
i+1);
275 sprintf(histo,
"Chi2_rphi_layer%dtec",
i+1);
276 meChi2RphiTEC[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
280 for(
int i = 0 ;
i<5 ;
i++) {
281 if(
i == 0 ||
i == 1 ||
i == 4) {
283 sprintf(histo,
"Nstp_sas_layer%dtec",
i+1);
284 meNstpSasTEC[
i] = dbe_->book1D(histo,
"RecHit Cluster Size",10,0.5,10.5);
285 sprintf(histo,
"Adc_sas_layer%dtec",
i+1);
286 meAdcSasTEC[
i] = dbe_->book1D(histo,
"RecHit Cluster Charge",100,0.,300.);
287 sprintf(histo,
"Posx_sas_layer%dtec",
i+1);
288 mePosxSasTEC[
i] = dbe_->book1D(histo,
"RecHit x coord.",100,-6.0,+6.0);
289 sprintf(histo,
"Errx_sas_layer%dtec",
i+1);
290 meErrxSasTEC[
i] = dbe_->book1D(histo,
"RecHit err(x) coord.",100,0.,0.5);
291 sprintf(histo,
"Res_sas_layer%dtec",
i+1);
292 meResSasTEC[
i] = dbe_->book1D(histo,
"RecHit Residual",100,-0.5,+0.5);
293 sprintf(histo,
"Pull_LF_sas_layer%dtec",
i+1);
295 sprintf(histo,
"Pull_MF_sas_layer%dtec",
i+1);
297 sprintf(histo,
"Chi2_sas_layer%dtec",
i+1);
298 meChi2SasTEC[
i] = dbe_->book1D(histo,
"RecHit Chi2 test",100,0., 50);
300 sprintf(histo,
"Posx_matched_layer%dtec",
i+1);
302 sprintf(histo,
"Posy_matched_layer%dtec",
i+1);
304 sprintf(histo,
"Errx_matched_layer%dtec",
i+1);
306 sprintf(histo,
"Erry_matched_layer%dtec",
i+1);
308 sprintf(histo,
"Resx_matched_layer%dtec",
i+1);
310 sprintf(histo,
"Resy_matched_layer%dtec",
i+1);
312 sprintf(histo,
"Chi2_matched_layer%dtec",
i+1);
339 std::string rechitProducer =
"SiStripRecHits2D";
349 int numrechitrphi =0;
351 int numrechitmatched=0;
353 int totTibnumrechitrphi=0;
354 int totTibnumrechitsas=0;
355 int totTibnumrechitmatched=0;
356 int totTobnumrechitrphi=0;
357 int totTobnumrechitsas=0;
358 int totTobnumrechitmatched=0;
359 int totTidnumrechitrphi=0;
360 int totTidnumrechitsas=0;
361 int totTidnumrechitmatched=0;
362 int totTecnumrechitrphi=0;
363 int totTecnumrechitsas=0;
364 int totTecnumrechitmatched=0;
365 int totrechitrphi =0;
367 int totrechitmatched =0;
375 std::vector<DetId> IDs;
376 IDs.reserve(rechitsrphi->size() + rechitsmatched->size() + rechitsstereo->size());
382 for(std::vector<DetId>::const_iterator it = IDs.begin(); it != IDs.end(); ++it ){
383 uint32_t myid=((*it).rawId());
419 std::pair<SiStripRecHit2DCollection::DetSet::const_iterator,SiStripRecHit2DCollection::DetSet::const_iterator> rechitrphiRange =
helper::getRange(*rechitsrphi, detid);
424 numrechitrphi = rechitrphiRangeIteratorEnd - rechitrphiRangeIteratorBegin;
430 if(numrechitrphi > 0 ){
431 totrechitrphi+=numrechitrphi;
432 for(iterrphi=rechitrphiRangeIteratorBegin; iterrphi!=rechitrphiRangeIteratorEnd;++iterrphi){
446 clusiz = clust->amplitudes().size();
447 const std::vector<uint8_t> amplitudes=clust->amplitudes();
448 for(
size_t ia=0; ia<amplitudes.size();ia++){
449 totcharge+=amplitudes[ia];
460 float mindist = 999999;
465 dist = fabs(
rechitrphix[i] - (*m).localPosition().x());
477 rhparameters[0] = position.
x();
478 rhparameters[1] = position.
y();
484 R[0][0] = error.
xx();
485 R[0][1] = error.
xy();
486 R[1][1] = error.
yy();
489 double est = R.similarity(r);
507 std::pair<SiStripRecHit2DCollection::DetSet::const_iterator,SiStripRecHit2DCollection::DetSet::const_iterator> rechitsasRange =
helper::getRange(*rechitsstereo, detid);
511 numrechitsas = rechitsasRangeIteratorEnd - rechitsasRangeIteratorBegin;
512 if(numrechitsas > 0){
513 totrechitsas+=numrechitsas;
514 for(itersas=rechitsasRangeIteratorBegin; itersas!=rechitsasRangeIteratorEnd;++itersas){
527 clusiz = clust->amplitudes().size();
528 const std::vector<uint8_t> amplitudes=clust->amplitudes();
529 for(
size_t ia=0; ia<amplitudes.size();ia++){
530 totcharge+=amplitudes[ia];
540 float mindist = 999999;
547 dist = fabs(
rechitsasx[j] - (*m).localPosition().x());
559 rhparameters[0] = position.
x();
560 rhparameters[1] = position.
y();
567 R[0][0] = error.
xx();
568 R[0][1] = error.
xy();
569 R[1][1] = error.
yy();
572 double est = R.similarity(r);
593 std::pair<SiStripMatchedRecHit2DCollection::DetSet::const_iterator,SiStripMatchedRecHit2DCollection::DetSet::const_iterator> rechitmatchedRange =
helper::getRange(*rechitsmatched, detid);
597 numrechitmatched = rechitmatchedRangeIteratorEnd - rechitmatchedRangeIteratorBegin;
598 if(numrechitmatched > 0){
599 totrechitmatched +=numrechitmatched;
601 for(itermatched=rechitmatchedRangeIteratorBegin; itermatched!=rechitmatchedRangeIteratorEnd;++itermatched){
606 float mindist = 999999;
607 float distx = 999999;
608 float disty = 999999;
610 std::pair<LocalPoint,LocalVector> closestPair;
632 std::pair<LocalPoint,LocalVector> hitPair;
641 dist =
sqrt(distx*distx+disty*disty);
646 closestPair = hitPair;
658 rhparameters[0] = position.
x();
659 rhparameters[1] = position.
y();
662 shparameters[0] = sh.
x();
663 shparameters[1] = sh.
y();
666 R[0][0] = error.
xx();
667 R[0][1] = error.
xy();
668 R[1][1] = error.
yy();
671 double est = R.similarity(r);
686 if(numrechitrphi>0 || numrechitsas>0 || numrechitmatched){
689 int Tibnumrechitrphi = numrechitrphi;
690 int Tibnumrechitsas = numrechitsas;
691 int Tibnumrechitmatched = numrechitmatched;
693 int Tibnumrechitrphi2 = i2;
694 int Tibnumrechitsas2 = j2;
695 int Tibnumrechitmatched2 = k2;
697 totTibnumrechitrphi +=numrechitrphi;
698 totTibnumrechitsas +=numrechitsas;
699 totTibnumrechitmatched +=numrechitmatched;
701 int ilay = tibid.
layer() - 1;
704 for(
int k = 0; k<Tibnumrechitrphi; k++){
715 for(
int k = 0; k<Tibnumrechitrphi2; k++){
719 }
else if(tibid.
stereo()==1){
720 for(
int kk = 0;
kk < Tibnumrechitsas;
kk++)
730 for(
int l = 0;
l<Tibnumrechitsas2;
l++){
735 if(Tibnumrechitmatched>0){
736 for(
int kkk = 0; kkk<Tibnumrechitmatched; kkk++)
745 for(
int l = 0;
l<Tibnumrechitmatched2;
l++){
755 int Tobnumrechitrphi = numrechitrphi;
756 int Tobnumrechitsas = numrechitsas;
757 int Tobnumrechitmatched = numrechitmatched;
758 totTobnumrechitrphi +=numrechitrphi;
759 totTobnumrechitsas +=numrechitsas;
760 totTobnumrechitmatched +=numrechitmatched;
762 int Tobnumrechitrphi2 = i2;
763 int Tobnumrechitsas2 = j2;
764 int Tobnumrechitmatched2 = k2;
766 int ilay = tobid.
layer() - 1;
769 for(
int k = 0; k<Tobnumrechitrphi; k++){
778 for(
int l = 0;
l<Tobnumrechitrphi2;
l++){
781 }
else if(tobid.
stereo()==1){
782 for(
int kk = 0;
kk < Tobnumrechitsas;
kk++)
792 for(
int l = 0;
l<Tobnumrechitsas2;
l++){
797 if(Tobnumrechitmatched>0){
798 for(
int kkk = 0; kkk<Tobnumrechitmatched; kkk++)
807 for(
int l = 0;
l<Tobnumrechitmatched2;
l++){
815 int Tidnumrechitrphi = numrechitrphi;
816 int Tidnumrechitsas = numrechitsas;
817 int Tidnumrechitmatched = numrechitmatched;
818 totTidnumrechitrphi +=numrechitrphi;
819 totTidnumrechitsas +=numrechitsas;
820 totTidnumrechitmatched +=numrechitmatched;
822 int Tidnumrechitrphi2 = i2;
823 int Tidnumrechitsas2 = j2;
824 int Tidnumrechitmatched2 = k2;
826 int ilay = tidid.
ring() - 1;
829 for(
int k = 0; k<Tidnumrechitrphi; k++){
838 for(
int l = 0;
l<Tidnumrechitrphi2;
l++){
842 }
else if(tidid.
stereo()==1){
843 for(
int kk = 0;
kk < Tidnumrechitsas;
kk++)
853 for(
int l = 0;
l<Tidnumrechitsas2;
l++){
858 if(Tidnumrechitmatched>0){
859 for(
int kkk = 0; kkk<Tidnumrechitmatched; kkk++)
868 for(
int l = 0;
l<Tidnumrechitmatched2;
l++){
876 int Tecnumrechitrphi = numrechitrphi;
877 int Tecnumrechitsas = numrechitsas;
878 int Tecnumrechitmatched = numrechitmatched;
879 totTecnumrechitrphi +=numrechitrphi;
880 totTecnumrechitsas +=numrechitsas;
881 totTecnumrechitmatched +=numrechitmatched;
883 int Tecnumrechitrphi2 = i2;
884 int Tecnumrechitsas2 = j2;
885 int Tecnumrechitmatched2 = k2;
887 int ilay = tecid.
ring() - 1;
890 for(
int k = 0; k<Tecnumrechitrphi; k++){
899 for(
int l = 0;
l<Tecnumrechitrphi2;
l++){
903 }
else if(tecid.
stereo()==1){
904 for(
int kk = 0;
kk < Tecnumrechitsas;
kk++)
914 for(
int l = 0;
l<Tecnumrechitsas2;
l++){
919 if(Tecnumrechitmatched>0){
920 for(
int kkk = 0; kkk<Tecnumrechitmatched; kkk++)
929 for(
int l = 0;
l<Tecnumrechitmatched2;
l++){
978 float scale = -localHit.
z() / dir.
z();
990 return std::pair<LocalPoint,LocalVector>( projectedPos, localStripDir);
MonitorElement * meNstpRphiTEC[7]
MonitorElement * meNumTotRphi
float rechitrphiy[MAXHIT]
float rechitrphix[MAXHIT]
MonitorElement * meNstpSasTEC[5]
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
MonitorElement * meResRphiTEC[7]
EventNumber_t event() const
MonitorElement * meChi2RphiTID[3]
T getUntrackedParameter(std::string const &, T const &) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * mePullLFSasTIB[4]
MonitorElement * meErrxSasTEC[5]
MonitorElement * meAdcRphiTIB[4]
MonitorElement * meErrxMatchedTIB[2]
unsigned int layer() const
layer id
MonitorElement * mePullLFRphiTID[3]
virtual float stripAngle(float strip) const =0
MonitorElement * meChi2RphiTEC[7]
float rechitmatchedresy[MAXHIT]
MonitorElement * mePosyMatchedTEC[5]
MonitorElement * meNumRphiTIB
MonitorElement * meErrxMatchedTOB[2]
MonitorElement * mePosxRphiTID[3]
MonitorElement * meChi2MatchedTID[2]
float rechitsasres[MAXHIT]
MonitorElement * meErryMatchedTID[2]
std::vector< PSimHit > matched
MonitorElement * meNstpRphiTIB[4]
MonitorElement * meResyMatchedTID[2]
MonitorElement * meNumMatchedTOB
float rechitmatchedresx[MAXHIT]
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Sin< T >::type sin(const T &t)
MonitorElement * meNumSasTOB
MonitorElement * meErrxRphiTIB[4]
float rechitmatchederrxx[MAXHIT]
float rechitsaserrx[MAXHIT]
MonitorElement * meResxMatchedTEC[5]
MonitorElement * meNstpSasTOB[2]
MonitorElement * mePullLFSasTEC[5]
MonitorElement * meResSasTID[2]
MonitorElement * meNumMatchedTID
MonitorElement * mePullMFRphiTOB[6]
MonitorElement * meAdcRphiTEC[7]
MonitorElement * meChi2MatchedTIB[2]
MonitorElement * meNumSasTIB
MonitorElement * meResxMatchedTID[2]
MonitorElement * meNstpRphiTID[3]
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
MonitorElement * mePosxRphiTOB[6]
MonitorElement * mePullLFRphiTIB[4]
MonitorElement * meNumRphiTID
virtual float strip(const LocalPoint &) const =0
float rechitmatchederryy[MAXHIT]
MonitorElement * meErrxRphiTEC[7]
float rechitmatchederrxy[MAXHIT]
MonitorElement * meChi2RphiTOB[6]
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
edm::InputTag matchedRecHits_
MonitorElement * meResSasTOB[2]
MonitorElement * mePullMFRphiTID[3]
virtual LocalError localPositionError() const
MonitorElement * mePosxRphiTEC[7]
MonitorElement * meResRphiTOB[6]
MonitorElement * mePosxSasTID[2]
MonitorElement * meNumMatchedTIB
float rechitsaspullMF[MAXHIT]
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
Local3DPoint localPosition() const
MonitorElement * meNumTotMatched
MonitorElement * meErryMatchedTEC[5]
MonitorElement * mePullMFSasTID[2]
MonitorElement * meResyMatchedTOB[2]
MonitorElement * mePullMFRphiTEC[7]
LocalPoint toLocal(const GlobalPoint &gp) const
Cos< T >::type cos(const T &t)
MonitorElement * meErrxSasTIB[4]
virtual const Topology & topology() const
Returns a reference to the strip proxy topology.
MonitorElement * meChi2SasTOB[2]
unsigned int ring() const
ring id
MonitorElement * meAdcRphiTOB[6]
MonitorElement * meChi2SasTEC[5]
MonitorElement * meErrxSasTOB[2]
MonitorElement * mePosxMatchedTOB[2]
float rechitmatchedz[MAXHIT]
MonitorElement * mePosyMatchedTIB[2]
ClusterRef cluster() const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
MonitorElement * meResRphiTIB[4]
float rechitmatchedx[MAXHIT]
float rechitrphiz[MAXHIT]
MonitorElement * meChi2RphiTIB[4]
MonitorElement * meErrxMatchedTEC[5]
MonitorElement * meChi2SasTIB[4]
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
MonitorElement * mePosyMatchedTID[2]
MonitorElement * mePullLFRphiTEC[7]
std::pair< typename T::DetSet::const_iterator, typename T::DetSet::const_iterator > getRange(const T &detset, const DetId &id)
MonitorElement * meAdcSasTIB[4]
virtual const GeomDet * idToDet(DetId) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * mePosxSasTIB[4]
MonitorElement * meChi2MatchedTOB[2]
MonitorElement * meResSasTEC[5]
MonitorElement * mePosxRphiTIB[4]
LocalVector localDirection() const
Obsolete. Same as momentumAtEntry().unit(), for backward compatibility.
MonitorElement * meNstpSasTIB[4]
SiStripRecHitsValid(const edm::ParameterSet &conf)
MonitorElement * mePullLFSasTOB[2]
edm::InputTag rphiRecHits_
CLHEP::HepVector AlgebraicVector
MonitorElement * meErrxRphiTOB[6]
MonitorElement * meResyMatchedTEC[5]
MonitorElement * meErrxRphiTID[3]
MonitorElement * meAdcSasTID[2]
virtual LocalPoint localPosition() const
MonitorElement * meResxMatchedTIB[2]
MonitorElement * meErryMatchedTIB[2]
MonitorElement * meNumRphiTEC
MonitorElement * mePosxSasTOB[2]
MonitorElement * meNstpSasTID[2]
MonitorElement * mePullLFSasTID[2]
MonitorElement * meAdcSasTEC[5]
MonitorElement * mePullLFRphiTOB[6]
MonitorElement * mePullMFSasTEC[5]
MonitorElement * meNumTotSas
MonitorElement * meNumSasTEC
float rechitrphipullMF[MAXHIT]
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
float rechitrphierrx[MAXHIT]
MonitorElement * meErryMatchedTOB[2]
MonitorElement * meChi2MatchedTEC[5]
unsigned int layer() const
layer id
MonitorElement * mePosxMatchedTEC[5]
MonitorElement * mePosxSasTEC[5]
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
float rechitmatchedy[MAXHIT]
edm::InputTag stereoRecHits_
MonitorElement * mePullMFSasTOB[2]
MonitorElement * mePullMFRphiTIB[4]
const BoundPlane & surface() const
The nominal surface of the GeomDet.
MonitorElement * mePosxMatchedTID[2]
static int position[264][3]
unsigned int ring() const
ring id
CLHEP::HepSymMatrix AlgebraicSymMatrix
MonitorElement * meResxMatchedTOB[2]
MonitorElement * meResSasTIB[4]
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
MonitorElement * mePullMFSasTIB[4]
float chi2matched[MAXHIT]
MonitorElement * meErrxMatchedTID[2]
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
DetId geographicalId() const
float rechitrphires[MAXHIT]
MonitorElement * meNumSasTID
MonitorElement * meResyMatchedTIB[2]
MonitorElement * meAdcRphiTID[3]
MonitorElement * meNumRphiTOB
MonitorElement * meChi2SasTID[2]
MonitorElement * meNumMatchedTEC
DetId operator()(const X &x)
MonitorElement * meErrxSasTID[2]
MonitorElement * mePosxMatchedTIB[2]
const GeomDetUnit * stereoDet() const
MonitorElement * meResRphiTID[3]
MonitorElement * meNstpRphiTOB[6]
MonitorElement * mePosyMatchedTOB[2]
MonitorElement * meAdcSasTOB[2]