Create histograms of rates of HLT1 selections
HLT1 selections rates should be monitored as a function of the event times, which can be obtained from the ODIN banks. For simulated events, the event time is not properly set, so there the wall-clock time can be used as a temporary proxy.
The suggested approach is to fill bins of a histogram with a set duration - say an hour and 20 minutes - with the number of positive decisions. At first a single histogram per line suffices. Once the routing bits are implemented, histograms per routing bit should also be implemented.
The first implementation of the monitoring will need access to the output of the HLT1 selections. These are compiled into decision reports in !190 (closed), which are copied to the HostBuffers
of a given stream.
To avoid incurring latency due to the monitoring, it should happen asynchronously on host threads. To achieve that, HostBuffers
need to be decoupled from the Stream
and managed separately, see #102 (closed).
Basics
-
Add a thread for monitoring to the async event loop being worked on in !176 (merged). -
Fill a dummy histogram with an entry every time a slice is complete -
When processing is complete and the monitoring thread is signalled to exit, write the dummy histogram to a file.
#102 (closed) is complete
Once-
Pass indices to HostBuffers
that can be obtained from theHostBuffersManager
proposed in #102 (closed) to the monitoring thread -
Fill histograms from the DecReports
stored inHostBuffers
. -
Notify the main thread of HostBuffers
that are available for reuse