You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: DataFormats/Detectors/TRD/include/DataFormatsTRD/RawDataStats.h
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,9 @@ enum ParsingErrors {
44
44
TrackletDataWrongOrdering, // the tracklet data is not arriving in increasing MCM order
45
45
TrackletDataDuplicateMCM, // we see more than one TrackletMCMHeader for the same MCM
46
46
TrackletNoTrackletEndMarker, // got to the end of the buffer with out finding a tracklet end marker.
47
+
TrackletNoSecondEndMarker, // we expected to see a second tracklet end marker, but found something else instead
48
+
TrackletMCMDataFailure, // invalid word for TrackletMCMData detected
49
+
TrackletDataMissing, // we expected tracklet data but got an endmarker instead
47
50
TrackletExitingNoTrackletEndMarker, // got to the end of the buffer exiting tracklet parsing with no tracklet end marker
48
51
UnparsedTrackletDataRemaining, // the tracklet parsing has finished correctly, but there is still data left on the link (CRU puts incorrect link size or corrupt data?)
49
52
UnparsedDigitDataRemaining, // the digit parsing has finished correctly, but there is still data left on the link (CRU puts incorrect link size or corrupt data? RDH > 8kByte before?)
Copy file name to clipboardExpand all lines: Detectors/TRD/reconstruction/src/CruRawReader.cxx
+28-40Lines changed: 28 additions & 40 deletions
Original file line number
Diff line number
Diff line change
@@ -203,6 +203,7 @@ int CruRawReader::processHBFs()
203
203
// at this point the entire HBF data payload is sitting in mHBFPayload and the total data count is mTotalHBFPayLoad
204
204
int iteration = 0;
205
205
mHBFoffset32 = 0;
206
+
mPreviousHalfCRUHeaderSet = false;
206
207
while (mHBFoffset32 < (mTotalHBFPayLoad / 4)) {
207
208
if (mOptions[TRDVerboseBit]) {
208
209
LOGP(info, "Current half-CRU iteration {}, current offset in the HBF payload {}, total payload in number of 32-bit words {}", iteration, mHBFoffset32, mTotalHBFPayLoad / 4);
if (mCurrentHalfCRUHeader.EventType == ETYPEPHYSICSTRIGGER &&
518
515
endOfCurrentLink - mHBFoffset32 >= 8) {
516
+
/*
517
+
// disabled for the same reason as for the warning after the digits parsing below
519
518
if (mMaxWarnPrinted > 0) {
520
-
LOGF(warn, "After successfully parsing the tracklet data for link %i there are %i words remaining which did not get parsed", currentlinkindex, endOfCurrentLink - mHBFoffset32);
519
+
LOGF(warn, "After successfully parsing the tracklet data for link %i there are %u words remaining which did not get parsed", currentlinkindex, endOfCurrentLink - mHBFoffset32);
521
520
checkNoWarn();
522
521
}
523
522
incrementErrors(UnparsedTrackletDataRemaining, halfChamberId, fmt::format("On link {} there are {} words remaining which did not get parsed", currentlinkindex, endOfCurrentLink - mHBFoffset32));
// check if some data is lost (probably due to bug in CRU user logic)
583
583
// we should have max 7 padding words to align the link to 256 bits
584
+
/*
585
+
// due to the current CRU bug this is almost always the case
586
+
// TODO enable warning again when CRU UL is fixed
584
587
if (mMaxWarnPrinted > 0) {
585
-
LOGF(warn, "After successfully parsing the digit data for link %i there are %i words remaining which did not get parsed", currentlinkindex, endOfCurrentLink - mHBFoffset32);
588
+
LOGF(warn, "After successfully parsing the digit data for link %i there are %u words remaining which did not get parsed", currentlinkindex, endOfCurrentLink - mHBFoffset32);
586
589
checkNoWarn();
587
590
}
591
+
*/
588
592
incrementErrors(UnparsedDigitDataRemaining, halfChamberId, fmt::format("On link {} there are {} words remaining which did not get parsed", currentlinkindex, endOfCurrentLink - mHBFoffset32));
// format indicates no empty MCM headers are sent, so we should not see an end marker here
922
-
// TODO add error message/counter for QC
923
-
LOGF(warn, "For the MCM Header 0x%08x we expected a tracklet from CPU %i, but got an endmarker instead", mcmHeader.word, iCpu);
915
+
incrementErrors(TrackletDataMissing, hcid, fmt::format("For the MCM Header {:#010x} we expected a tracklet from CPU {}, but got an endmarker instead", mcmHeader.word, iCpu));
924
916
}
925
917
state = StateSecondEndmarker; // we expect a second tracklet end marker to follow
926
918
break;
927
919
}
928
920
if ((currWord & 0x1) == 0x1) {
929
921
// the reserved bit of the trackler MCM data is set
930
-
// TODO add error message/counter for QC
931
-
LOGF(warn, "Invalid word 0x%08x for the expected TrackletMCMData", currWord);
922
+
incrementErrors(TrackletMCMDataFailure, hcid, fmt::format("Invalid word {:#010x} for the expected TrackletMCMData", currWord));
0 commit comments