106 produces<CSCWireDigiCollection>(
"MuonCSCWireDigi");
107 produces<CSCStripDigiCollection>(
"MuonCSCStripDigi");
108 produces<CSCComparatorDigiCollection>(
"MuonCSCComparatorDigi");
109 produces<CSCALCTDigiCollection>(
"MuonCSCALCTDigi");
110 produces<CSCCLCTDigiCollection>(
"MuonCSCCLCTDigi");
111 produces<CSCRPCDigiCollection>(
"MuonCSCRPCDigi");
112 produces<CSCCorrelatedLCTDigiCollection>(
"MuonCSCCorrelatedLCTDigi");
114 if (unpackStatusDigis) {
115 produces<CSCCFEBStatusDigiCollection>(
"MuonCSCCFEBStatusDigi");
116 produces<CSCTMBStatusDigiCollection>(
"MuonCSCTMBStatusDigi");
117 produces<CSCDMBStatusDigiCollection>(
"MuonCSCDMBStatusDigi");
118 produces<CSCALCTStatusDigiCollection>(
"MuonCSCALCTStatusDigi");
119 produces<CSCDDUStatusDigiCollection>(
"MuonCSCDDUStatusDigi");
120 produces<CSCDCCStatusDigiCollection>(
"MuonCSCDCCStatusDigi");
123 if (useFormatStatus) {
124 produces<CSCDCCFormatStatusDigiCollection>(
"MuonCSCDCCFormatStatusDigi");
182 unsigned long dccBinCheckMask = 0x06080016;
190 const FEDRawData& fedData = rawdata->FEDData(
id);
191 unsigned long length = fedData.
size();
204 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
206 LogTrace(
"badData") <<
"Length: "<< length/2;
217 int res = examiner->
check(data,
long(fedData.
size()/2));
235 formatStatusProduct->insertDigi(
CSCDetId(1,1,1,1,1),
248 short unsigned * buf = (
short unsigned int *)fedData.
data();
268 const std::vector<CSCDDUEventData> & dduData = dccData.dduData();
276 short unsigned * bufForDcc = (
short unsigned int *)fedData.
data();
281 dccStatusProduct->insertDigi(layer,
CSCDCCStatusDigi(dccData.dccHeader().data(),
282 dccData.dccTrailer().data(),
284 bufForDcc[length/2-4]));
288 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
291 if (dduData[iDDU].trailer().errorstat()&
errorMask) {
292 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
293 std::hex << dduData[iDDU].trailer().errorstat();
299 dduData[iDDU].trailer().
data(),
301 dduData[iDDU].trailer0()));
304 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
307 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
310 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
311 int dmb = cscData[iCSC].dmbHeader()->dmbID();
317 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
"crate = " << vmecrate <<
"; dmb = " << dmb;
319 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
320 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
323 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
" detID input out of range!!! ";
324 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi")
325 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
331 int nalct = cscData[iCSC].dmbHeader()->nalct();
334 if (nalct&&cscData[iCSC].alctHeader()) {
335 if (cscData[iCSC].alctHeader()->
check()){
339 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
340 "not storing ALCT digis; alct is bad or not present";
343 if (
debug)
LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
"nALCT==0 !!!";
348 std::vector <CSCALCTDigi> alctDigis =
349 cscData[iCSC].alctHeader()->ALCTDigis();
351 std::vector<CSCALCTDigi> alctDigis_0;
352 for (
int unsigned i=0;
i<alctDigis.size(); ++
i){
353 if(alctDigis[
i].isValid())
354 alctDigis_0.push_back(alctDigis[
i]);
356 alctProduct->move(std::make_pair(alctDigis_0.begin(), alctDigis_0.end()),layer);
359 alctProduct->move(std::make_pair(alctDigis.begin(), alctDigis.end()),layer);
364 int nclct = cscData[iCSC].dmbHeader()->nclct();
367 if (nclct&&cscData[iCSC].tmbData()) {
368 if (cscData[iCSC].tmbHeader()->
check()){
369 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
372 LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
373 "one of TMB checks failed! not storing TMB digis ";
377 if (
debug)
LogTrace (
"CSCDCCUnpacker|CSCRawToDigi") <<
"nCLCT==0 !!!";
382 std::vector <CSCCorrelatedLCTDigi> correlatedlctDigis =
383 cscData[iCSC].tmbHeader()->CorrelatedLCTDigis(layer.
rawId());
385 std::vector<CSCCorrelatedLCTDigi> correlatedlctDigis_0;
386 for (
int unsigned i=0;
i<correlatedlctDigis.size(); ++
i){
387 if(correlatedlctDigis[
i].isValid())
388 correlatedlctDigis_0.push_back(correlatedlctDigis[
i]);
390 corrlctProduct->move(std::make_pair(correlatedlctDigis_0.begin(),
391 correlatedlctDigis_0.end()),layer);
394 corrlctProduct->move(std::make_pair(correlatedlctDigis.begin(),
395 correlatedlctDigis.end()),layer);
397 std::vector <CSCCLCTDigi> clctDigis =
398 cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
400 std::vector<CSCCLCTDigi> clctDigis_0;
401 for (
int unsigned i=0;
i<clctDigis.size(); ++
i){
402 if(clctDigis[
i].isValid())
403 clctDigis_0.push_back(clctDigis[
i]);
405 clctProduct->move(std::make_pair(clctDigis_0.begin(), clctDigis_0.end()),layer);
408 clctProduct->move(std::make_pair(clctDigis.begin(), clctDigis.end()),layer);
411 if (cscData[iCSC].tmbData()->checkSize()) {
412 if (cscData[iCSC].tmbData()->hasRPC()) {
413 std::vector <CSCRPCDigi> rpcDigis =
414 cscData[iCSC].tmbData()->rpcData()->digis();
415 rpcProduct->move(std::make_pair(rpcDigis.begin(), rpcDigis.end()),layer);
418 else LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
" TMBData check size failed!";
424 for ( icfeb = 0; icfeb < 5; ++icfeb ) {
425 if ( cscData[iCSC].cfebData(icfeb) !=
NULL )
427 insertDigi(layer, cscData[iCSC].cfebData(icfeb)->statusDigi());
431 cscData[iCSC].dmbTrailer()->
data()));
432 if (goodTMB) tmbStatusProduct->
434 cscData[iCSC].tmbData()->tmbTrailer()->
data()));
435 if (goodALCT) alctStatusProduct->
437 cscData[iCSC].alctTrailer()->
data()));
442 for (
int ilayer = 1; ilayer <= 6; ++ilayer) {
447 layer = pcrate->
detId( vmecrate, dmb, 0, ilayer );
449 std::vector <CSCWireDigi> wireDigis = cscData[iCSC].wireDigis(ilayer);
450 wireProduct->move(std::make_pair(wireDigis.begin(), wireDigis.end()),layer);
452 for ( icfeb = 0; icfeb < 5; ++icfeb ) {
453 layer = pcrate->
detId( vmecrate, dmb, icfeb,ilayer );
454 if (cscData[iCSC].cfebData(icfeb)) {
455 std::vector<CSCStripDigi> stripDigis;
456 cscData[iCSC].cfebData(icfeb)->digis(layer.
rawId(),stripDigis);
457 stripProduct->move(std::make_pair(stripDigis.begin(),
458 stripDigis.end()),layer);
462 std::vector <CSCComparatorDigi> comparatorDigis =
463 cscData[iCSC].clctData()->comparatorDigis(layer.
rawId(), icfeb);
466 layer = pcrate->
detId( vmecrate, dmb, 0, ilayer );
467 comparatorProduct->move(std::make_pair(comparatorDigis.begin(),
468 comparatorDigis.end()),layer);
476 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
477 "ERROR! Examiner rejected FED #" << id;
484 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi")
485 <<
" Examiner errors:0x" << std::hex << examiner->
errors()
494 if (examiner!=
NULL)
delete examiner;
498 e.
put(wireProduct,
"MuonCSCWireDigi");
499 e.
put(stripProduct,
"MuonCSCStripDigi");
500 e.
put(alctProduct,
"MuonCSCALCTDigi");
501 e.
put(clctProduct,
"MuonCSCCLCTDigi");
502 e.
put(comparatorProduct,
"MuonCSCComparatorDigi");
503 e.
put(rpcProduct,
"MuonCSCRPCDigi");
504 e.
put(corrlctProduct,
"MuonCSCCorrelatedLCTDigi");
510 e.
put(cfebStatusProduct,
"MuonCSCCFEBStatusDigi");
511 e.
put(dmbStatusProduct,
"MuonCSCDMBStatusDigi");
512 e.
put(tmbStatusProduct,
"MuonCSCTMBStatusDigi");
513 e.
put(dduStatusProduct,
"MuonCSCDDUStatusDigi");
514 e.
put(dccStatusProduct,
"MuonCSCDCCStatusDigi");
515 e.
put(alctStatusProduct,
"MuonCSCALCTStatusDigi");
518 <<
"[CSCDCCUnpacker]: " <<
numOfEvents <<
" events processed ";
525 bool fDump,
short unsigned int *buf)
const {
527 std::cout << std::endl << std::endl << std::endl;
528 std::cout <<
"Run: "<< run <<
" Event: " <<
event << std::endl;
531 std::cout <<
"FED-" <<
id <<
" " <<
"(scroll down to see summary)" << std::endl;
533 std::cout <<
"Problem seems in FED-" <<
id <<
" " <<
"(scroll down to see summary)" << std::endl;
534 std::cout <<
"********************************************************************************" << std::endl;
535 std::cout << hl <<
" words of data:" << std::endl;
539 std::vector<int> dcc_id;
542 for (
int i=750;
i<758;
i++)
545 for (
int i=830;
i<838;
i++)
548 char dcc_common[]=
"DCC-";
552 std::vector<int> ddu_id;
554 for (
int i=1;
i<37;
i++)
557 char ddu_common[]=
"DDU-";
558 char ddu_header1[]=
"Header 1";
559 char ddu_header2[]=
"Header 2";
560 char ddu_header3[]=
"Header 3";
561 char ddu_trail1[]=
"Trailer 1", ddu_trail2[]=
"Trailer 2", ddu_trail3[]=
"Trailer 3";
563 char ddu_trailer1_bit[]={
'8',
'0',
'0',
'0',
'f',
'f',
'f',
'f',
'8',
'0',
'0',
'0',
'8',
'0',
'0',
'0'};
564 char ddu_trailer3_bit[]={
'a'};
566 char ddu_tr1_err_common[]=
"Incomplet";
570 char dmb_common[]=
"DMB", dmb_header1[]=
"Header 1", dmb_header2[]=
"Header 2";
571 char dmb_common_crate[]=
"crate:", dmb_common_slot[]=
"slot:";
572 char dmb_common_l1a[]=
"L1A:";
573 char dmb_header1_bit[]={
'9',
'9',
'9',
'9'};
574 char dmb_header2_bit[]={
'a',
'a',
'a',
'a'};
575 char dmb_tr1[]=
"Trailer 1", dmb_tr2[]=
"Trailer 2";
576 char dmb_tr1_bit[]={
'f',
'f',
'f',
'f'}, dmb_tr2_bit[]={
'e',
'e',
'e',
'e'};
582 char alct_common[]=
"ALCT", alct_header1[]=
"Header 1", alct_header2[]=
"Header 2";
583 char alct_common_bxn[]=
"BXN:";
584 char alct_common_wcnt2[]=
"| Actual word count:";
585 char alct_common_wcnt1[]=
"Expected word count:";
586 char alct_header1_bit[]={
'd',
'd',
'd',
'd',
'b',
'0',
'a'};
587 char alct_header2_bit[]={
'0',
'0',
'0',
'0'};
588 char alct_tr1[]=
"Trailer 1";
593 char tmb_common[]=
"TMB", tmb_header1[]=
"Header", tmb_tr1[]=
"Trailer";
594 char tmb_header1_bit[]={
'd',
'd',
'd',
'd',
'b',
'0',
'c'};
595 char tmb_tr1_bit[]={
'd',
'd',
'd',
'd',
'e',
'0',
'f'};
600 char cfeb_common[]=
"CFEB", cfeb_tr1[]=
"Trailer", cfeb_b[]=
"B-word";
601 char cfeb_common_sample[]=
"sample:";
611 char tempbuf_short[17];
612 char sign1[]=
" --->| ";
615 int word_numbering=0;
616 int ddu_inst_i=0, ddu_inst_n=0, ddu_inst_l1a=0;
618 int dmb_inst_crate=0, dmb_inst_slot=0, dmb_inst_l1a=0;
622 int alct_inst_wcnt1=0;
623 int alct_inst_wcnt2=0;
627 int tmb_inst_wcnt1=0;
628 int tmb_inst_wcnt2=0;
639 bool dcc_check=
false;
640 bool ddu_h2_check[sz1]={
false};
641 bool ddu_h1_check=
false;
642 bool dmb_h1_check[sz1]={
false};
643 bool dmb_h2_check[sz1]={
false};
644 bool ddu_h2_h1=
false;
645 bool ddu_tr1_check[sz1]={
false};
646 bool alct_h1_check[sz1]={
false};
647 bool alct_h2_check[sz1]={
false};
648 bool alct_tr1_check[sz1]={
false};
649 bool dmb_tr1_check[sz1]={
false};
650 bool dmb_tr2_check[sz1]={
false};
651 bool tmb_h1_check[sz1]={
false};
652 bool tmb_tr1_check[sz1]={
false};
653 bool cfeb_tr1_check[sz1]={
false};
654 bool cfeb_b_check[sz1]={
false};
655 bool ddu_tr1_bad_check[sz1]={
false};
656 bool extraction=fedshort;
660 std::vector<int> ddu_h1_coll;
661 std::vector<int> ddu_h1_n_coll;
662 std::vector<int> ddu_h2_coll;
663 std::vector<int> ddu_h3_coll;
664 std::vector<int> ddu_t1_coll;
665 std::vector<int> ddu_t2_coll;
666 std::vector<int> ddu_t3_coll;
667 std::vector<int> ddu_l1a_coll;
668 std::vector<int> ddu_bxn_coll;
670 std::vector<int> dmb_h1_coll;
671 std::vector<int> dmb_h2_coll;
672 std::vector<int> dmb_t1_coll;
673 std::vector<int> dmb_t2_coll;
674 std::vector<int> dmb_crate_coll;
675 std::vector<int> dmb_slot_coll;
676 std::vector<int> dmb_l1a_coll;
678 std::vector<int> alct_h1_coll;
679 std::vector<int> alct_h2_coll;
680 std::vector<int> alct_t1_coll;
681 std::vector<int> alct_l1a_coll;
682 std::vector<int> alct_bxn_coll;
683 std::vector<int> alct_wcnt1_coll;
684 std::vector<int> alct_wcnt2_coll;
685 std::vector<int> alct_wcnt2_id_coll;
687 std::vector<int> tmb_h1_coll;
688 std::vector<int> tmb_t1_coll;
689 std::vector<int> tmb_l1a_coll;
690 std::vector<int> tmb_wcnt1_coll;
691 std::vector<int> tmb_wcnt2_coll;
693 std::vector<int> cfeb_t1_coll;
698 char dcc_header1[]=
"DCC Header 1";
699 char dcc_header2[]=
"DCC Header 2";
700 char dcc_trail1[]=
"DCC Trailer 1", dcc_trail1_bit[]={
'e'};
701 char dcc_trail2[]=
"DCC Trailer 2", dcc_trail2_bit[]={
'a'};
704 for (
int i=0;
i < hl;
i++) {
706 for(
int j=-1;
j<4;
j++){
708 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)]);
711 ddu_h2_found++; ddu_h2_found--;
713 ddu_h2_check[
j]=((buf[
i+4*(
j-1)+1]==0x8000)&&
714 (buf[
i+4*(
j-1)+2]==0x0001)&&(buf[
i+4*(
j-1)+3]==0x8000));
716 ddu_tr1_check[
j]=((tempbuf_short[0]==ddu_trailer1_bit[0])&&(tempbuf_short[1]==ddu_trailer1_bit[1])&&
717 (tempbuf_short[2]==ddu_trailer1_bit[2])&&(tempbuf_short[3]==ddu_trailer1_bit[3])&&
718 (tempbuf_short[4]==ddu_trailer1_bit[4])&&(tempbuf_short[5]==ddu_trailer1_bit[5])&&
719 (tempbuf_short[6]==ddu_trailer1_bit[6])&&(tempbuf_short[7]==ddu_trailer1_bit[7])&&
720 (tempbuf_short[8]==ddu_trailer1_bit[8])&&(tempbuf_short[9]==ddu_trailer1_bit[9])&&
721 (tempbuf_short[10]==ddu_trailer1_bit[10])&&(tempbuf_short[11]==ddu_trailer1_bit[11])&&
722 (tempbuf_short[12]==ddu_trailer1_bit[12])&&(tempbuf_short[13]==ddu_trailer1_bit[13])&&
723 (tempbuf_short[14]==ddu_trailer1_bit[14])&&(tempbuf_short[15]==ddu_trailer1_bit[15]));
725 dmb_h1_check[
j]=((tempbuf_short[0]==dmb_header1_bit[0])&&(tempbuf_short[4]==dmb_header1_bit[1])&&
726 (tempbuf_short[8]==dmb_header1_bit[2])&&(tempbuf_short[12]==dmb_header1_bit[3]));
728 dmb_h2_check[
j]=((tempbuf_short[0]==dmb_header2_bit[0])&&(tempbuf_short[4]==dmb_header2_bit[1])&&
729 (tempbuf_short[8]==dmb_header2_bit[2])&&(tempbuf_short[12]==dmb_header2_bit[3]));
730 alct_h1_check[
j]=((tempbuf_short[0]==alct_header1_bit[0])&&(tempbuf_short[4]==alct_header1_bit[1])&&
731 (tempbuf_short[8]==alct_header1_bit[2])&&(tempbuf_short[12]==alct_header1_bit[3])&&
732 (tempbuf_short[13]==alct_header1_bit[4])&&(tempbuf_short[14]==alct_header1_bit[5])&&
733 (tempbuf_short[15]==alct_header1_bit[6]));
734 alct_h2_check[
j]=(((tempbuf_short[0]==alct_header2_bit[0])&&(tempbuf_short[1]==alct_header2_bit[1])&&
735 (tempbuf_short[2]==alct_header2_bit[2])&&(tempbuf_short[3]==alct_header2_bit[3]))||
736 ((tempbuf_short[4]==alct_header2_bit[0])&&(tempbuf_short[5]==alct_header2_bit[1])&&
737 (tempbuf_short[6]==alct_header2_bit[2])&&(tempbuf_short[7]==alct_header2_bit[3]))||
738 ((tempbuf_short[8]==alct_header2_bit[0])&&(tempbuf_short[9]==alct_header2_bit[1])&&
739 (tempbuf_short[10]==alct_header2_bit[2])&&(tempbuf_short[11]==alct_header2_bit[3]))||
740 ((tempbuf_short[12]==alct_header2_bit[0])&&(tempbuf_short[13]==alct_header2_bit[1])&&
741 (tempbuf_short[14]==alct_header2_bit[2])&&(tempbuf_short[15]==alct_header2_bit[3]))
745 alct_tr1_check[
j]=(((buf[
i+4*(
j-1)]&0xFFFF)==0xDE0D)&&((buf[
i+4*(
j-1)+1]&0xF800)==0xD000)&&
746 ((buf[
i+4*(
j-1)+2]&0xF800)==0xD000)&&((buf[
i+4*(
j-1)+3]&0xF000)==0xD000));
748 dmb_tr1_check[
j]=((tempbuf_short[0]==dmb_tr1_bit[0])&&(tempbuf_short[4]==dmb_tr1_bit[1])&&
749 (tempbuf_short[8]==dmb_tr1_bit[2])&&(tempbuf_short[12]==dmb_tr1_bit[3]));
750 dmb_tr2_check[
j]=((tempbuf_short[0]==dmb_tr2_bit[0])&&(tempbuf_short[4]==dmb_tr2_bit[1])&&
751 (tempbuf_short[8]==dmb_tr2_bit[2])&&(tempbuf_short[12]==dmb_tr2_bit[3]));
753 tmb_h1_check[
j]=((tempbuf_short[0]==tmb_header1_bit[0])&&(tempbuf_short[4]==tmb_header1_bit[1])&&
754 (tempbuf_short[8]==tmb_header1_bit[2])&&(tempbuf_short[12]==tmb_header1_bit[3])&&
755 (tempbuf_short[13]==tmb_header1_bit[4])&&(tempbuf_short[14]==tmb_header1_bit[5])&&
756 (tempbuf_short[15]==tmb_header1_bit[6]));
757 tmb_tr1_check[
j]=((tempbuf_short[0]==tmb_tr1_bit[0])&&(tempbuf_short[4]==tmb_tr1_bit[1])&&
758 (tempbuf_short[8]==tmb_tr1_bit[2])&&(tempbuf_short[12]==tmb_tr1_bit[3])&&
759 (tempbuf_short[13]==tmb_tr1_bit[4])&&(tempbuf_short[14]==tmb_tr1_bit[5])&&
760 (tempbuf_short[15]==tmb_tr1_bit[6]));
762 cfeb_tr1_check[
j]=(((buf[
i+4*(
j-1)+1]&0xF000)==0x7000) &&
763 ((buf[
i+4*(
j-1)+2]&0xF000)==0x7000) &&
764 (( buf[
i+4*(
j-1)+1]!= 0x7FFF) || (buf[
i+4*(
j-1)+2] != 0x7FFF)) &&
765 ((buf[
i+4*(
j-1)+3] == 0x7FFF) ||
766 ((buf[
i+4*(
j-1)+3]&buf[
i+4*(
j-1)]) == 0x0&&(buf[
i+4*(
j-1)+3] + buf[
i+4*(
j-1)] == 0x7FFF ))) );
767 cfeb_b_check[
j]=(((buf[
i+4*(
j-1)+3]&0xF000)==0xB000)&&((buf[
i+4*(
j-1)+2]&0xF000)==0xB000) &&
768 ((buf[
i+4*(
j-1)+1]&0xF000)==0xB000)&&((buf[
i+4*(
j-1)]=3&0xF000)==0xB000) );
770 ddu_tr1_bad_check[
j]=((tempbuf_short[0]!=ddu_trailer1_bit[0])&&
773 (tempbuf_short[4]!=ddu_trailer1_bit[4])&&
776 (tempbuf_short[8]==ddu_trailer1_bit[8])&&(tempbuf_short[9]==ddu_trailer1_bit[9])&&
777 (tempbuf_short[10]==ddu_trailer1_bit[10])&&(tempbuf_short[11]==ddu_trailer1_bit[11])&&
778 (tempbuf_short[12]==ddu_trailer1_bit[12])&&(tempbuf_short[13]==ddu_trailer1_bit[13])&&
779 (tempbuf_short[14]==ddu_trailer1_bit[14])&&(tempbuf_short[15]==ddu_trailer1_bit[15]));
783 ddu_h2_h1=ddu_h2_check[2];
785 sprintf(tempbuf_short,
"%04x%04x%04x%04x",buf[
i+3],buf[
i+2],buf[
i+1],buf[
i]);
788 ddu_h1_12_13=(buf[
i]>>8);
789 for (
int kk=0;
kk<36;
kk++){
790 if(((buf[i+3]&0xF000)==0x5000)&&(ddu_h1_12_13==ddu_id[
kk])&&ddu_h2_h1){
791 ddu_h1_coll.push_back(word_numbering); ddu_h1_n_coll.push_back(ddu_id[
kk]);
792 ddu_inst_l1a=((buf[i+2]&0xFFFF)+((buf[i+3]&0x00FF)<<16));
793 ddu_l1a_coll.push_back(ddu_inst_l1a);
794 ddu_inst_bxn=(buf[i+1]&0xFFF0)>>4;
795 ddu_bxn_coll.push_back(ddu_inst_bxn);
796 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s%s %s %i %s %i",
797 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
798 sign1,ddu_common,ddu_id[kk],ddu_header1,sign1,dmb_common_l1a,ddu_inst_l1a,alct_common_bxn,ddu_inst_bxn);
799 std::cout << tempbuf1 << std::endl; w=0; ddu_h1_check=
true; ddu_inst_l1a=0;
807 dcc_h1_id=(((buf[i+1]<<12)&0xF000)>>4)+(buf[i]>>8);
808 for(
int dcci=0;dcci<16;dcci++){
809 if((dcc_id[dcci]==dcc_h1_id)&&(((buf[i+3]&0xF000)==0x5000)&&(!ddu_h1_check))){
810 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
811 sign1,dcc_common,dcc_h1_id,dcc_header1); dcc_h1_check=word_numbering; w=0;
818 if(((word_numbering-1)==dcc_h1_check)&&((buf[i+3]&0xFF00)==0xD900)) {
819 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
823 else if((word_numbering==word_lines-1)&&(tempbuf_short[0]==dcc_trail1_bit[0])){
824 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
828 else if((word_numbering==word_lines)&&(tempbuf_short[0]==dcc_trail2_bit[0])){
829 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
835 else if(ddu_h2_check[1]){
836 ddu_inst_i = ddu_h1_n_coll.size();
838 ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
840 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
841 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,
842 ddu_inst_n, ddu_header2);
843 ddu_h2_coll.push_back(word_numbering);
849 else if((ddu_h2_check[0]&&dmb_h1_check[2])||(ddu_h2_check[0]&&ddu_tr1_check[2])){
850 ddu_inst_i = ddu_h1_n_coll.size();
852 ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
854 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
855 sign1,ddu_common,ddu_inst_n,ddu_header3);
856 ddu_h3_coll.push_back(word_numbering);
863 else if(dmb_h1_check[1]){
864 dmb_inst_crate=0; dmb_inst_slot=0; dmb_inst_l1a=0;
865 dmb_inst_l1a=((buf[
i]&0x0FFF)+((buf[i+1]&0xFFF)<<12));
866 dmb_l1a_coll.push_back(dmb_inst_l1a);
868 dmb_inst_crate=((buf[i+4+1]>>4)&0xFF); dmb_inst_slot=(buf[i+4+1]&0xF);
869 dmb_crate_coll.push_back(dmb_inst_crate); dmb_slot_coll.push_back(dmb_inst_slot);
871 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i %s %i",
872 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
873 sign1,dmb_common,dmb_header1,sign1,dmb_common_crate,dmb_inst_crate,
874 dmb_common_slot,dmb_inst_slot,dmb_common_l1a,dmb_inst_l1a);
875 dmb_h1_coll.push_back(word_numbering);
880 else if(dmb_h2_check[1]){
881 dmb_inst_crate=((buf[i+1]>>4)&0xFF); dmb_inst_slot=(buf[i+1]&0xF);
882 dmb_h2_coll.push_back(word_numbering);
884 dmb_inst_l1a=((buf[i-4]&0x0FFF)+((buf[i-4+1]&0xFFF)<<12));
885 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i %s %i",
886 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
887 sign1,dmb_common,dmb_header2,sign1,dmb_common_crate,dmb_inst_crate,
888 dmb_common_slot,dmb_inst_slot,dmb_common_l1a,dmb_inst_l1a);
895 else if(ddu_tr1_check[1]){
896 ddu_inst_i = ddu_h1_n_coll.size();
898 ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
901 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
902 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail1);
903 ddu_t1_coll.push_back(word_numbering);
908 else if(alct_h1_check[1]){
909 alct_start=word_numbering;
910 alct_inst_l1a=(buf[i+2]&0x0FFF);
911 alct_l1a_coll.push_back(alct_inst_l1a);
912 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s %s %i",
913 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
914 sign1,alct_common,alct_header1,sign1,dmb_common_l1a,alct_inst_l1a);
915 alct_h1_coll.push_back(word_numbering);
916 std::cout << tempbuf1 << std::endl; w=0; alct_inst_l1a=0;
919 else if((alct_h1_check[0])&&(alct_h2_check[2])) {
920 alct_inst_bxn=(buf[
i]&0x0FFF);
921 alct_bxn_coll.push_back(alct_inst_bxn);
922 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i",
923 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
924 sign1,alct_common,alct_header2,sign1,alct_common_bxn,alct_inst_bxn);
925 alct_h2_coll.push_back(word_numbering);
926 std::cout << tempbuf1 << std::endl; w=0; alct_inst_bxn=0;
930 else if(alct_tr1_check[1]){
931 alct_stop=word_numbering;
932 if((alct_start!=0)&&(alct_stop!=0)&&(alct_stop>alct_start)) {
933 alct_inst_wcnt2=4*(alct_stop-alct_start+1);
934 alct_wcnt2_coll.push_back(alct_inst_wcnt2);
935 alct_wcnt2_id_coll.push_back(alct_start);
937 alct_inst_wcnt1=(buf[i+3]&0x7FF);
938 alct_wcnt1_coll.push_back(alct_inst_wcnt1);
939 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i",
940 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
941 sign1,alct_common,alct_tr1,sign1,alct_common_wcnt1,alct_inst_wcnt1,
942 alct_common_wcnt2,alct_inst_wcnt2);
943 alct_t1_coll.push_back(word_numbering);
944 std::cout << tempbuf1 << std::endl; w=0; alct_inst_wcnt1=0;
949 else if((ddu_h2_h1)&&(tempbuf_short[0]==ddu_trailer3_bit[0])){
951 ddu_inst_i = ddu_h1_n_coll.size();
953 ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
956 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
957 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail3);
958 ddu_t3_coll.push_back(word_numbering);
962 else if((ddu_tr1_check[0])&&(tempbuf_short[0]!=ddu_trailer3_bit[0])){
964 ddu_inst_i = ddu_h1_n_coll.size();
966 ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
969 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s",
970 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail2);
971 ddu_t2_coll.push_back(word_numbering);
976 else if(dmb_tr1_check[1]){
977 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s",
978 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,dmb_common,dmb_tr1);
979 dmb_t1_coll.push_back(word_numbering);
984 else if(dmb_tr2_check[1]){
985 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s",
986 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,dmb_common,dmb_tr2);
987 dmb_t2_coll.push_back(word_numbering);
991 else if(tmb_h1_check[1]){
992 tmb_start=word_numbering;
993 tmb_inst_l1a=(buf[i+2]&0x000F);
994 tmb_l1a_coll.push_back(tmb_inst_l1a);
995 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i",
996 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,tmb_common,tmb_header1,
997 sign1,dmb_common_l1a,tmb_inst_l1a);
998 tmb_h1_coll.push_back(word_numbering);
999 std::cout << tempbuf1 << std::endl; w=0; tmb_inst_l1a=0;
1001 else if(tmb_tr1_check[1]){
1002 tmb_stop=word_numbering;
1003 if((tmb_start!=0)&&(tmb_stop!=0)&&(tmb_stop>tmb_start)) {
1004 tmb_inst_wcnt2=4*(tmb_stop-tmb_start+1);
1005 tmb_wcnt2_coll.push_back(tmb_inst_wcnt2);
1007 tmb_inst_wcnt1=(buf[i+3]&0x7FF);
1008 tmb_wcnt1_coll.push_back(tmb_inst_wcnt1);
1009 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i",
1010 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
1011 sign1,tmb_common,tmb_tr1,sign1,alct_common_wcnt1,tmb_inst_wcnt1,
1012 alct_common_wcnt2,tmb_inst_wcnt2);
1013 tmb_t1_coll.push_back(word_numbering);
1014 std::cout << tempbuf1 << std::endl; w=0;
1018 else if(cfeb_tr1_check[1]){
1020 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s%s %s %i",
1021 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
1022 sign1,cfeb_common,cfeb_tr1,sign1,cfeb_common_sample,cfeb_sample);
1023 cfeb_t1_coll.push_back(word_numbering); w=0;
1024 std::cout << tempbuf1 << std::endl; w=0;
1026 else if(cfeb_b_check[1]){
1027 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s %s",
1028 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,cfeb_common,cfeb_b);
1029 std::cout << tempbuf1 << std::endl; w=0;
1034 else if(ddu_tr1_bad_check[1]){
1035 ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
1036 sprintf(tempbuf1,
"%6i %04x %04x %04x %04x%s%s%i %s %s",
1037 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,
1038 ddu_trail1,ddu_tr1_err_common);
1039 std::cout << tempbuf1 << std::endl; w=0;
1042 else if(extraction&&(!ddu_h1_check)&&(!dcc_check)){
1044 sprintf(tempbuf,
"%6i %04x %04x %04x %04x",
1045 word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i]);
1046 std::cout << tempbuf << std::endl; w++;}
1048 std::cout <<
"..................................................." << std::endl; w++;}
1051 else if((!ddu_h1_check)&&(!dcc_check)){
1052 sprintf(tempbuf,
"%6i %04x %04x %04x %04x",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i]);
1056 i+=3; ddu_h1_check=
false; dcc_check=
false;
1059 std::cout <<
"********************************************************************************" <<
1060 std::endl << std::endl;
1062 std::cout <<
"For complete output turn off VisualFEDShort in muonCSCDigis configuration file." << std::endl;
1063 std::cout <<
"********************************************************************************" <<
1064 std::endl << std::endl;
1068 std::cout << ddu_h1_coll.size() <<
" "<< ddu_common <<
" "<<ddu_header1 <<
" "<<
"found" << std::endl;
1073 for(
unsigned int k=0;
k<ddu_h1_coll.size();++
k){
1079 std::cout <<
"Line: " <<
" " << ddu_h1_coll[
k] <<
" " << sign1 <<
" " <<
1080 ddu_common <<
" " << ddu_h1_n_coll[
k] <<
" " << dmb_common_l1a <<
" " << ddu_l1a_coll[
k] <<
" " <<
1081 alct_common_bxn <<
" " << ddu_bxn_coll[
k] << std::endl;
1086 std::cout <<
"||||||||||||||||||||" << std::endl;
1088 std::cout << ddu_h2_coll.size() <<
" "<< ddu_common <<
" "<<ddu_header2 <<
" "<<
"found" << std::endl;
1089 for(
unsigned int k=0;
k<ddu_h2_coll.size();++
k)
1090 std::cout <<
"Line: " << ddu_h2_coll[
k] << std::endl;
1092 std::cout <<
"||||||||||||||||||||" << std::endl;
1094 std::cout << ddu_h3_coll.size() <<
" "<< ddu_common <<
" "<<ddu_header3 <<
" "<<
"found" << std::endl;
1095 for(
unsigned int k=0;
k<ddu_h3_coll.size();++
k)
1096 std::cout <<
"Line: " << ddu_h3_coll[
k] << std::endl;
1098 std::cout <<
"||||||||||||||||||||" << std::endl;
1100 std::cout << ddu_t1_coll.size() <<
" "<< ddu_common <<
" "<<ddu_trail1 <<
" "<<
"found" << std::endl;
1101 for(
unsigned int k=0;
k<ddu_t1_coll.size();++
k)
1102 std::cout <<
"Line: " << ddu_t1_coll[
k] << std::endl;
1104 std::cout <<
"||||||||||||||||||||" << std::endl;
1106 std::cout << ddu_t2_coll.size() <<
" "<< ddu_common <<
" "<<ddu_trail2 <<
" "<<
"found" << std::endl;
1107 for(
unsigned int k=0;
k<ddu_t2_coll.size();++
k)
1108 std::cout <<
"Line: " << ddu_t2_coll[
k] << std::endl;
1110 std::cout <<
"||||||||||||||||||||" << std::endl;
1112 std::cout << ddu_t3_coll.size() <<
" "<< ddu_common <<
" "<<ddu_trail3 <<
" "<<
"found" << std::endl;
1113 for(
unsigned int k=0;
k<ddu_t3_coll.size();++
k)
1114 std::cout <<
"Line: " << ddu_t3_coll[
k] << std::endl;
1116 std::cout <<
"||||||||||||||||||||" << std::endl;
1118 std::cout << dmb_h1_coll.size() <<
" "<< dmb_common <<
" "<<dmb_header1 <<
" "<<
"found" << std::endl;
1120 for(
unsigned int k=0;
k<dmb_h1_coll.size();++
k){
1126 std::cout <<
"Line: " <<
" " << dmb_h1_coll[
k] <<
" " << sign1 << dmb_common
1127 <<
" " << dmb_common_crate <<
" " << dmb_crate_coll[
k] <<
" " << dmb_common_slot <<
" " <<
1128 dmb_slot_coll[
k] <<
" " << dmb_common_l1a <<
" " << dmb_l1a_coll[
k] << std::endl;
1131 std::cout <<
"||||||||||||||||||||" << std::endl;
1133 std::cout << dmb_h2_coll.size() <<
" "<< dmb_common <<
" "<<dmb_header2 <<
" "<<
"found" << std::endl;
1134 for(
unsigned int k=0;
k<dmb_h2_coll.size();++
k)
1135 std::cout <<
"Line: " << dmb_h2_coll[
k] << std::endl;
1137 std::cout <<
"||||||||||||||||||||" << std::endl;
1139 std::cout << dmb_t1_coll.size() <<
" "<< dmb_common <<
" "<<dmb_tr1 <<
" "<<
"found" << std::endl;
1140 for(
unsigned int k=0;
k<dmb_t1_coll.size();++
k)
1141 std::cout <<
"Line: " << dmb_t1_coll[
k] << std::endl;
1143 std::cout <<
"||||||||||||||||||||" << std::endl;
1145 std::cout << dmb_t2_coll.size() <<
" "<< dmb_common <<
" "<<dmb_tr2 <<
" "<<
"found" << std::endl;
1146 for(
unsigned int k=0;
k<dmb_t2_coll.size();++
k)
1147 std::cout <<
"Line: " << dmb_t2_coll[
k] << std::endl;
1149 std::cout <<
"||||||||||||||||||||" << std::endl;
1151 std::cout << alct_h1_coll.size() <<
" "<< alct_common <<
" "<<alct_header1 <<
" "<<
"found" << std::endl;
1152 for(
unsigned int k=0;
k<alct_h1_coll.size();++
k){
1160 alct_h1_coll[
k] <<
" " << sign1 <<
" " << alct_common <<
" " <<
1161 dmb_common_l1a <<
" " << alct_l1a_coll[
k] << std::endl;
1165 std::cout <<
"||||||||||||||||||||" << std::endl;
1167 std::cout << alct_h2_coll.size() <<
" "<< alct_common <<
" "<<alct_header2 <<
" "<<
"found" << std::endl;
1168 for(
unsigned int k=0;
k<alct_h2_coll.size();++
k){
1176 alct_h1_coll[
k] <<
" " << sign1 <<
" " << alct_common <<
" " <<
1177 alct_common_bxn <<
" " << alct_bxn_coll[
k] << std::endl;
1181 std::cout <<
"||||||||||||||||||||" << std::endl;
1183 std::cout << alct_t1_coll.size() <<
" "<< alct_common <<
" "<<alct_tr1 <<
" "<<
"found" << std::endl;
1184 for(
unsigned int k=0;
k<alct_t1_coll.size();++
k){
1191 std::cout <<
"Line: " <<
" " << alct_t1_coll[
k] <<
" " << sign1 <<
" " << alct_common <<
" " <<
1192 alct_common_wcnt1 <<
" " << alct_wcnt1_coll[
k] <<
" " << alct_common_wcnt2 <<
" ";
1193 if(alct_wcnt2_coll.size()>0){
1194 std::cout << alct_wcnt2_coll[
k] << std::endl;}
1196 std::cout <<
"Undefined (ALCT Header is not found) " << std::endl;}
1200 std::cout <<
"||||||||||||||||||||" << std::endl;
1202 std::cout << tmb_h1_coll.size() <<
" "<< tmb_common <<
" "<<tmb_header1 <<
" "<<
"found" << std::endl;
1203 for(
unsigned int k=0;
k<tmb_h1_coll.size();++
k){
1210 std::cout <<
"Line: " <<
" " << tmb_h1_coll[
k] <<
" " << sign1 <<
" " << tmb_common <<
" " <<
1211 dmb_common_l1a <<
" " << tmb_l1a_coll[
k] << std::endl;
1215 std::cout <<
"||||||||||||||||||||" << std::endl;
1217 std::cout << tmb_t1_coll.size() <<
" "<< tmb_common <<
" "<<tmb_tr1 <<
" "<<
"found" << std::endl;
1218 for(
unsigned int k=0;
k<tmb_t1_coll.size();++
k){
1225 std::cout <<
"Line: " <<
" " << tmb_t1_coll[
k] <<
" " << sign1 <<
" " << tmb_common <<
" " <<
1226 alct_common_wcnt1 <<
" " << tmb_wcnt1_coll[
k] <<
" " << alct_common_wcnt2 <<
" " << tmb_wcnt2_coll[
k]
1232 std::cout <<
"||||||||||||||||||||" << std::endl;
1234 std::cout << cfeb_t1_coll.size() <<
" "<< cfeb_common <<
" "<<cfeb_tr1 <<
" "<<
"found" << std::endl;
1235 for(
unsigned int k=0;
k<cfeb_t1_coll.size();++
k)
1236 std::cout <<
"Line: " << cfeb_t1_coll[
k] << std::endl;
1237 std::cout <<
"********************************************************************************" << std::endl;
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)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
CSCDetId detId(int vme, int dmb, int cfeb, int layer=0) const
CSCMonitorInterface * monitor
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
static void setDebug(const bool value)
ExaminerMaskType getMask() const
edm::EDGetTokenT< FEDRawDataCollection > i_token
Token for consumes interface & access to data.
unsigned int examinerMask
T const * product() const
bool useSelectiveUnpacking
int32_t check(const uint16_t *&buffer, int32_t length)
std::map< CSCIdType, ExaminerStatusType > payloadDetailed(void) const
char data[epos_bytes_allocation]
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)