Skip to content

WIP:StrippingReport histograms

Chitsanu Khurewathanakul requested to merge ckhurewa-stripping-report-histo into master

This MR provides an update to StrippingReport algorithm to provide histogram monitors into the output root file.

Here are examples of histograms (rate/time/multiplicities). They are grouped by streams: histos

Technical details:

  • Deprecate the stateful counting with ReportStat subclass and use the histogram/counter service instead. Going for stateless make it ready for future concurrency.
  • By using histo/counter services, the output (rate/multiplicity/timing) are available in the output root file, instead of relying on parsing the stdout.
  • Being in .root file also provide immediate visualization of anomalous lines.
  • Use TProfile as a base class of histogram. This is ideal for fraction-like counters where numerators and denominators are collected in parallel.
  • Consequently, the miscellaneous post-processing (latex style, hot lines) can be done offline instead using resultant root file. These methods are thus removed.
  • Depreciate the redundant correlation logic (use AlgorithmCorrelationsAlg nowadays).
  • Depreciate the IIncidentListener logic to count global events. This is instead easily accessible through IEventCounter tool.

Other remarks:

  • By having output as histograms in root files, the stripping can then be run with multiple subjobs (e.g., in Ganga), then easily be hadd together.
  • It can be a base for LHCbPR2 in the future (hopefully, for automated validation).
  • It still keeps the output strippingreport.py for backward-compatibility, so that it doesn't break the existing coordinator scripts. (I'd be happy to help you migrate though).
  • It also include the value of CPU speed ratio, so that the timing can be correctly normalized across jobs. This is adjustable from the property NormalizeTime, default to False for backward-compat.
  • As a bonus, ~2x speed gain compared to previous implementation.
  • Remove unused import.

The target branch is master, it's not needed to be used for current campaigns, but some people may found this useful already :)

Edited by Federico Leo Redi

Merge request reports