Skip to content

Implement monitoring in TrigByteStreamCnvSvc

Rafal Bielski requested to merge rbielski/athena:hlt-bs-monitoring into master

Adding several monitoring histograms for the ByteStream HLT output. The monitoring is done directly before the HLT result is sent to DataCollector (TDAQ interface), which ensures that we monitor exactly what we send out and nothing can happen to the result between filling histograms and sending the result. Downside of this is that we introduce some small overhead to read back the raw data after already packing them into uint32_t[]. The advantage and main motivation is that we don't miss anything which happens in HLT - particularly HLT debug stream events, unlike in the HLTResultMTMaker monitoring which misses all debug streams. We do, of course, still miss what happens outside HLT between sending the result and writing the output to disk, i.e. DCM and SFO processing online in a partition.

Relevant Jira ticket is ATR-19667


The following histograms are added:

StreamTags

1D histogram counting how many events are sent by HLT to each stream
filled by accepted events only (at least one stream tag)

StreamTagsCorr

2D histogram showing correlation/overlap between streams
filled by accepted events only (at least one stream tag)

PscErrorCode

HLT-specific error codes set in the event header status word in case of HLT error
filled only if there are errors

ResultSizeByModule

2D histogram of HLT result ROBFragment size for each module ID
filled by all events with at least one HLT ROBFragment in output

ResultSizeByStream

2D histogram of HLT result ROBFragment size for each stream, counting all ROBFragments which go to a given stream in a given event, e.g. all ROBFragments in case of full event building
filled by accepted events only (at least one stream tag)

ResultSizeTotal

1D histogram showing the summed size of all HLT result ROBFragments
filled by all events with at least one HLT ROBFragment in output

ResultSizeFullEvFrag

1D histogram showing the size of the FullEventFragment sent to DataCollector (DCM)
filled by all events, accepted or rejected

TIME_EventDoneCall

1D histogram showing the time taken by the DataCollector::eventDone call (i.e. sending out the HLT result to DCM)
filled by all events, accepted or rejected


The first two histograms are also created by SFO, so comparing the HLT and SFO histograms gives us a good consistency check.

Merge request reports