58 std::vector<CSCWireDigi>
sanitizeWireDigis(std::vector<CSCWireDigi>::const_iterator,
59 std::vector<CSCWireDigi>::const_iterator);
62 std::vector<CSCStripDigi>::const_iterator,
63 std::vector<CSCStripDigi>::const_iterator);
64 std::vector<CSCStripDigi>
sanitizeStripDigis(std::vector<CSCStripDigi>::const_iterator,
65 std::vector<CSCStripDigi>::const_iterator);
66 std::vector<CSCStripDigi>
zeroSupStripDigis(std::vector<CSCStripDigi>::const_iterator,
67 std::vector<CSCStripDigi>::const_iterator);
70 std::vector<CSCComparatorDigi>::const_iterator
b,
71 std::vector<CSCComparatorDigi>::const_iterator
e);
72 std::vector<CSCComparatorDigi>
zeroSupCompDigis(std::vector<CSCComparatorDigi>::const_iterator,
73 std::vector<CSCComparatorDigi>::const_iterator);
116 cham_token = esConsumes<CSCChamberMap, CSCChamberMapRcd>();
125 typedef std::map<CSCDetId, std::pair<std::vector<CSCWireDigi>, std::vector<CSCWireDigi> > > matchingDetWireCollection;
126 typedef std::map<CSCDetId, std::pair<std::vector<CSCStripDigi>, std::vector<CSCStripDigi> > >
127 matchingDetStripCollection;
128 typedef std::map<CSCDetId, std::pair<std::vector<CSCComparatorDigi>, std::vector<CSCComparatorDigi> > >
129 matchingDetComparatorCollection;
130 typedef std::map<CSCDetId, std::pair<std::vector<CSCCLCTDigi>, std::vector<CSCCLCTDigi> > > matchingDetCLCTCollection;
131 typedef std::map<CSCDetId, std::pair<std::vector<CSCALCTDigi>, std::vector<CSCALCTDigi> > > matchingDetALCTCollection;
132 typedef std::map<CSCDetId, std::pair<std::vector<CSCCorrelatedLCTDigi>, std::vector<CSCCorrelatedLCTDigi> > >
133 matchingDetLCTCollection;
185 L1CSCTrackCollection::const_iterator trk = _trk->begin(), strk = _strk->begin();
188 matchingDetWireCollection
wires;
189 matchingDetStripCollection
strips;
190 matchingDetComparatorCollection comps;
191 matchingDetCLCTCollection clcts;
192 matchingDetALCTCollection alcts;
193 matchingDetLCTCollection lcts, trackstubs;
197 for (; wi != _wi->end(); ++wi) {
199 std::vector<CSCWireDigi>::iterator beg =
wires[(*wi).first].first.end();
200 wires[(*wi).first].first.insert(beg,
b,
e);
202 for (; swi != _swi->end(); ++swi) {
206 if ((*swi).first.ring() == 4)
207 _id =
CSCDetId((*swi).first.endcap(), (*swi).first.station(), 1, (*swi).first.chamber(), (*swi).first.layer());
209 std::vector<CSCWireDigi>::iterator beg =
wires[_id].second.end();
211 wires[_id].second.insert(beg,
b,
e);
217 for (; st != _st->end(); ++st) {
219 std::vector<CSCStripDigi>::iterator beg =
strips[(*st).first].first.end();
224 strips[(*st).first].first.insert(beg, zs.begin(), zs.end());
226 for (; sst != _sst->end(); ++sst) {
234 std::vector<CSCStripDigi>::iterator beg =
strips[_id].second.end();
238 strips[_id].second.insert(beg, relab.begin(), relab.end());
243 for (;
cmp != _cmp->end(); ++
cmp) {
245 std::vector<CSCComparatorDigi>::iterator beg = comps[(*cmp).first].first.end();
247 comps[(*cmp).first].first.insert(beg,
b,
e);
249 for (; scmp != _scmp->end(); ++scmp) {
253 if ((*scmp).first.ring() == 4)
255 CSCDetId((*scmp).first.endcap(), (*scmp).first.station(), 1, (*scmp).first.chamber(), (*scmp).first.layer());
257 std::vector<CSCComparatorDigi>::iterator beg = comps[_id].second.begin();
259 if ((*scmp).first.ring() == 4)
260 beg = comps[_id].
second.end();
264 std::vector<CSCComparatorDigi> relab =
relabelCompDigis(theMapping, (*scmp).first, zs.begin(), zs.end());
266 comps[_id].second.insert(beg, relab.begin(), relab.end());
270 for (; clct != _clct->end(); ++clct) {
272 std::vector<CSCCLCTDigi>::iterator beg = clcts[(*clct).first].first.end();
274 clcts[(*clct).first].first.insert(beg,
b,
e);
276 for (; sclct != _sclct->end(); ++sclct) {
280 if ((*sclct).first.ring() == 4)
282 (*sclct).first.endcap(), (*sclct).first.station(), 1, (*sclct).first.chamber(), (*sclct).first.layer());
284 std::vector<CSCCLCTDigi>::iterator beg = clcts[_id].second.begin();
286 if ((*sclct).first.ring() == 4)
287 beg = clcts[_id].
second.end();
289 clcts[_id].second.insert(beg,
b,
e);
293 for (; alct != _alct->end(); ++alct) {
295 std::vector<CSCALCTDigi>::iterator beg = alcts[(*alct).first].first.end();
297 alcts[(*alct).first].first.insert(beg,
b,
e);
299 for (; salct != _salct->end(); ++salct) {
303 if ((*salct).first.ring() == 4)
305 (*salct).first.endcap(), (*salct).first.station(), 1, (*salct).first.chamber(), (*salct).first.layer());
307 std::vector<CSCALCTDigi>::iterator beg = alcts[_id].second.begin();
309 if ((*salct).first.ring() == 4)
310 beg = alcts[_id].
second.end();
312 alcts[_id].second.insert(beg,
b,
e);
316 for (; lct != _lct->end(); ++lct) {
318 std::vector<CSCCorrelatedLCTDigi>::iterator beg = lcts[(*lct).first].first.end();
320 lcts[(*lct).first].first.insert(beg,
b,
e);
322 for (; slct != _slct->end(); ++slct) {
326 if ((*slct).first.ring() == 4)
328 CSCDetId((*slct).first.endcap(), (*slct).first.station(), 1, (*slct).first.chamber(), (*slct).first.layer());
330 std::vector<CSCCorrelatedLCTDigi>::iterator beg = lcts[_id].second.begin();
332 if ((*slct).first.ring() == 4)
333 beg = lcts[_id].
second.end();
335 lcts[_id].second.insert(beg,
b,
e);
338 for (; trk != _trk->end(); ++trk) {
339 tracks.push_back(trk->first);
341 for (; strk != _strk->end(); ++strk) {
346 matchingDetWireCollection::const_iterator
w;
347 matchingDetStripCollection::const_iterator
s;
348 matchingDetComparatorCollection::const_iterator
c;
349 matchingDetCLCTCollection::const_iterator
cl;
350 matchingDetALCTCollection::const_iterator al;
351 matchingDetLCTCollection::const_iterator lc;
354 if (
w->second.first.size() !=
w->second.second.size()) {
355 std::cout <<
"Major error! # of wire digis in detID: " <<
w->first <<
" is not equal between sim and unpacked!"
359 std::vector<CSCWireDigi>
a =
w->second.second;
360 std::vector<CSCWireDigi>
b =
w->second.first;
362 for (std::vector<CSCWireDigi>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
364 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
365 for (std::vector<CSCWireDigi>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
368 int max =
std::min(
w->second.first.size(),
w->second.second.size());
369 std::vector<CSCWireDigi>
cv =
w->second.first;
370 std::vector<CSCWireDigi>
sv =
w->second.second;
371 for (
int i = 0;
i <
max; ++
i) {
372 if (
sv[
i].getWireGroup() !=
cv[
i].getWireGroup()) {
373 std::cout <<
"In detId: " <<
w->first << std::endl;
374 std::cout <<
"Wire Groups do not match: " <<
sv[
i].getWireGroup() <<
" != " <<
cv[
i].getWireGroup()
377 if (
sv[
i].getTimeBin() !=
cv[
i].getTimeBin()) {
378 std::cout <<
"In detId: " <<
w->first << std::endl;
379 std::cout <<
"First Time Bins do not match: " <<
sv[
i].getTimeBin() <<
" != " <<
cv[
i].getTimeBin()
382 if (
sv[
i].getTimeBinWord() !=
cv[
i].getTimeBinWord()) {
383 std::cout <<
"In detId: " <<
w->first << std::endl;
384 std::cout <<
"Time Bin Words do not match: " <<
sv[
i].getTimeBinWord() <<
" != " <<
cv[
i].getTimeBinWord()
390 if (
s->second.first.size() !=
s->second.second.size()) {
391 std::cout <<
"Major error! # of strip digis in detID: " <<
s->first <<
" is not equal between sim and unpacked!"
395 std::vector<CSCStripDigi>
a =
s->second.second;
396 std::vector<CSCStripDigi>
b =
s->second.first;
398 for (std::vector<CSCStripDigi>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
400 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
401 for (std::vector<CSCStripDigi>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
404 int max =
std::min(
s->second.first.size(),
s->second.second.size());
405 std::vector<CSCStripDigi>
cv =
s->second.first;
406 std::vector<CSCStripDigi>
sv =
s->second.second;
407 for (
int i = 0;
i <
max; ++
i) {
408 bool me1a =
s->first.station() == 1 &&
s->first.ring() == 4;
409 bool me1b =
s->first.station() == 1 &&
s->first.ring() == 1;
410 bool zplus =
s->first.endcap() == 1;
418 if (
sv[
k].getStrip() !=
cv[
i].getStrip()) {
419 std::cout <<
"In detId: " <<
s->first << std::endl;
420 std::cout <<
"Strips do not match: " <<
sv[
k].getStrip() <<
" != " <<
cv[
i].getStrip() << std::endl;
423 std::cout <<
"In detId: " <<
s->first << std::endl;
424 std::cout <<
"ADC Readouts not of equal size!" << std::endl;
425 std::cout <<
sv[
k].getADCCounts().size() <<
' ' <<
cv[
i].getADCCounts().size() << std::endl;
427 std::vector<int> sADC =
sv[
k].getADCCounts();
428 std::vector<int> uADC =
cv[
i].getADCCounts();
430 for (
unsigned iadc = 0; iadc < sADC.size(); ++iadc)
431 if (sADC[iadc] != uADC[iadc]) {
432 std::cout <<
"In detId: " <<
s->first << std::endl;
433 std::cout <<
"ADC counts not equal at index: " << iadc << std::endl
434 << std::hex << sADC[iadc] <<
" != " << uADC[iadc] <<
std::dec << std::endl;
437 if (
sv[
k].getADCOverflow().size() !=
cv[
i].getADCOverflow().size()) {
438 std::cout <<
"In detId: " <<
s->first << std::endl;
439 std::cout <<
"ADC Overflows not of equal size!" << std::endl;
440 std::cout <<
sv[
k].getADCOverflow().size() <<
' ' <<
cv[
i].getADCOverflow().size() << std::endl;
442 std::vector<uint16_t> sADC =
sv[
k].getADCOverflow();
443 std::vector<uint16_t> uADC =
cv[
i].getADCOverflow();
445 for (
unsigned iadc = 0; iadc < sADC.size(); ++iadc)
446 if (sADC[iadc] != uADC[iadc]) {
447 std::cout <<
"In detId: " <<
s->first << std::endl;
448 std::cout <<
"ADC overflows not equal at index: " << iadc << std::endl
449 << std::hex << sADC[iadc] <<
" != " << uADC[iadc] <<
std::dec << std::endl;
452 if (
sv[
k].getOverlappedSample().size() !=
cv[
i].getOverlappedSample().size()) {
453 std::cout <<
"In detId: " <<
s->first << std::endl;
454 std::cout <<
"Overlapped Samples not of equal size!" << std::endl;
455 std::cout <<
sv[
k].getOverlappedSample().size() <<
' ' <<
cv[
i].getOverlappedSample().size() << std::endl;
457 std::vector<uint16_t> sADC =
sv[
k].getOverlappedSample();
458 std::vector<uint16_t> uADC =
cv[
i].getOverlappedSample();
460 for (
unsigned iadc = 0; iadc < sADC.size(); ++iadc)
461 if (sADC[iadc] != uADC[iadc]) {
462 std::cout <<
"In detId: " <<
s->first << std::endl;
463 std::cout <<
"Overlapped Samples not equal at index: " << iadc << std::endl
464 << std::hex << sADC[iadc] <<
" != " << uADC[iadc] <<
std::dec << std::endl;
467 if (
sv[
k].getErrorstat().size() !=
cv[
i].getErrorstat().size()) {
468 std::cout <<
"In detId: " <<
s->first << std::endl;
469 std::cout <<
"Errorstat not of equal size!" << std::endl;
470 std::cout <<
sv[
k].getErrorstat().size() <<
' ' <<
cv[
i].getErrorstat().size() << std::endl;
472 std::vector<uint16_t> sADC =
sv[
k].getErrorstat();
473 std::vector<uint16_t> uADC =
cv[
i].getErrorstat();
475 for (
unsigned iadc = 0; iadc < sADC.size(); ++iadc)
476 if (sADC[iadc] != uADC[iadc]) {
477 std::cout <<
"In detId: " <<
s->first << std::endl;
478 std::cout <<
"Errorstat not equal at index: " << iadc << std::endl
479 << std::hex << sADC[iadc] <<
" != " << uADC[iadc] <<
std::dec << std::endl;
483 std::cout <<
"In detId: " <<
s->first << std::endl;
484 std::cout <<
"Pedestals not equal: " <<
sv[
k].pedestal() <<
" != " <<
cv[
i].pedestal() << std::endl;
487 std::cout <<
"In detId: " <<
s->first << std::endl;
488 std::cout <<
"Amplitudes not equal: " <<
sv[
k].amplitude() <<
" != " <<
cv[
i].amplitude() << std::endl;
492 for (
c = comps.begin();
c != comps.end(); ++
c) {
493 if (
c->second.first.size() !=
c->second.second.size()) {
494 std::cout <<
"Major error! # of comparator digis in detID: " <<
c->first
495 <<
" is not equal between sim and unpacked!" << std::endl;
498 std::vector<CSCComparatorDigi>
a =
c->second.second;
499 std::vector<CSCComparatorDigi>
b =
c->second.first;
501 for (std::vector<CSCComparatorDigi>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
503 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
504 for (std::vector<CSCComparatorDigi>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
507 int max =
std::min(
c->second.first.size(),
c->second.second.size());
508 std::vector<CSCComparatorDigi>
cv =
c->second.first;
509 std::vector<CSCComparatorDigi>
sv =
c->second.second;
510 for (
int i = 0;
i <
max; ++
i) {
511 if (
sv[
i].getStrip() !=
cv[
i].getStrip()) {
512 std::cout <<
"In detId: " <<
s->first << std::endl;
513 std::cout <<
"Comparator strips do not match: " <<
sv[
i].getStrip() <<
" != " <<
cv[
i].getStrip() << std::endl;
515 if (
sv[
i].getComparator() !=
cv[
i].getComparator()) {
516 std::cout <<
"In detId: " <<
c->first << std::endl;
517 std::cout <<
"Comparators do not match: " <<
sv[
i].getComparator() <<
" != " <<
cv[
i].getComparator()
520 if (
sv[
i].getTimeBinWord() !=
cv[
i].getTimeBinWord()) {
521 std::cout <<
"In detId: " <<
c->first << std::endl;
522 std::cout <<
"Comparator time bins words do not match: " <<
sv[
i].getTimeBinWord()
523 <<
" != " <<
cv[
i].getTimeBinWord() << std::endl;
527 for (
cl = clcts.begin();
cl != clcts.end(); ++
cl) {
528 if (
cl->second.first.size() !=
cl->second.second.size()) {
529 std::cout <<
"Major error! # of CLCT digis in detID: " <<
cl->first <<
" is not equal between sim and unpacked!"
533 std::vector<CSCCLCTDigi>
a =
cl->second.second;
534 std::vector<CSCCLCTDigi>
b =
cl->second.first;
536 for (std::vector<CSCCLCTDigi>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
538 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
539 for (std::vector<CSCCLCTDigi>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
543 std::vector<CSCCLCTDigi>
cv =
cl->second.first;
544 std::vector<CSCCLCTDigi>
sv =
cl->second.second;
545 for (
int i = 0;
i <
max; ++
i) {
546 if (
cv[
i].getKeyStrip() !=
sv[
i].getKeyStrip()) {
547 std::cout <<
"In detId: " <<
cl->first << std::endl;
548 std::cout <<
"CLCT key strips do not match: " <<
sv[
i].getKeyStrip() <<
" != " <<
cv[
i].getKeyStrip()
551 if (
cv[
i].getStrip() !=
sv[
i].getStrip()) {
552 std::cout <<
"In detId: " <<
cl->first << std::endl;
553 std::cout <<
"CLCT strips do not match: " <<
sv[
i].getStrip() <<
" != " <<
cv[
i].getStrip() << std::endl;
556 std::cout <<
"In detId: " <<
cl->first << std::endl;
557 std::cout <<
"CLCT Valid bits do not match: " <<
sv[
i].isValid() <<
" != " <<
cv[
i].isValid() << std::endl;
559 if (
cv[
i].getQuality() !=
sv[
i].getQuality()) {
560 std::cout <<
"In detId: " <<
cl->first << std::endl;
561 std::cout <<
"CLCT qualities do not match: " <<
sv[
i].getQuality() <<
" != " <<
cv[
i].getQuality() << std::endl;
563 if (
cv[
i].getPattern() !=
sv[
i].getPattern()) {
564 std::cout <<
"In detId: " <<
cl->first << std::endl;
565 std::cout <<
"CLCT patterns do not match: " <<
sv[
i].getPattern() <<
" != " <<
cv[
i].getPattern() << std::endl;
567 if (
cv[
i].getStripType() !=
sv[
i].getStripType()) {
568 std::cout <<
"In detId: " <<
cl->first << std::endl;
569 std::cout <<
"CLCT strip types do not match: " <<
sv[
i].getStripType() <<
" != " <<
cv[
i].getStripType()
572 if (
cv[
i].getBend() !=
sv[
i].getBend()) {
573 std::cout <<
"In detId: " <<
cl->first << std::endl;
574 std::cout <<
"CLCT bends do not match: " <<
sv[
i].getBend() <<
" != " <<
cv[
i].getBend() << std::endl;
576 if (
cv[
i].getCFEB() !=
sv[
i].getCFEB()) {
577 std::cout <<
"In detId: " <<
cl->first << std::endl;
578 std::cout <<
"CLCT CFEBs do not match: " <<
sv[
i].getCFEB() <<
" != " <<
cv[
i].getCFEB() << std::endl;
580 if (((
short)
cv[
i].getBX()) != ((
short)
sv[
i].getBX()) - 4) {
581 std::cout <<
"In detId: " <<
cl->first << std::endl;
582 std::cout <<
"CLCT BX do not match: " <<
sv[
i].getBX() - 4 <<
" != " <<
cv[
i].getBX() << std::endl;
584 if (
cv[
i].getFullBX() !=
sv[
i].getFullBX()) {
585 std::cout <<
"In detId: " <<
cl->first << std::endl;
586 std::cout <<
"CLCT Full BX do not match: " <<
sv[
i].getFullBX() <<
" != " <<
cv[
i].getFullBX() << std::endl;
588 if (
cv[
i].getTrknmb() !=
sv[
i].getTrknmb()) {
589 std::cout <<
"In detId: " <<
cl->first << std::endl;
590 std::cout <<
"CLCT Track numbers do not match: " <<
sv[
i].getTrknmb() <<
" != " <<
cv[
i].getTrknmb()
595 for (al = alcts.begin(); al != alcts.end(); ++al) {
596 if (al->second.first.size() != al->second.second.size()) {
597 std::cout <<
"Major error! # of ALCT digis in detID: " << al->first <<
" is not equal between sim and unpacked!"
601 std::vector<CSCALCTDigi>
a = al->second.second;
602 std::vector<CSCALCTDigi>
b = al->second.first;
604 for (std::vector<CSCALCTDigi>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
606 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
607 for (std::vector<CSCALCTDigi>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
610 int max =
std::min(al->second.first.size(), al->second.second.size());
611 std::vector<CSCALCTDigi>
cv = al->second.first;
612 std::vector<CSCALCTDigi>
sv = al->second.second;
613 for (
int i = 0;
i <
max; ++
i) {
614 if (
cv[
i].getKeyWG() !=
sv[
i].getKeyWG()) {
615 std::cout <<
"In detId: " << al->first << std::endl;
616 std::cout <<
"ALCT key wire groups do not match: " <<
sv[
i].getKeyWG() <<
" != " <<
cv[
i].getKeyWG()
620 std::cout <<
"In detId: " << al->first << std::endl;
621 std::cout <<
"ALCT Valid bits do not match: " <<
sv[
i].isValid() <<
" != " <<
cv[
i].isValid() << std::endl;
623 if (
cv[
i].getQuality() !=
sv[
i].getQuality()) {
624 std::cout <<
"In detId: " << al->first << std::endl;
625 std::cout <<
"ALCT qualities do not match: " <<
sv[
i].getQuality() <<
" != " <<
cv[
i].getQuality() << std::endl;
627 if (
cv[
i].getAccelerator() !=
sv[
i].getAccelerator()) {
628 std::cout <<
"In detId: " << al->first << std::endl;
629 std::cout <<
"ALCT accelerator bits do not match: " <<
sv[
i].getAccelerator()
630 <<
" != " <<
cv[
i].getAccelerator() << std::endl;
632 if (
cv[
i].getCollisionB() !=
sv[
i].getCollisionB()) {
633 std::cout <<
"In detId: " << al->first << std::endl;
634 std::cout <<
"ALCT CollisionB flags do not match: " <<
sv[
i].getCollisionB() <<
" != " <<
cv[
i].getCollisionB()
637 if ((
cv[
i].getBX()) != (
sv[
i].getBX())) {
638 std::cout <<
"In detId: " << al->first << std::endl;
639 std::cout <<
"ALCT BX do not match: " <<
sv[
i].getBX() <<
" != " <<
cv[
i].getBX() << std::endl;
641 if (
cv[
i].getFullBX() !=
sv[
i].getFullBX()) {
642 std::cout <<
"In detId: " <<
cl->first << std::endl;
643 std::cout <<
"ALCT Full BX do not match: " <<
sv[
i].getFullBX() <<
" != " <<
cv[
i].getFullBX() << std::endl;
647 for (lc = lcts.begin(); lc != lcts.end(); ++lc) {
648 if (lc->second.first.size() != lc->second.second.size()) {
649 std::cout <<
"Major error! # of Correlated LCT digis in detID: " << lc->first
650 <<
" is not equal between sim and unpacked!" << std::endl;
653 std::vector<CSCCorrelatedLCTDigi>
a = lc->second.second;
654 std::vector<CSCCorrelatedLCTDigi>
b = lc->second.first;
656 for (std::vector<CSCCorrelatedLCTDigi>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
658 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
659 for (std::vector<CSCCorrelatedLCTDigi>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
662 int max =
std::min(lc->second.first.size(), lc->second.second.size());
663 std::vector<CSCCorrelatedLCTDigi>
cv = lc->second.first;
664 std::vector<CSCCorrelatedLCTDigi>
sv = lc->second.second;
665 for (
int i = 0;
i <
max; ++
i) {
666 if (
cv[
i].getStrip() !=
sv[
i].getStrip()) {
667 std::cout <<
"In detId: " << lc->first << std::endl;
668 std::cout <<
"Correlated LCT strips do not match: " <<
sv[
i].getStrip() <<
" != " <<
cv[
i].getStrip()
671 if (
cv[
i].getKeyWG() !=
sv[
i].getKeyWG()) {
672 std::cout <<
"In detId: " << lc->first << std::endl;
673 std::cout <<
"Correlated LCT key wire groups do not match: " <<
sv[
i].getKeyWG() <<
" != " <<
cv[
i].getKeyWG()
677 std::cout <<
"In detId: " << lc->first << std::endl;
678 std::cout <<
"Correlated LCT Valid bits do not match: " <<
sv[
i].isValid() <<
" != " <<
cv[
i].isValid()
681 if (
cv[
i].getQuality() !=
sv[
i].getQuality()) {
682 std::cout <<
"In detId: " << lc->first << std::endl;
683 std::cout <<
"Correlated LCT qualities do not match: " <<
sv[
i].getQuality() <<
" != " <<
cv[
i].getQuality()
686 if (
cv[
i].getPattern() !=
sv[
i].getPattern()) {
687 std::cout <<
"In detId: " << lc->first << std::endl;
688 std::cout <<
"Correlated LCT ALCT patterns do not match: " <<
sv[
i].getPattern() <<
" != " <<
cv[
i].getPattern()
691 if (
cv[
i].getCLCTPattern() !=
sv[
i].getCLCTPattern()) {
692 std::cout <<
"In detId: " << lc->first << std::endl;
693 std::cout <<
"Correlated LCT CLCT patterns do not match: " <<
sv[
i].getCLCTPattern()
694 <<
" != " <<
cv[
i].getCLCTPattern() << std::endl;
696 if (
cv[
i].getStripType() !=
sv[
i].getStripType()) {
697 std::cout <<
"In detId: " << lc->first << std::endl;
698 std::cout <<
"Correlated LCT strip types do not match: " <<
sv[
i].getStripType()
699 <<
" != " <<
cv[
i].getStripType() << std::endl;
701 if (
cv[
i].getBend() !=
sv[
i].getBend()) {
702 std::cout <<
"In detId: " << lc->first << std::endl;
703 std::cout <<
"Correlated LCT bends do not match: " <<
sv[
i].getBend() <<
" != " <<
cv[
i].getBend() << std::endl;
705 if (
cv[
i].getMPCLink() !=
sv[
i].getMPCLink()) {
706 std::cout <<
"In detId: " << lc->first << std::endl;
707 std::cout <<
"Correlated LCT MPC Links do not match: " <<
sv[
i].getMPCLink() <<
" != " <<
cv[
i].getMPCLink()
710 if ((
cv[
i].getBX()) != (
sv[
i].getBX() - 6)) {
711 std::cout <<
"In detId: " << lc->first << std::endl;
712 std::cout <<
"Correlated LCT BX do not match: " <<
sv[
i].getBX() - 6 <<
" != " <<
cv[
i].getBX() << std::endl;
714 if (
cv[
i].getCSCID() !=
sv[
i].getCSCID()) {
715 std::cout <<
"In detId: " << lc->first << std::endl;
716 std::cout <<
"Correlated LCT CSCIDs do not match: " <<
sv[
i].getCSCID() <<
" != " <<
cv[
i].getCSCID()
719 if (
cv[
i].getBX0() !=
sv[
i].getBX0()) {
720 std::cout <<
"In detId: " << lc->first << std::endl;
721 std::cout <<
"Correlated LCT BX0s do not match: " <<
sv[
i].getBX0() <<
" != " <<
cv[
i].getBX0() << std::endl;
723 if (
cv[
i].getSyncErr() !=
sv[
i].getSyncErr()) {
724 std::cout <<
"In detId: " << lc->first << std::endl;
725 std::cout <<
"Correlated LCT SyncErrs do not match: " <<
sv[
i].getSyncErr() <<
" != " <<
cv[
i].getSyncErr()
728 if (
cv[
i].getTrknmb() !=
sv[
i].getTrknmb()) {
729 std::cout <<
"In detId: " << lc->first << std::endl;
730 std::cout <<
"Correlated LCT Track numbers do not match: " <<
sv[
i].getTrknmb() <<
" != " <<
cv[
i].getTrknmb()
735 if (
tracks.get().size() != simtracks.
get().size()) {
736 std::cout <<
"Major error! # of L1 Tracks is not equal between sim and unpacked!" << std::endl;
737 std::vector<csc::L1Track>
a = simtracks.
get();
738 std::vector<csc::L1Track>
b =
tracks.get();
740 for (std::vector<csc::L1Track>::const_iterator
i =
a.begin();
i !=
a.end(); ++
i)
742 std::cout <<
"UNPACKER OUTPUT:" << std::endl;
743 for (std::vector<csc::L1Track>::const_iterator
i =
b.begin();
i !=
b.end(); ++
i)
754 std::vector<CSCWireDigi>::const_iterator
e) {
755 typedef std::map<int, std::vector<CSCWireDigi> > wire2digi;
757 std::vector<CSCWireDigi> _r;
760 for (std::vector<CSCWireDigi>::const_iterator
i =
b;
i !=
e; ++
i)
761 _wr2digis[
i->getWireGroup()].push_back(*
i);
763 for (wire2digi::const_iterator
i = _wr2digis.begin();
i != _wr2digis.end(); ++
i) {
767 for (std::vector<CSCWireDigi>::const_iterator
d =
i->second.begin();
d !=
i->second.end(); ++
d) {
768 std::vector<int> binson =
d->getTimeBinsOn();
769 for (std::vector<int>::const_iterator
t = binson.begin();
t != binson.end(); ++
t)
781 std::vector<CSCStripDigi>::const_iterator
b,
782 std::vector<CSCStripDigi>::const_iterator
e) {
783 std::vector<CSCStripDigi> _r;
789 for (std::vector<CSCStripDigi>::const_iterator
i =
b;
i !=
e; ++
i) {
790 int strip =
i->getStrip();
797 CSCStripDigi(
strip,
i->getADCCounts(),
i->getADCOverflow(),
i->getOverlappedSample(),
i->getErrorstat()));
804 std::vector<CSCComparatorDigi>::const_iterator
b,
805 std::vector<CSCComparatorDigi>::const_iterator
e) {
806 std::vector<CSCComparatorDigi> _r;
812 for (std::vector<CSCComparatorDigi>::const_iterator
i =
b;
i !=
e; ++
i) {
813 int strip =
i->getStrip();
826 std::vector<CSCStripDigi>::const_iterator
e) {
827 std::vector<CSCStripDigi> _r;
833 std::vector<CSCStripDigi>::const_iterator
e) {
834 std::vector<CSCStripDigi> _r;
837 for (std::vector<CSCStripDigi>::const_iterator
i =
b;
i !=
e; ++
i) {
840 for (std::vector<int>::const_iterator
a =
counts.begin();
a !=
counts.end(); ++
a)
853 std::vector<CSCComparatorDigi>::const_iterator
e) {
854 std::vector<CSCComparatorDigi> _r;
856 for (std::vector<CSCComparatorDigi>::const_iterator
i =
b;
i !=
e; ++
i) {
857 bool present =
false;
859 if (
i->getTimeBin() < 10)