105 produces<CSCWireDigiCollection>(
"MuonCSCWireDigi");
106 produces<CSCStripDigiCollection>(
"MuonCSCStripDigi");
107 produces<CSCComparatorDigiCollection>(
"MuonCSCComparatorDigi");
108 produces<CSCALCTDigiCollection>(
"MuonCSCALCTDigi");
109 produces<CSCCLCTDigiCollection>(
"MuonCSCCLCTDigi");
110 produces<CSCRPCDigiCollection>(
"MuonCSCRPCDigi");
111 produces<CSCCorrelatedLCTDigiCollection>(
"MuonCSCCorrelatedLCTDigi");
113 if (unpackStatusDigis) {
114 produces<CSCCFEBStatusDigiCollection>(
"MuonCSCCFEBStatusDigi");
115 produces<CSCTMBStatusDigiCollection>(
"MuonCSCTMBStatusDigi");
116 produces<CSCDMBStatusDigiCollection>(
"MuonCSCDMBStatusDigi");
117 produces<CSCALCTStatusDigiCollection>(
"MuonCSCALCTStatusDigi");
118 produces<CSCDDUStatusDigiCollection>(
"MuonCSCDDUStatusDigi");
119 produces<CSCDCCStatusDigiCollection>(
"MuonCSCDCCStatusDigi");
122 if (useFormatStatus) {
123 produces<CSCDCCFormatStatusDigiCollection>(
"MuonCSCDCCFormatStatusDigi");
181 unsigned long dccBinCheckMask = 0x06080016;
189 const FEDRawData& fedData = rawdata->FEDData(
id);
190 unsigned long length = fedData.
size();
195 std::stringstream examiner_out, examiner_err;
208 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
220 int res = examiner->
check(data,
long(fedData.
size()/2));
238 formatStatusProduct->insertDigi(
CSCDetId(1,1,1,1,1),
251 short unsigned * buf = (
short unsigned int *)fedData.
data();
271 const std::vector<CSCDDUEventData> & dduData = dccData.dduData();
279 short unsigned * bufForDcc = (
short unsigned int *)fedData.
data();
284 dccStatusProduct->insertDigi(layer,
CSCDCCStatusDigi(dccData.dccHeader().data(),
285 dccData.dccTrailer().data(),
287 bufForDcc[length/2-4]));
291 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
294 if (dduData[iDDU].trailer().errorstat()&
errorMask) {
295 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
296 std::hex << dduData[iDDU].trailer().errorstat();
302 dduData[iDDU].trailer().
data(),
304 dduData[iDDU].trailer0()));
307 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
310 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
313 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
314 int dmb = cscData[iCSC].dmbHeader()->dmbID();
320 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
"crate = " << vmecrate <<
"; dmb = " << dmb;
322 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
323 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
326 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
" detID input out of range!!! ";
327 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi")
328 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
334 int nalct = cscData[iCSC].dmbHeader()->nalct();
337 if (nalct&&cscData[iCSC].alctHeader()) {
338 if (cscData[iCSC].alctHeader()->
check()){
342 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
343 "not storing ALCT digis; alct is bad or not present";
346 if (
debug)
LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
"nALCT==0 !!!";
351 std::vector <CSCALCTDigi> alctDigis =
352 cscData[iCSC].alctHeader()->ALCTDigis();
354 std::vector<CSCALCTDigi> alctDigis_0;
355 for (
int unsigned i=0;
i<alctDigis.size(); ++
i){
356 if(alctDigis[
i].isValid())
357 alctDigis_0.push_back(alctDigis[
i]);
359 alctProduct->put(std::make_pair(alctDigis_0.begin(), alctDigis_0.end()),layer);
362 alctProduct->put(std::make_pair(alctDigis.begin(), alctDigis.end()),layer);
367 int nclct = cscData[iCSC].dmbHeader()->nclct();
370 if (nclct&&cscData[iCSC].tmbData()) {
371 if (cscData[iCSC].tmbHeader()->
check()){
372 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
375 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
376 "one of TMB checks failed! not storing TMB digis ";
380 if (
debug)
LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
"nCLCT==0 !!!";
385 std::vector <CSCCorrelatedLCTDigi> correlatedlctDigis =
386 cscData[iCSC].tmbHeader()->CorrelatedLCTDigis(layer.
rawId());
388 std::vector<CSCCorrelatedLCTDigi> correlatedlctDigis_0;
389 for (
int unsigned i=0;
i<correlatedlctDigis.size(); ++
i){
390 if(correlatedlctDigis[
i].isValid())
391 correlatedlctDigis_0.push_back(correlatedlctDigis[
i]);
393 corrlctProduct->put(std::make_pair(correlatedlctDigis_0.begin(),
394 correlatedlctDigis_0.end()),layer);
397 corrlctProduct->put(std::make_pair(correlatedlctDigis.begin(),
398 correlatedlctDigis.end()),layer);
400 std::vector <CSCCLCTDigi> clctDigis =
401 cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
403 std::vector<CSCCLCTDigi> clctDigis_0;
404 for (
int unsigned i=0;
i<clctDigis.size(); ++
i){
405 if(clctDigis[
i].isValid())
406 clctDigis_0.push_back(clctDigis[
i]);
408 clctProduct->put(std::make_pair(clctDigis_0.begin(), clctDigis_0.end()),layer);
411 clctProduct->put(std::make_pair(clctDigis.begin(), clctDigis.end()),layer);
414 if (cscData[iCSC].tmbData()->checkSize()) {
415 if (cscData[iCSC].tmbData()->hasRPC()) {
416 std::vector <CSCRPCDigi> rpcDigis =
417 cscData[iCSC].tmbData()->rpcData()->digis();
418 rpcProduct->put(std::make_pair(rpcDigis.begin(), rpcDigis.end()),layer);
421 else LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
" TMBData check size failed!";
427 for ( icfeb = 0; icfeb < 5; ++icfeb ) {
428 if ( cscData[iCSC].cfebData(icfeb) !=
NULL )
430 insertDigi(layer, cscData[iCSC].cfebData(icfeb)->statusDigi());
434 cscData[iCSC].dmbTrailer()->
data()));
435 if (goodTMB) tmbStatusProduct->
437 cscData[iCSC].tmbData()->tmbTrailer()->
data()));
438 if (goodALCT) alctStatusProduct->
440 cscData[iCSC].alctTrailer()->
data()));
445 for (
int ilayer = 1; ilayer <= 6; ++ilayer) {
450 layer = pcrate->
detId( vmecrate, dmb, 0, ilayer );
452 std::vector <CSCWireDigi> wireDigis = cscData[iCSC].wireDigis(ilayer);
454 wireProduct->put(std::make_pair(wireDigis.begin(), wireDigis.end()),layer);
456 for ( icfeb = 0; icfeb < 5; ++icfeb ) {
457 layer = pcrate->
detId( vmecrate, dmb, icfeb,ilayer );
458 if (cscData[iCSC].cfebData(icfeb)) {
459 std::vector<CSCStripDigi> stripDigis;
460 cscData[iCSC].cfebData(icfeb)->digis(layer.
rawId(),stripDigis);
461 stripProduct->put(std::make_pair(stripDigis.begin(),
462 stripDigis.end()),layer);
466 std::vector <CSCComparatorDigi> comparatorDigis =
467 cscData[iCSC].clctData()->comparatorDigis(layer.
rawId(), icfeb);
470 layer = pcrate->
detId( vmecrate, dmb, 0, ilayer );
471 comparatorProduct->put(std::make_pair(comparatorDigis.begin(),
472 comparatorDigis.end()),layer);
480 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
481 "ERROR! Examiner rejected FED #" << id;
488 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi")
489 <<
" Examiner errors:0x" << std::hex << examiner->
errors()
493 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi")
494 <<
"Examiner output: " << examiner_out.str();
495 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi")
496 <<
"Examiner errors: " << examiner_err.str();
504 if (examiner!=
NULL)
delete examiner;
508 e.
put(wireProduct,
"MuonCSCWireDigi");
509 e.
put(stripProduct,
"MuonCSCStripDigi");
510 e.
put(alctProduct,
"MuonCSCALCTDigi");
511 e.
put(clctProduct,
"MuonCSCCLCTDigi");
512 e.
put(comparatorProduct,
"MuonCSCComparatorDigi");
513 e.
put(rpcProduct,
"MuonCSCRPCDigi");
514 e.
put(corrlctProduct,
"MuonCSCCorrelatedLCTDigi");
520 e.
put(cfebStatusProduct,
"MuonCSCCFEBStatusDigi");
521 e.
put(dmbStatusProduct,
"MuonCSCDMBStatusDigi");
522 e.
put(tmbStatusProduct,
"MuonCSCTMBStatusDigi");
523 e.
put(dduStatusProduct,
"MuonCSCDDUStatusDigi");
524 e.
put(dccStatusProduct,
"MuonCSCDCCStatusDigi");
525 e.
put(alctStatusProduct,
"MuonCSCALCTStatusDigi");
528 <<
"[CSCDCCUnpacker]: " <<
numOfEvents <<
" events processed ";
535 bool fDump,
short unsigned int *buf)
const {
537 LogTrace(
"badData") << std::endl << std::endl;
541 LogTrace(
"badData") <<
"FED-" <<
id <<
" " <<
"(scroll down to see summary)";
543 LogTrace(
"badData") <<
"Problem seems in FED-" <<
id <<
" " <<
"(scroll down to see summary)";
544 LogTrace(
"badData") <<
"********************************************************************************";
545 LogTrace(
"badData") <<hl<<
" words of data:";
549 std::vector<int> dcc_id;
552 for (
int i=750;
i<758;
i++)
555 for (
int i=830;
i<838;
i++)
558 char dcc_common[]=
"DCC-";
562 std::vector<int> ddu_id;
564 for (
int i=1;
i<37;
i++)
567 char ddu_common[]=
"DDU-";
568 char ddu_header1[]=
"Header 1";
569 char ddu_header2[]=
"Header 2";
570 char ddu_header3[]=
"Header 3";
571 char ddu_trail1[]=
"Trailer 1", ddu_trail2[]=
"Trailer 2", ddu_trail3[]=
"Trailer 3";
573 char ddu_trailer1_bit[]={
'8',
'0',
'0',
'0',
'f',
'f',
'f',
'f',
'8',
'0',
'0',
'0',
'8',
'0',
'0',
'0'};
574 char ddu_trailer3_bit[]={
'a'};
576 char ddu_tr1_err_common[]=
"Incomplet";
580 char dmb_common[]=
"DMB", dmb_header1[]=
"Header 1", dmb_header2[]=
"Header 2";
581 char dmb_common_crate[]=
"crate:", dmb_common_slot[]=
"slot:";
582 char dmb_common_l1a[]=
"L1A:";
583 char dmb_header1_bit[]={
'9',
'9',
'9',
'9'};
584 char dmb_header2_bit[]={
'a',
'a',
'a',
'a'};
585 char dmb_tr1[]=
"Trailer 1", dmb_tr2[]=
"Trailer 2";
586 char dmb_tr1_bit[]={
'f',
'f',
'f',
'f'}, dmb_tr2_bit[]={
'e',
'e',
'e',
'e'};
592 char alct_common[]=
"ALCT", alct_header1[]=
"Header 1", alct_header2[]=
"Header 2";
593 char alct_common_bxn[]=
"BXN:";
594 char alct_common_wcnt2[]=
"| Actual word count:";
595 char alct_common_wcnt1[]=
"Expected word count:";
596 char alct_header1_bit[]={
'd',
'd',
'd',
'd',
'b',
'0',
'a'};
597 char alct_header2_bit[]={
'0',
'0',
'0',
'0'};
598 char alct_tr1[]=
"Trailer 1";
603 char tmb_common[]=
"TMB", tmb_header1[]=
"Header", tmb_tr1[]=
"Trailer";
604 char tmb_header1_bit[]={
'd',
'd',
'd',
'd',
'b',
'0',
'c'};
605 char tmb_tr1_bit[]={
'd',
'd',
'd',
'd',
'e',
'0',
'f'};
610 char cfeb_common[]=
"CFEB", cfeb_tr1[]=
"Trailer", cfeb_b[]=
"B-word";
611 char cfeb_common_sample[]=
"sample:";
621 char tempbuf_short[17];
622 char sign1[]=
" --->| ";
625 int word_numbering=0;
626 int ddu_inst_i=0, ddu_inst_n=0, ddu_inst_l1a=0;
628 int dmb_inst_crate=0, dmb_inst_slot=0, dmb_inst_l1a=0;
632 int alct_inst_wcnt1=0;
633 int alct_inst_wcnt2=0;
637 int tmb_inst_wcnt1=0;
638 int tmb_inst_wcnt2=0;
649 bool dcc_check=
false;
650 bool ddu_h2_check[sz1]={
false};
651 bool ddu_h1_check=
false;
652 bool dmb_h1_check[sz1]={
false};
653 bool dmb_h2_check[sz1]={
false};
654 bool ddu_h2_h1=
false;
655 bool ddu_tr1_check[sz1]={
false};
656 bool alct_h1_check[sz1]={
false};
657 bool alct_h2_check[sz1]={
false};
658 bool alct_tr1_check[sz1]={
false};
659 bool dmb_tr1_check[sz1]={
false};
660 bool dmb_tr2_check[sz1]={
false};
661 bool tmb_h1_check[sz1]={
false};
662 bool tmb_tr1_check[sz1]={
false};
663 bool cfeb_tr1_check[sz1]={
false};
664 bool cfeb_b_check[sz1]={
false};
665 bool ddu_tr1_bad_check[sz1]={
false};
666 bool extraction=fedshort;
670 std::vector<int> ddu_h1_coll;
671 std::vector<int> ddu_h1_n_coll;
672 std::vector<int> ddu_h2_coll;
673 std::vector<int> ddu_h3_coll;
674 std::vector<int> ddu_t1_coll;
675 std::vector<int> ddu_t2_coll;
676 std::vector<int> ddu_t3_coll;
677 std::vector<int> ddu_l1a_coll;
678 std::vector<int> ddu_bxn_coll;
680 std::vector<int> dmb_h1_coll;
681 std::vector<int> dmb_h2_coll;
682 std::vector<int> dmb_t1_coll;
683 std::vector<int> dmb_t2_coll;
684 std::vector<int> dmb_crate_coll;
685 std::vector<int> dmb_slot_coll;
686 std::vector<int> dmb_l1a_coll;
688 std::vector<int> alct_h1_coll;
689 std::vector<int> alct_h2_coll;
690 std::vector<int> alct_t1_coll;
691 std::vector<int> alct_l1a_coll;
692 std::vector<int> alct_bxn_coll;
693 std::vector<int> alct_wcnt1_coll;
694 std::vector<int> alct_wcnt2_coll;
695 std::vector<int> alct_wcnt2_id_coll;
697 std::vector<int> tmb_h1_coll;
698 std::vector<int> tmb_t1_coll;
699 std::vector<int> tmb_l1a_coll;
700 std::vector<int> tmb_wcnt1_coll;
701 std::vector<int> tmb_wcnt2_coll;
703 std::vector<int> cfeb_t1_coll;
708 char dcc_header1[]=
"DCC Header 1";
709 char dcc_header2[]=
"DCC Header 2";
710 char dcc_trail1[]=
"DCC Trailer 1", dcc_trail1_bit[]={
'e'};
711 char dcc_trail2[]=
"DCC Trailer 2", dcc_trail2_bit[]={
'a'};
714 for (
int i=0;
i<hl;
i++) {
717 for(
int j=-1;
j<4;
j++){
718 sprintf(tempbuf_short,
"%04x%04x%04x%04x",buf[
i+4*(
j-1)+3],buf[
i+4*(
j-1)+2],buf[
i+4*(
j-1)+1],buf[
i+4*(
j-1)]);
720 ddu_h2_check[
j]=((buf[
i+4*(
j-1)+1]==0x8000)&&
721 (buf[
i+4*(
j-1)+2]==0x0001)&&(buf[
i+4*(
j-1)+3]==0x8000));
723 ddu_tr1_check[
j]=((tempbuf_short[0]==ddu_trailer1_bit[0])&&(tempbuf_short[1]==ddu_trailer1_bit[1])&&
724 (tempbuf_short[2]==ddu_trailer1_bit[2])&&(tempbuf_short[3]==ddu_trailer1_bit[3])&&
725 (tempbuf_short[4]==ddu_trailer1_bit[4])&&(tempbuf_short[5]==ddu_trailer1_bit[5])&&
726 (tempbuf_short[6]==ddu_trailer1_bit[6])&&(tempbuf_short[7]==ddu_trailer1_bit[7])&&
727 (tempbuf_short[8]==ddu_trailer1_bit[8])&&(tempbuf_short[9]==ddu_trailer1_bit[9])&&
728 (tempbuf_short[10]==ddu_trailer1_bit[10])&&(tempbuf_short[11]==ddu_trailer1_bit[11])&&
729 (tempbuf_short[12]==ddu_trailer1_bit[12])&&(tempbuf_short[13]==ddu_trailer1_bit[13])&&
730 (tempbuf_short[14]==ddu_trailer1_bit[14])&&(tempbuf_short[15]==ddu_trailer1_bit[15]));
732 dmb_h1_check[
j]=((tempbuf_short[0]==dmb_header1_bit[0])&&(tempbuf_short[4]==dmb_header1_bit[1])&&
733 (tempbuf_short[8]==dmb_header1_bit[2])&&(tempbuf_short[12]==dmb_header1_bit[3]));
735 dmb_h2_check[
j]=((tempbuf_short[0]==dmb_header2_bit[0])&&(tempbuf_short[4]==dmb_header2_bit[1])&&
736 (tempbuf_short[8]==dmb_header2_bit[2])&&(tempbuf_short[12]==dmb_header2_bit[3]));
737 alct_h1_check[
j]=((tempbuf_short[0]==alct_header1_bit[0])&&(tempbuf_short[4]==alct_header1_bit[1])&&
738 (tempbuf_short[8]==alct_header1_bit[2])&&(tempbuf_short[12]==alct_header1_bit[3])&&
739 (tempbuf_short[13]==alct_header1_bit[4])&&(tempbuf_short[14]==alct_header1_bit[5])&&
740 (tempbuf_short[15]==alct_header1_bit[6]));
741 alct_h2_check[
j]=(((tempbuf_short[0]==alct_header2_bit[0])&&(tempbuf_short[1]==alct_header2_bit[1])&&
742 (tempbuf_short[2]==alct_header2_bit[2])&&(tempbuf_short[3]==alct_header2_bit[3]))||
743 ((tempbuf_short[4]==alct_header2_bit[0])&&(tempbuf_short[5]==alct_header2_bit[1])&&
744 (tempbuf_short[6]==alct_header2_bit[2])&&(tempbuf_short[7]==alct_header2_bit[3]))||
745 ((tempbuf_short[8]==alct_header2_bit[0])&&(tempbuf_short[9]==alct_header2_bit[1])&&
746 (tempbuf_short[10]==alct_header2_bit[2])&&(tempbuf_short[11]==alct_header2_bit[3]))||
747 ((tempbuf_short[12]==alct_header2_bit[0])&&(tempbuf_short[13]==alct_header2_bit[1])&&
748 (tempbuf_short[14]==alct_header2_bit[2])&&(tempbuf_short[15]==alct_header2_bit[3]))
752 alct_tr1_check[
j]=(((buf[
i+4*(
j-1)]&0xFFFF)==0xDE0D)&&((buf[
i+4*(
j-1)+1]&0xF800)==0xD000)&&
753 ((buf[
i+4*(
j-1)+2]&0xF800)==0xD000)&&((buf[
i+4*(
j-1)+3]&0xF000)==0xD000));
755 dmb_tr1_check[
j]=((tempbuf_short[0]==dmb_tr1_bit[0])&&(tempbuf_short[4]==dmb_tr1_bit[1])&&
756 (tempbuf_short[8]==dmb_tr1_bit[2])&&(tempbuf_short[12]==dmb_tr1_bit[3]));
757 dmb_tr2_check[
j]=((tempbuf_short[0]==dmb_tr2_bit[0])&&(tempbuf_short[4]==dmb_tr2_bit[1])&&
758 (tempbuf_short[8]==dmb_tr2_bit[2])&&(tempbuf_short[12]==dmb_tr2_bit[3]));
760 tmb_h1_check[
j]=((tempbuf_short[0]==tmb_header1_bit[0])&&(tempbuf_short[4]==tmb_header1_bit[1])&&
761 (tempbuf_short[8]==tmb_header1_bit[2])&&(tempbuf_short[12]==tmb_header1_bit[3])&&
762 (tempbuf_short[13]==tmb_header1_bit[4])&&(tempbuf_short[14]==tmb_header1_bit[5])&&
763 (tempbuf_short[15]==tmb_header1_bit[6]));
764 tmb_tr1_check[
j]=((tempbuf_short[0]==tmb_tr1_bit[0])&&(tempbuf_short[4]==tmb_tr1_bit[1])&&
765 (tempbuf_short[8]==tmb_tr1_bit[2])&&(tempbuf_short[12]==tmb_tr1_bit[3])&&
766 (tempbuf_short[13]==tmb_tr1_bit[4])&&(tempbuf_short[14]==tmb_tr1_bit[5])&&
767 (tempbuf_short[15]==tmb_tr1_bit[6]));
769 cfeb_tr1_check[
j]=(((buf[
i+4*(
j-1)+1]&0xF000)==0x7000) &&
770 ((buf[
i+4*(
j-1)+2]&0xF000)==0x7000) &&
771 (( buf[
i+4*(
j-1)+1]!= 0x7FFF) || (buf[
i+4*(
j-1)+2] != 0x7FFF)) &&
772 ((buf[
i+4*(
j-1)+3] == 0x7FFF) ||
773 ((buf[
i+4*(
j-1)+3]&buf[
i+4*(
j-1)]) == 0x0&&(buf[
i+4*(
j-1)+3] + buf[
i+4*(
j-1)] == 0x7FFF ))) );
774 cfeb_b_check[
j]=(((buf[
i+4*(
j-1)+3]&0xF000)==0xB000)&&((buf[
i+4*(
j-1)+2]&0xF000)==0xB000) &&
775 ((buf[
i+4*(
j-1)+1]&0xF000)==0xB000)&&((buf[
i+4*(
j-1)]=3&0xF000)==0xB000) );
777 ddu_tr1_bad_check[
j]=((tempbuf_short[0]!=ddu_trailer1_bit[0])&&
780 (tempbuf_short[4]!=ddu_trailer1_bit[4])&&
783 (tempbuf_short[8]==ddu_trailer1_bit[8])&&(tempbuf_short[9]==ddu_trailer1_bit[9])&&
784 (tempbuf_short[10]==ddu_trailer1_bit[10])&&(tempbuf_short[11]==ddu_trailer1_bit[11])&&
785 (tempbuf_short[12]==ddu_trailer1_bit[12])&&(tempbuf_short[13]==ddu_trailer1_bit[13])&&
786 (tempbuf_short[14]==ddu_trailer1_bit[14])&&(tempbuf_short[15]==ddu_trailer1_bit[15]));
791 ddu_h2_h1=ddu_h2_check[2];
793 sprintf(tempbuf_short,
"%04x%04x%04x%04x",buf[
i+3],buf[
i+2],buf[
i+1],buf[
i]);
796 ddu_h1_12_13=(buf[
i]>>8);
797 for (
int kk=0; kk<36; kk++){
798 if(((buf[i+3]&0xF000)==0x5000)&&(ddu_h1_12_13==ddu_id[kk])&&ddu_h2_h1){
799 ddu_h1_coll.push_back(word_numbering); ddu_h1_n_coll.push_back(ddu_id[kk]);
800 ddu_inst_l1a=((buf[i+2]&0xFFFF)+((buf[i+3]&0x00FF)<<16));
801 ddu_l1a_coll.push_back(ddu_inst_l1a);
802 ddu_inst_bxn=(buf[i+1]&0xFFF0)>>4;
803 ddu_bxn_coll.push_back(ddu_inst_bxn);
804 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s%s %s %i %s %i",
805 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
806 sign1,ddu_common,ddu_id[kk],ddu_header1,sign1,dmb_common_l1a,ddu_inst_l1a,alct_common_bxn,ddu_inst_bxn);
807 LogTrace(
"badData") << tempbuf1; w=0; ddu_h1_check=
true; ddu_inst_l1a=0;
813 dcc_h1_id=(((buf[i+1]<<12)&0xF000)>>4)+(buf[i]>>8);
814 for(
int dcci=0;dcci<16;dcci++){
815 if((dcc_id[dcci]==dcc_h1_id)&&(((buf[i+3]&0xF000)==0x5000)&&(!ddu_h1_check))){
816 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
817 sign1,dcc_common,dcc_h1_id,dcc_header1); dcc_h1_check=word_numbering; w=0;
824 if(((word_numbering-1)==dcc_h1_check)&&((buf[i+3]&0xFF00)==0xD900)) {
825 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
827 LogTrace(
"badData") << tempbuf1; w=0;
829 else if((word_numbering==word_lines-1)&&(tempbuf_short[0]==dcc_trail1_bit[0])){
830 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
832 LogTrace(
"badData") << tempbuf1; w=0;
834 else if((word_numbering==word_lines)&&(tempbuf_short[0]==dcc_trail2_bit[0])){
835 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
837 LogTrace(
"badData") << tempbuf1; w=0;
841 else if(ddu_h2_check[1]){
842 ddu_inst_i = ddu_h1_n_coll.size();
843 ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
844 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
845 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,
846 ddu_inst_n, ddu_header2);
847 ddu_h2_coll.push_back(word_numbering);
848 LogTrace(
"badData") << tempbuf1; w=0;
853 else if((ddu_h2_check[0]&&dmb_h1_check[2])||(ddu_h2_check[0]&&ddu_tr1_check[2])){
854 ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
855 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
856 sign1,ddu_common,ddu_inst_n,ddu_header3);
857 ddu_h3_coll.push_back(word_numbering);
858 LogTrace(
"badData") << tempbuf1; w=0;
864 else if(dmb_h1_check[1]){
865 dmb_inst_crate=0; dmb_inst_slot=0; dmb_inst_l1a=0;
866 dmb_inst_l1a=((buf[
i]&0x0FFF)+((buf[i+1]&0xFFF)<<12));
867 dmb_l1a_coll.push_back(dmb_inst_l1a);
869 dmb_inst_crate=((buf[i+4+1]>>4)&0xFF); dmb_inst_slot=(buf[i+4+1]&0xF);
870 dmb_crate_coll.push_back(dmb_inst_crate); dmb_slot_coll.push_back(dmb_inst_slot);
872 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i %s %i",
873 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
874 sign1,dmb_common,dmb_header1,sign1,dmb_common_crate,dmb_inst_crate,
875 dmb_common_slot,dmb_inst_slot,dmb_common_l1a,dmb_inst_l1a);
876 dmb_h1_coll.push_back(word_numbering);
877 LogTrace(
"badData") << tempbuf1; w=0;
881 else if(dmb_h2_check[1]){
882 dmb_inst_crate=((buf[i+1]>>4)&0xFF); dmb_inst_slot=(buf[i+1]&0xF);
883 dmb_h2_coll.push_back(word_numbering);
885 dmb_inst_l1a=((buf[i-4]&0x0FFF)+((buf[i-4+1]&0xFFF)<<12));
886 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i %s %i",
887 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
888 sign1,dmb_common,dmb_header2,sign1,dmb_common_crate,dmb_inst_crate,
889 dmb_common_slot,dmb_inst_slot,dmb_common_l1a,dmb_inst_l1a);
890 LogTrace(
"badData") << tempbuf1; w=0;
895 else if(ddu_tr1_check[1]){
896 ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
897 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
898 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail1);
899 ddu_t1_coll.push_back(word_numbering);
900 LogTrace(
"badData") << tempbuf1; w=0;
904 else if(alct_h1_check[1]){
905 alct_start=word_numbering;
906 alct_inst_l1a=(buf[i+2]&0x0FFF);
907 alct_l1a_coll.push_back(alct_inst_l1a);
908 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s %s %i",
909 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
910 sign1,alct_common,alct_header1,sign1,dmb_common_l1a,alct_inst_l1a);
911 alct_h1_coll.push_back(word_numbering);
912 LogTrace(
"badData") << tempbuf1; w=0; alct_inst_l1a=0;
915 else if((alct_h1_check[0])&&(alct_h2_check[2])) {
916 alct_inst_bxn=(buf[
i]&0x0FFF);
917 alct_bxn_coll.push_back(alct_inst_bxn);
918 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i",
919 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
920 sign1,alct_common,alct_header2,sign1,alct_common_bxn,alct_inst_bxn);
921 alct_h2_coll.push_back(word_numbering);
922 LogTrace(
"badData") << tempbuf1; w=0; alct_inst_bxn=0;
926 else if(alct_tr1_check[1]){
927 alct_stop=word_numbering;
928 if((alct_start!=0)&&(alct_stop!=0)&&(alct_stop>alct_start)) {
929 alct_inst_wcnt2=4*(alct_stop-alct_start+1);
930 alct_wcnt2_coll.push_back(alct_inst_wcnt2);
931 alct_wcnt2_id_coll.push_back(alct_start);
933 alct_inst_wcnt1=(buf[i+3]&0x7FF);
934 alct_wcnt1_coll.push_back(alct_inst_wcnt1);
935 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i",
936 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
937 sign1,alct_common,alct_tr1,sign1,alct_common_wcnt1,alct_inst_wcnt1,
938 alct_common_wcnt2,alct_inst_wcnt2);
939 alct_t1_coll.push_back(word_numbering);
940 LogTrace(
"badData") << tempbuf1; w=0; alct_inst_wcnt1=0;
945 else if((ddu_tr1_check[-1])&&(tempbuf_short[0]==ddu_trailer3_bit[0])){
947 ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
948 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
949 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail3);
950 ddu_t3_coll.push_back(word_numbering);
951 LogTrace(
"badData") << tempbuf1; w=0;
954 else if((ddu_tr1_check[0])&&(tempbuf_short[0]!=ddu_trailer3_bit[0])){
956 ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
957 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
958 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail2);
959 ddu_t2_coll.push_back(word_numbering);
960 LogTrace(
"badData") << tempbuf1; w=0;
963 else if(dmb_tr1_check[1]){
964 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s",
965 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,dmb_common,dmb_tr1);
966 dmb_t1_coll.push_back(word_numbering);
967 LogTrace(
"badData") << tempbuf1; w=0;
971 else if(dmb_tr2_check[1]){
972 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s",
973 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,dmb_common,dmb_tr2);
974 dmb_t2_coll.push_back(word_numbering);
975 LogTrace(
"badData") << tempbuf1; w=0;
978 else if(tmb_h1_check[1]){
979 tmb_start=word_numbering;
980 tmb_inst_l1a=(buf[i+2]&0x000F);
981 tmb_l1a_coll.push_back(tmb_inst_l1a);
982 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i",
983 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,tmb_common,tmb_header1,
984 sign1,dmb_common_l1a,tmb_inst_l1a);
985 tmb_h1_coll.push_back(word_numbering);
986 LogTrace(
"badData") << tempbuf1; w=0; tmb_inst_l1a=0;
988 else if(tmb_tr1_check[1]){
989 tmb_stop=word_numbering;
990 if((tmb_start!=0)&&(tmb_stop!=0)&&(tmb_stop>tmb_start)) {
991 tmb_inst_wcnt2=4*(tmb_stop-tmb_start+1);
992 tmb_wcnt2_coll.push_back(tmb_inst_wcnt2);
994 tmb_inst_wcnt1=(buf[i+3]&0x7FF);
995 tmb_wcnt1_coll.push_back(tmb_inst_wcnt1);
996 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i",
997 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
998 sign1,tmb_common,tmb_tr1,sign1,alct_common_wcnt1,tmb_inst_wcnt1,
999 alct_common_wcnt2,tmb_inst_wcnt2);
1000 tmb_t1_coll.push_back(word_numbering);
1001 LogTrace(
"badData") << tempbuf1; w=0;
1005 else if(cfeb_tr1_check[1]){
1007 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s %s %i",
1008 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
1009 sign1,cfeb_common,cfeb_tr1,sign1,cfeb_common_sample,cfeb_sample);
1010 cfeb_t1_coll.push_back(word_numbering); w=0;
1011 LogTrace(
"badData") << tempbuf1; w=0;
1013 else if(cfeb_b_check[1]){
1014 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s",
1015 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,cfeb_common,cfeb_b);
1016 LogTrace(
"badData") << tempbuf1; w=0;
1019 else if(ddu_tr1_bad_check[1]){
1020 ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
1021 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s %s",
1022 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,
1023 ddu_trail1,ddu_tr1_err_common);
1024 LogTrace(
"badData") << tempbuf1; w=0;
1027 else if(extraction&&(!ddu_h1_check)&&(!dcc_check)){
1029 sprintf(tempbuf,
"%6i %04x %04x %04x %04x",
1030 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i]);
1031 LogTrace(
"badData") << tempbuf; w++;}
1033 LogTrace(
"badData") <<
"..................................................."; w++;}
1036 else if((!ddu_h1_check)&&(!dcc_check)){
1037 sprintf(tempbuf,
"%6i %04x %04x %04x %04x",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i]);
1041 i+=3; ddu_h1_check=
false; dcc_check=
false;
1044 LogTrace(
"badData") <<
"********************************************************************************" <<
1047 LogTrace(
"badData") <<
"For complete output turn off VisualFEDShort in muonCSCDigis configuration file.";
1048 LogTrace(
"badData") <<
"********************************************************************************" <<
1053 LogTrace(
"badData") << ddu_h1_coll.size() <<
" "<< ddu_common <<
" "<<ddu_header1 <<
" "<<
"found";
1054 for(
unsigned int k=0;
k<ddu_h1_coll.size();++
k){
1055 sprintf(sign,
"%s%6i%5s %s%i %s %i %s %i",
"Line: ",
1056 ddu_h1_coll[
k],sign1,ddu_common,ddu_h1_n_coll[k],dmb_common_l1a,ddu_l1a_coll[k],
1057 alct_common_bxn,ddu_bxn_coll[k]);
1061 LogTrace(
"badData") <<
"||||||||||||||||||||";
1063 LogTrace(
"badData") << ddu_h2_coll.size() <<
" "<< ddu_common <<
" "<<ddu_header2 <<
" "<<
"found";
1064 for(
unsigned int k=0;
k<ddu_h2_coll.size();++
k)
1065 LogTrace(
"badData") <<
"Line: " << ddu_h2_coll[
k];
1067 LogTrace(
"badData") <<
"||||||||||||||||||||";
1069 LogTrace(
"badData") << ddu_h3_coll.size() <<
" "<< ddu_common <<
" "<<ddu_header3 <<
" "<<
"found";
1070 for(
unsigned int k=0;
k<ddu_h3_coll.size();++
k)
1071 LogTrace(
"badData") <<
"Line: " << ddu_h3_coll[
k];
1073 LogTrace(
"badData") <<
"||||||||||||||||||||";
1075 LogTrace(
"badData") << ddu_t1_coll.size() <<
" "<< ddu_common <<
" "<<ddu_trail1 <<
" "<<
"found";
1076 for(
unsigned int k=0;
k<ddu_t1_coll.size();++
k)
1077 LogTrace(
"badData") <<
"Line: " << ddu_t1_coll[
k];
1079 LogTrace(
"badData") <<
"||||||||||||||||||||";
1081 LogTrace(
"badData") << ddu_t2_coll.size() <<
" "<< ddu_common <<
" "<<ddu_trail2 <<
" "<<
"found";
1082 for(
unsigned int k=0;
k<ddu_t2_coll.size();++
k)
1083 LogTrace(
"badData") <<
"Line: " << ddu_t2_coll[
k];
1085 LogTrace(
"badData") <<
"||||||||||||||||||||";
1087 LogTrace(
"badData") << ddu_t3_coll.size() <<
" "<< ddu_common <<
" "<<ddu_trail3 <<
" "<<
"found";
1088 for(
unsigned int k=0;
k<ddu_t3_coll.size();++
k)
1089 LogTrace(
"badData") <<
"Line: " << ddu_t3_coll[
k];
1091 LogTrace(
"badData") <<
"||||||||||||||||||||";
1093 LogTrace(
"badData") << dmb_h1_coll.size() <<
" "<< dmb_common <<
" "<<dmb_header1 <<
" "<<
"found";
1094 for(
unsigned int k=0;
k<dmb_h1_coll.size();++
k){
1095 sprintf(sign,
"%s%6i%5s %s %s %i %s %i %s %i",
"Line: ",
1096 dmb_h1_coll[
k],sign1,dmb_common,dmb_common_crate,dmb_crate_coll[k],dmb_common_slot,
1097 dmb_slot_coll[k],dmb_common_l1a,dmb_l1a_coll[k]);
1101 LogTrace(
"badData") <<
"||||||||||||||||||||";
1103 LogTrace(
"badData") << dmb_h2_coll.size() <<
" "<< dmb_common <<
" "<<dmb_header2 <<
" "<<
"found";
1104 for(
unsigned int k=0;
k<dmb_h2_coll.size();++
k)
1105 LogTrace(
"badData") <<
"Line: " << dmb_h2_coll[
k];
1107 LogTrace(
"badData") <<
"||||||||||||||||||||";
1109 LogTrace(
"badData") << dmb_t1_coll.size() <<
" "<< dmb_common <<
" "<<dmb_tr1 <<
" "<<
"found";
1110 for(
unsigned int k=0;
k<dmb_t1_coll.size();++
k)
1111 LogTrace(
"badData") <<
"Line: " << dmb_t1_coll[
k];
1113 LogTrace(
"badData") <<
"||||||||||||||||||||";
1115 LogTrace(
"badData") << dmb_t2_coll.size() <<
" "<< dmb_common <<
" "<<dmb_tr2 <<
" "<<
"found";
1116 for(
unsigned int k=0;
k<dmb_t2_coll.size();++
k)
1117 LogTrace(
"badData") <<
"Line: " << dmb_t2_coll[
k];
1119 LogTrace(
"badData") <<
"||||||||||||||||||||";
1121 LogTrace(
"badData") << alct_h1_coll.size() <<
" "<< alct_common <<
" "<<alct_header1 <<
" "<<
"found";
1122 for(
unsigned int k=0;
k<alct_h1_coll.size();++
k){
1123 sprintf(sign,
"%s%6i%5s %s %s %i",
"Line: ",
1124 alct_h1_coll[
k],sign1,alct_common,
1125 dmb_common_l1a,alct_l1a_coll[k]);
1129 LogTrace(
"badData") <<
"||||||||||||||||||||";
1131 LogTrace(
"badData") << alct_h2_coll.size() <<
" "<< alct_common <<
" "<<alct_header2 <<
" "<<
"found";
1132 for(
unsigned int k=0;
k<alct_h2_coll.size();++
k){
1133 sprintf(sign,
"%s%6i%5s %s %s %i",
"Line: ",
1134 alct_h1_coll[
k],sign1,alct_common,
1135 alct_common_bxn,alct_bxn_coll[k]);
1139 LogTrace(
"badData") <<
"||||||||||||||||||||";
1141 LogTrace(
"badData") << alct_t1_coll.size() <<
" "<< alct_common <<
" "<<alct_tr1 <<
" "<<
"found";
1142 for(
unsigned int k=0;
k<alct_t1_coll.size();++
k){
1143 sprintf(sign,
"%s%6i%5s %s %s %i %s %i",
"Line: ",
1144 alct_t1_coll[
k],sign1,alct_common,
1145 alct_common_wcnt1,alct_wcnt1_coll[k],alct_common_wcnt2,alct_wcnt2_coll[k]);
1151 LogTrace(
"badData") <<
"||||||||||||||||||||";
1153 LogTrace(
"badData") << tmb_h1_coll.size() <<
" "<< tmb_common <<
" "<<tmb_header1 <<
" "<<
"found";
1154 for(
unsigned int k=0;
k<tmb_h1_coll.size();++
k){
1155 sprintf(sign,
"%s%6i%5s %s %s %i",
"Line: ",
1156 tmb_h1_coll[
k],sign1,tmb_common,
1157 dmb_common_l1a,tmb_l1a_coll[k]);
1161 LogTrace(
"badData") <<
"||||||||||||||||||||";
1163 LogTrace(
"badData") << tmb_t1_coll.size() <<
" "<< tmb_common <<
" "<<tmb_tr1 <<
" "<<
"found";
1164 for(
unsigned int k=0;
k<tmb_t1_coll.size();++
k){
1165 sprintf(sign,
"%s%6i%5s %s %s %i %s %i",
"Line: ",
1166 tmb_t1_coll[
k],sign1,tmb_common,
1167 alct_common_wcnt1,tmb_wcnt1_coll[k],alct_common_wcnt2,tmb_wcnt2_coll[k]);
1172 LogTrace(
"badData") <<
"||||||||||||||||||||";
1174 LogTrace(
"badData") << cfeb_t1_coll.size() <<
" "<< cfeb_common <<
" "<<cfeb_tr1 <<
" "<<
"found";
1175 for(
unsigned int k=0;
k<cfeb_t1_coll.size();++
k)
1176 LogTrace(
"badData") <<
"Line: " << cfeb_t1_coll[
k];
1177 LogTrace(
"badData") <<
"********************************************************************************";
T getParameter(std::string const &) const
EventNumber_t event() const
void crcCFEB(bool enable)
T getUntrackedParameter(std::string const &, T const &) const
bool SuppressZeroLCT
Suppress zeros LCTs.
static void setDebug(bool value)
CSCDetId detId(int vme, int dmb, int cfeb, int layer=0) const
CSCMonitorInterface * monitor
void redirect(std::ostream &str)
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
const char * errName(int num) const
bool visualFEDInspect
Visualization of raw data.
size_t size() const
Lenght of the data buffer in bytes.
void produce(edm::Event &e, const edm::EventSetup &c)
Produce digis out of raw data.
uint32_t rawId() const
get the raw id
virtual void process(CSCDCCExaminer *examiner, CSCDCCEventData *dccData)=0
static void setDebug(const bool value)
void visual_raw(int hl, int id, int run, int event, bool fedshort, bool fDump, short unsigned int *buf) const
Visualization of raw data in FED-less events (Robert Harr and Alexander Sakharov) ...
std::map< CSCIdType, ExaminerStatusType > errorsDetailed(void) const
static void setErrorMask(unsigned int value)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
bool check(const DataFrame &df, bool capcheck, bool dvercheck)
static void setDebug(bool value)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::map< CSCIdType, ExaminerStatusType > statusDetailed(void) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
static void setDebug(const bool value)
ExaminerMaskType getMask() const
unsigned int examinerMask
T const * product() const
bool useSelectiveUnpacking
int32_t check(const uint16_t *&buffer, int32_t length)
edm::InputTag inputObjectsTag
std::map< CSCIdType, ExaminerStatusType > payloadDetailed(void) const
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
CSCDCCUnpacker(const edm::ParameterSet &pset)
Constructor.
std::map< DDUIdType, ExaminerStatusType > errorsDetailedDDU(void) const
virtual ~CSCDCCUnpacker()
Destructor.
void setMask(ExaminerMaskType mask)
static void setDebug(const bool value)
static void setDebug(bool debugValue)