75 , fbMonitorMode(kFALSE)
76 , fbDebugMonitorMode(kFALSE)
77 , fRawDataMode(kFALSE)
90 , fInSubSubEvent(kFALSE)
93 , fLastCTSch0_re_time(0.)
94 , fLastCTSch2_re_time(0.)
95 , fLastCTSch2_fe_time(0.)
96 , fPrevLastCTSch0_re_time(0.)
97 , fPrevLastCTSch2_re_time(0.)
98 , fPrevLastCTSch2_fe_time(0.)
118 LOG(info) <<
"Initializing mCBM RICH 2019 unpacker algo";
129 LOG(info) <<
"Init parameter containers for CbmMcbm2018UnpackerAlgoRich";
136 LOG(info) <<
"ReInit parameter containers for CbmMcbm2018UnpackerAlgoRich";
172 UShort_t usDetectorId) {
184 LOG(WARN) <<
"fvMsComponentsList.size() > 1 for RICH. Unpacking may not "
185 "work due to implementation limitations.";
188 LOG(info) <<
"CbmMcbm2018UnpackerAlgoRich::AddMsComponentToList => Component "
189 << component <<
" with detector ID 0x" << std::hex << usDetectorId
190 << std::dec <<
" added to list";
194 LOG(debug2) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTs(ts)";
209 if (0 == ts.index()) {
return kTRUE; }
211 LOG(debug2) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTs(ts, " << component
223 TString sCompList =
"";
227 LOG(fatal) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTs => More than 1 "
228 "component in list, unpacking impossible! List is "
233 LOG(debug) <<
"Components: " << ts.num_components();
234 LOG(debug) <<
"Microslices: " << ts.num_microslices(component);
236 const uint64_t compSize = ts.size_component(component);
237 LOG(debug) <<
"Component " << component <<
" has size " << compSize;
253 LOG(info) <<
"In each TS " <<
fuNbMsLoop <<
" MS will be looped over";
256 for (
size_t iMS = 0; iMS <
fuNbMsLoop; ++iMS) {
258 LOG(debug) <<
"=======================================================";
259 const fles::MicrosliceView mv = ts.get_microslice(component, iMS);
260 const fles::MicrosliceDescriptor& msDesc = mv.desc();
262 LOG(debug) <<
"msDesc.size=" << msDesc.size;
264 LOG(debug) <<
"msDesc.idx=" << msDesc.idx;
274 LOG(debug) <<
"=======================================================";
282 LOG(info) <<
"Processed " <<
fTScounter <<
" TS";
291 return a.GetTime() < b.GetTime();
311 const fles::MicrosliceView mv = ts.get_microslice(uMsCompIdx, uMsIdx);
312 const fles::MicrosliceDescriptor& msDesc = mv.desc();
313 const uint8_t* ptr = mv.content();
314 const size_t size = msDesc.size;
316 if (size == 0)
return kTRUE;
329 <<
"Reserved 0000 0000";
334 dataPtr = (Int_t*) (ptr + offset);
335 Int_t mbsNumber = (Int_t)(dataPtr[0] & 0xffffff);
336 uint8_t mts_error_msg = (uint8_t)((dataPtr[0] >> 24) & 0xff);
342 <<
"mbsNumber = " << mbsNumber;
349 dataPtr = (Int_t*) (ptr + offset);
350 Int_t TRBeventSize1 = (Int_t)(dataPtr[0]);
355 <<
"HadesTransportUnitQueue - Length = " << TRBeventSize1;
358 if (*dataPtr > 0 && UInt_t(*dataPtr) == 0x80030000) {
359 LOG(info) <<
"dataPtr == 0x80030000";
367 dataPtr = (Int_t*) (ptr + offset);
368 Int_t dcdr = (Int_t)(dataPtr[0]);
369 if (dcdr == 0x00030062) {
374 <<
"HadesTransportUnitQueue - Decoder = " << dcdr;
377 LOG(warning) <<
"[" <<
fGwordCnt <<
"]\t"
381 <<
"HadesTransportUnitQueue - Decoder = " << dcdr
382 <<
" is not 0x00030062 (196706) => 0x" << std::hex << dcdr
396 dataPtr = (Int_t*) (ptr + offset);
397 Int_t TRBeventSize2 = (Int_t)(dataPtr[0]);
398 if (TRBeventSize2 == TRBeventSize1 - 8) {
403 <<
"TRB event - Length = " << TRBeventSize2
404 <<
" == " << TRBeventSize1 <<
"-8";
411 <<
"TRB event - Length = " << TRBeventSize2
412 <<
" != " << TRBeventSize1 <<
"-8=" << TRBeventSize1 - 8;
435 uint8_t
const*
const ptr) {
450 while (
static_cast<size_t>(offset) < size) {
456 dataPtr = (Int_t*) (ptr + offset);
457 Int_t headerCopy = *dataPtr;
459 dataPtr = &headerCopy;
461 Int_t SubEvSize = (Int_t)((dataPtr[0] >> 16) & 0xffff);
462 Int_t HubId = (Int_t)((dataPtr[0]) & 0xffff);
466 if ((HubId == 0xc001) || (HubId == 0xc000)) {
479 (uint8_t*) &headerCopy)
481 <<
"subevent size = " << SubEvSize;
494 offset += (4 + SubEvSize * 4);
503 while (
static_cast<size_t>(offset) < size) {
512 dataPtr = (Int_t*) (ptr + offset);
513 Int_t SubEvSize = (Int_t)((dataPtr[0] >> 16) & 0xffff);
514 Int_t HubId = (Int_t)((dataPtr[0]) & 0xffff);
517 if ((HubId == 0xc001) || (HubId == 0xc000)) {
526 offset += (4 + SubEvSize * 4);
528 }
else if (HubId == 0x5555) {
535 <<
"subevent size = " << SubEvSize;
543 }
else if (((HubId >> 8) & 0xFF) == 0x82) {
550 <<
"subevent size = " << SubEvSize;
561 uint16_t combiner_address = ((HubId >> 4) & 0xF) * 3 + (HubId & 0xF);
572 <<
"subevent size = " << SubEvSize <<
"\n"
573 <<
"This is not a valid Combiner Id!"
586 offset += (4 + SubEvSize * 4);
593 if (size !=
static_cast<size_t>(offset)) {
594 LOG(WARN) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTRBevent() warning:"
595 <<
"Number of processed bytes is not equal to the expected size. "
596 "This should not happen. ("
597 << size <<
" VS " << offset <<
")";
610 uint8_t
const*
const ptr) {
623 dataPtr = (Int_t*) (ptr + offset);
624 Int_t checkSize = (Int_t)((dataPtr[0] >> 16) & 0xffff);
625 Int_t triggerType = (Int_t)((dataPtr[0] >> 4) & 0xf);
626 if (checkSize == 2) {
633 <<
"trigger type = " << triggerType;
636 LOG(warning) <<
"[" <<
fGwordCnt <<
"]\t"
640 <<
"checkSize != 2 (" << checkSize <<
")\t"
641 <<
"trigger type = " << triggerType;
658 dataPtr = (Int_t*) (ptr + offset);
659 Int_t checkBytes = (Int_t)((dataPtr[0] >> 16) & 0xffff);
661 if (checkBytes == 0) {
668 <<
"subevent ID = 0x"
672 LOG(warning) <<
"[" <<
fGwordCnt++ <<
"]\t"
676 <<
"checkBytes != 0 (" << checkBytes <<
")\t"
677 <<
"subevent ID = 0x"
689 dataPtr = (Int_t*) (ptr + offset);
690 UInt_t TriggerNum = (UInt_t)(dataPtr[0]);
695 <<
"trigger num = " << TriggerNum;
703 uint8_t
const*
const ptr) {
708 uint16_t SubEventError = 0;
715 dataPtr = (Int_t*) (ptr + offset);
716 SubEventError = (uint16_t)((dataPtr[0] >> 16) & 0xffff);
722 while (
static_cast<size_t>(offset) < size + 4) {
734 if (size !=
static_cast<size_t>(offset - 4)) {
735 LOG(WARN) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessSKIPsubevent() warning:"
736 <<
"Number of processed bytes is not equal to the expected size. "
737 "This should not happen.";
745 uint8_t
const*
const ptr) {
756 dataPtr = (Int_t*) (ptr + offset);
770 Short_t nInp = ((*dataPtr >> 16) & 0xf);
771 Short_t nTrigCh = ((*dataPtr >> 20) & 0x1f);
772 Short_t inclLastIdle = ((*dataPtr >> 25) & 0x1);
773 Short_t inclTrigInfo = ((*dataPtr >> 26) & 0x1);
774 Short_t inclTS = ((*dataPtr >> 27) & 0x1);
775 Short_t ETM = ((*dataPtr >> 28) & 0x3);
778 Short_t CTSinfo_size =
779 nInp * 2 + nTrigCh * 2 + inclLastIdle * 2 + inclTrigInfo * 3 + inclTS;
782 case 1: CTSinfo_size += 1;
break;
783 case 2: CTSinfo_size += 4;
break;
785 LOG(debug) <<
"ETM == 3";
790 LOG(debug) <<
"CTS information size (extracted from the CTS header): "
795 while (offset - 8 < CTSinfo_size * 4) {
797 dataPtr = (Int_t*) (ptr + offset);
798 ULong_t MSidx = 102400UL * ((ULong_t)(*dataPtr) - 1);
804 <<
" MSidx=" << MSidx;
815 (size - (1 + CTSinfo_size) * 4), ptr + offset, 0, 0));
820 if (size !=
static_cast<size_t>(offset - 4)) {
821 LOG(WARN) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessCTSsubevent() warning:"
822 <<
"Number of processed bytes is not equal to the expected size. "
823 "This should not happen.";
831 uint8_t
const*
const ptr) {
845 while (
static_cast<size_t>(offset)
862 dataPtr = (Int_t*) (ptr + offset);
863 Int_t SubSubEvSize = (Int_t)((dataPtr[0] >> 16) & 0xffff);
868 if ((
static_cast<size_t>(offset) + SubSubEvSize * 4) >= size) {
869 LOG(debug) <<
"Last DiRICH on HUB";
877 <<
"ILLEGAL SubSubEvent Id prev";
881 <<
"ILLEGAL SubSubEvent Id prev";
885 <<
"ILLEGAL SubSubEvent Id prev";
889 <<
"ILLEGAL SubSubEvent Id "
890 <<
"Offset:" <<
static_cast<size_t>(offset)
895 <<
"ILLEGAL SubSubEvent Id next";
899 <<
"ILLEGAL SubSubEvent Id next";
903 <<
"ILLEGAL SubSubEvent Id next";
910 <<
"subsubevent ID (FPGA ID) = 0x"
912 <<
"subsubevent size = " << SubSubEvSize
913 <<
" | HUB Offset:" <<
static_cast<size_t>(offset)
917 if (size + 4 <
static_cast<size_t>(offset + 4 + SubSubEvSize * 4
919 LOG(WARN) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTRBsubevent() warning:"
920 <<
"SubEvent out of bounds. This should not happen. (" << size
935 SubSubEvSize * 4, ptr + offset + 4, offset + 4, size));
942 uint16_t DiRICH_address = ((
fSubSubEvId >> 8) & 0xF) * 18
961 std::cout <<
"Missing Correction" << std::endl;
972 if (size !=
static_cast<size_t>(offset - 4)) {
973 LOG(WARN) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTRBsubevent() warning:"
974 <<
"Number of processed bytes is not equal to the expected size. "
975 "This should not happen. ("
976 << size <<
" VS " << (offset - 4) <<
")"
991 uint8_t
const*
const ptr,
992 Int_t
const hubOffset,
993 size_t const hubSize) {
999 Int_t TdcWordCorrection_local = 0;
1001 bool break_flag =
false;
1003 for (
size_t iWord = 0; iWord < size / 4; iWord++) {
1009 ==
static_cast<Int_t
>(hubOffset + offset + iWord * 4)) {
1021 TdcWordCorrection_local++;
1032 if ((hubSize > 0) && (hubOffset + offset + iWord * 4 > hubSize)) {
1052 if (
fSkipMs == kTRUE)
return 0;
1057 if (!((!break_flag && ((size) ==
static_cast<size_t>((WordCnt) *4)))
1060 ==
static_cast<size_t>((WordCnt) *4))))) {
1061 LOG(WARN) <<
"CbmMcbm2018UnpackerAlgoRich::ProcessTRBsubsubevent() warning:"
1062 <<
"Number of processed bytes is not equal to the expected size. "
1063 "This should not happen."
1064 <<
static_cast<size_t>(WordCnt * 4) <<
" " << size;
1070 return (WordCnt * 4 + offset);
1075 size_t const size) {
1076 Int_t* tdcDataPtr = (Int_t*) ptr;
1077 Int_t tdcData = tdcDataPtr[0];
1078 Int_t tdcTimeDataMarker = (tdcData >> 31) & 0x1;
1080 bool errorInData =
false;
1085 UInt_t tdcMarker = (tdcData >> 29) & 0x7;
1086 if (tdcMarker == 0x4 || tdcMarker == 0x5) {
1093 std::cout <<
"wrong TDC Word!!" << std::endl;
1098 UInt_t tdcMarker = (tdcData >> 29) & 0x7;
1100 if (tdcMarker == 0x0) {
1109 <<
"ILLEGAL TRAILER Position";
1111 }
else if ((size / 4 -
static_cast<size_t>(word)) > 1) {
1117 <<
"Trailer only at end of SubSubEvent!" << size / 4
1118 <<
" " <<
static_cast<size_t>(word);
1123 LOG(debug4) <<
"[" <<
fGwordCnt <<
"]\t"
1129 uint16_t errorBits = (tdcData) &0xffff;
1140 <<
"UNKNOWN (TDC TRAILER not after header)";
1145 }
else if (tdcMarker == 0x1) {
1157 <<
"ILLEGAL HEADER Position";
1159 }
else if (!((((tdcData >> 8) & 0xFFFFFF) == 0x200096)
1160 || (((tdcData >> 8) & 0xFFFFFF) == 0x200095))) {
1165 <<
"ILLEGAL HEADER Value";
1170 uint8_t errorBits = (tdcData) &0xff;
1172 LOG(debug4) <<
"[" <<
fGwordCnt <<
"]\t"
1184 <<
"UNKNOWN (TDC HEADER not after trailer)";
1190 }
else if (tdcMarker == 0x2) {
1194 LOG(debug4) <<
"[" <<
fGwordCnt <<
"]\t"
1199 LOG(info) <<
"DEBUG VALUE [" <<
fGwordCnt <<
"]\t"
1204 }
else if (tdcMarker == 0x3) {
1211 <<
"ILLEGAL EPOCH Position!";
1213 }
else if (((tdcData >> 28) & 0xF) != 0x6) {
1218 <<
"ILLEGAL EPOCH value :";
1224 LOG(debug4) <<
"[" <<
fGwordCnt <<
"]\t"
1232 if (tdcTimeDataMarker != 0x1) {
1247 LOG(error) <<
" >>> Skipping MicroTS due to error in data! <<<";
1255 Int_t channel = (tdcData >> 22) & 0x7f;
1256 Int_t fine = (tdcData >> 12) & 0x3ff;
1257 Int_t edge = (tdcData >> 11) & 0x1;
1258 Int_t coarse = (tdcData) &0x7ff;
1262 Double_t fullTime = (Double_t) epoch * 2048. * 5. + (Double_t)(coarse) *5.
1263 - (Double_t)(fine) *0.005;
1265 LOG(debug4) <<
"[" <<
fGwordCnt <<
"]\t"
1271 <<
"ch=" << channel <<
"\t"
1272 <<
"edge=" << edge <<
"\t"
1273 <<
"epoch=" << epoch <<
"\t"
1274 <<
"coarse=" << coarse <<
"\t"
1275 <<
"fine=" << fine <<
"\t"
1276 <<
"full=" << fullTime;
1317 Double_t fullTimeCorr = 0.;
1322 fullTimeCorr = dT - corr;
1361 Double_t correctedT1 = dT8 + corr1;
1362 Double_t correctedT2 = dT8 - corr1;
1370 <<
"\tdT8=" << dT8 <<
"\tcorr1=" << corr1
1371 <<
"\tcorrectedT1=" << correctedT1
1372 <<
"\tcorrectedT2=" << correctedT2;
1395 if (channel == 0)
return;
1398 if ((subSubEvId == 0xc000) || (subSubEvId == 0xc001))
return;
1409 if ((subSubEvId == 0xc000) || (subSubEvId == 0xc001))
return;
1411 Bool_t reFound = kFALSE;
1413 std::vector<CbmMcbmRichEdge>::iterator reIter =
fRisingEdgesBuf.begin();
1416 if (((*reIter).fSubSubEventID == subSubEvId)
1417 && ((*reIter).fChannel == channel)) {
1418 Double_t reTime = (*reIter).fTime;
1420 Double_t ToT = time - reTime;
1427 LOG(debug4) <<
"Found pair for FPGA ID 0x" << std::hex << subSubEvId
1428 << std::dec <<
"\tch=" << channel <<
"\tToT=" << ToT;
1434 TH1D*
h =
GetTotH1(subSubEvId, channel);
1435 if (
h !=
nullptr)
h->Fill(ToT);
1438 if (h2 !=
nullptr) h2->Fill(channel, ToT);
1457 if (reFound == kFALSE) {
1470 Int_t pixelUID = this->
GetPixelUID(fpgaID, channel);
1474 Double_t lastTime = 0.;
1477 fDigiVect.emplace_back(pixelUID, finalTime, tot - ToTcorr);
1480 if (lastTime > finalTime) {
1483 if (lastTime <= finalTime) {
1486 fDigiVect.begin() +
i + 1, pixelUID, finalTime, tot - ToTcorr);
1492 fDigiVect.emplace_back(pixelUID, finalTime, tot - ToTcorr);
1495 LOG(debug4) <<
"CbmMcbm2018UnpackerAlgoRich::WriteOutputDigi fDigiVect.size="
1507 LOG(debug4) <<
"CbmMcbm2018UnpackerAlgoRich::FinalizeTs: "
1510 <<
" entries in fFallingEdgesBuf";
1513 LOG(debug4) <<
"Rising edges: "
1514 "----------------------------------------------------------";
1515 std::vector<CbmMcbmRichEdge>::iterator reIter =
fRisingEdgesBuf.begin();
1517 LOG(debug4) <<
"FPGA=0x" << std::hex << (*reIter).fSubSubEventID << std::dec
1518 <<
"\tch=" << (*reIter).fChannel;
1524 LOG(debug4) <<
"Falling edges: "
1525 "---------------------------------------------------------";
1528 LOG(debug4) <<
"FPGA=0x" << std::hex << (*feIter).fSubSubEventID << std::dec
1529 <<
"\tch=" << (*feIter).fChannel;
1534 LOG(debug4) <<
"---------------------------------------------------------";
1559 "Errors in TDC msgs;;",
1566 fhTdcErrors->GetYaxis()->SetBinLabel(1,
"RingBuffOverw.");
1567 fhTdcErrors->GetYaxis()->SetBinLabel(2,
"noRefTime");
1568 fhTdcErrors->GetYaxis()->SetBinLabel(3,
"refTimePrecedes");
1569 fhTdcErrors->GetYaxis()->SetBinLabel(4,
"trigW/oRefTime");
1570 fhTdcErrors->GetYaxis()->SetBinLabel(5,
"markMisRefTime");
1571 fhTdcErrors->GetYaxis()->SetBinLabel(6,
"multiRefTime");
1572 fhTdcErrors->GetYaxis()->SetBinLabel(7,
"refTime<40ns");
1573 fhTdcErrors->GetYaxis()->SetBinLabel(8,
"noValidation");
1574 fhTdcErrors->GetYaxis()->SetBinLabel(9,
"trigger!=0x1");
1581 "Errors in Event/mts msgs;;",
1598 fhEventErrors->GetYaxis()->SetBinLabel(11,
"subEvBuffAlmFull");
1600 fhEventErrors->GetYaxis()->SetBinLabel(13,
"timingTrigErr");
1605 for (Int_t iTDC = 0; iTDC < nTDCs; iTDC++) {
1612 fhTdcErrors->GetXaxis()->SetBinLabel(iTDC + 1, Form(
"0x%4x", Addr));
1640 for (Int_t iCh = 0; iCh <= 32; iCh++) {
1658 TString canvasTitle;
1660 canvasName.Form(
"cToT2d_TDC_0x%4x", tdc);
1661 canvasTitle.Form(
"ToTs of TDC 0x%4x", tdc);
1662 c =
new TCanvas(canvasName, canvasTitle, w,
h);
1686 new TH1I(
"fhVectorSize",
1687 "Size of the vector VS TS index; TS index; Size [bytes]",
1692 new TH1I(
"fhVectorCapacity",
1693 "Size of the vector VS TS index; TS index; Size [bytes]",
1702 "Size of the Event from TrbNet; Size [bytes]",
1709 "fhSubEventSize; HubId ; Size [bytes]; Entries",
1719 new TH2I(
"fhSubSubEventSize",
1720 "fhSubSubEventSize; DiRICH ; Size [words]; Entries",
1730 "fhChnlSize; channel; Size [words]; Entries",
1746 TString name, title, subFolder;
1747 name.Form(
"ToT_tdc0x%x_ch%u", tdc, channel);
1748 title.Form(
"%s;ToT [ns];Entries", name.Data());
1749 subFolder.Form(
"ToT/tdc0x%x", tdc);
1750 h =
new TH1D(name, title, 100, -1., 49.);
1760 TString name, title, subFolder;
1761 name.Form(
"ToT_2d_tdc0x%x", tdc);
1762 title.Form(
"%s;channels;ToT [ns]", name.Data());
1763 subFolder.Form(
"ToT2d");
1764 h =
new TH2D(name, title, 33, 0, 32, 200, -1., 49.);
1774 const fles::MicrosliceView mv = ts.get_microslice(uMsCompIdx, uMsIdx);
1775 const fles::MicrosliceDescriptor& msDesc = mv.desc();
1776 const uint8_t* ptr = mv.content();
1777 const size_t size = msDesc.size;
1779 if (size == 0)
return kTRUE;
1786 const size_t size) {
1788 if (size == 0)
return size;
1794 std::cout << std::endl <<
"SIZE: " << std::dec << size <<
"Byte" << std::endl;
1795 for (
size_t i = 0;
i < size; ++
i) {
1798 uint8_t* tdcDataPtr = (uint8_t*) (ptr +
i);
1800 if (wrdCnt == 0 && nblCnt == 0) { printf(
"%08d : ",
static_cast<int>(
i)); }
1802 printf(
"%02x",
unsigned(*tdcDataPtr));
1804 if (nblCnt % 2 == 0) { printf(
" "); }
1805 if (nblCnt % 4 == 0) {
1840 if (((errbits >> 0) & 0x1) == 1)
1844 if (((errbits >> 1) & 0x1) == 1)
1848 if (((errbits >> 2) & 0x1) == 1)
1852 if (((errbits >> 3) & 0x1) == 1)
1856 if (((errbits >> 4) & 0x1) == 1)
1860 if (((errbits >> 5) & 0x1) == 1)
1864 if (((errbits >> 6) & 0x1) == 1)
1868 if (((errbits >> 7) & 0x1) == 1)
1883 if (((errbits >> 0) & 0x1) == 1)
fhEventErrors->Fill(0.0, 1.0);
1886 if (((errbits >> 1) & 0x1) == 1)
fhEventErrors->Fill(0.0, 2.0);
1889 if (((errbits >> 2) & 0x1) == 1)
fhEventErrors->Fill(0.0, 3.0);
1892 if (((errbits >> 3) & 0x1) == 1)
fhEventErrors->Fill(0.0, 4.0);
1895 if (((errbits >> 4) & 0x1) == 1)
fhEventErrors->Fill(0.0, 5.0);
1898 if (((errbits >> 5) & 0x1) == 1)
fhEventErrors->Fill(0.0, 6.0);
1901 if (((errbits >> 6) & 0x1) == 1)
fhEventErrors->Fill(0.0, 7.0);
1904 if (((errbits >> 7) & 0x1) == 1)
fhEventErrors->Fill(0.0, 8.0);
1907 if (((errbits >> 8) & 0x1) == 1)
fhEventErrors->Fill(0.0, 9.0);
1910 if (((errbits >> 9) & 0x1) == 1)
fhEventErrors->Fill(0.0, 10.0);
1913 if (((errbits >> 10) & 0x1) == 1)
fhEventErrors->Fill(0.0, 11.0);
1916 if (((errbits >> 11) & 0x1) == 1)
fhEventErrors->Fill(0.0, 12.0);
1937 uint8_t
const*
const ptr,
1938 size_t const size) {
1961 for (Int_t
i = 8; i < static_cast<Int_t>(size - 4);
1967 bool problem =
false;
1968 if ((((Int_t*) (ptr +
i - 4))[0] & 0xFFFF)
1969 == ((((Int_t*) (ptr +
i))[0] >> 16) & 0xFFFF)) {
1970 if ((((Int_t*) (ptr +
i + 4))[0] & 0xFFFF)
1971 == ((((Int_t*) (ptr +
i + 4))[0] >> 16) & 0xFFFF)) {
1983 if (problem)
i += 8;