Question about how to properly compute occupancy plots

Dear QC experts,

for the MCH monitoring we would like to plot and check the channel-by-channel occupancy of our readout electronics. In continuous readout mode, the occupancy would be defined as the number of digits in a given time interval, for example one orbit.

The idea would be to gather the digits from the O2 decoding via DPL, using this kind of workflow:

TimeFrameSender -> o2-mch-raw-to-digits-workflow -> o2-qc

At the level of the raw-to-digits workflow it is possible to “count” the number of orbits using the information provided by the RDHs, however the RDHs are not available anymore once the digits are created and sent.

Is there a standard way to retrieve the number of orbits spanned by a given DPL message in QC? Or are we forced to assume that each DPL message corresponds to a full TF, and in this case how do we get number of orbits in the TF?

Ping @seperrin and @laphecet as they are also involved in this activity.

Thanks a lot!


This question is probably more for the MCH experts than the QC developers, but let me just add my two cents.

We do not remove data from the samples we provide to a QC task. So, I presume that you could store this information in the digits themselves and just use that in your qc task. We have no way to know in the QC how many orbits a given message is spanning over. To us, messages are all just blobs that we transfer.
Perhaps there is actually something in DPL to help with that, but I doubt it.


Thanks for the clarifications. One possibility would be to add the information as an “header” of the digits “blob”, or as a parallel DPL message. I wonder what is the preferred approach from the DPL point of view… @eulisse maybe you have some recommendation?