Skip to content

Split AthenaMonitoring Package

This is to solve the problem of introducing cyclic dependencies when using low-level packages inside AthenaMonitoring. I've split the existing AthenaMonitoring package into the high-level, which will remain in AthenaMonitoring, and the low-level, which resides in a new package called AthenaMonitoringKernel. This is intended to be purely a refactor, with no logic changes.

High-level:

  • old offline monitoring base classes
  • new offline monitoring base classes
  • Data quality code

Low-level:

  • GenericMonitoringTool
  • Histogram Filler/Provider/Factory/FillerFactory

I also took a careful look at the CMake files, to try to minimize any unnecessary dependencies.

To account for the existing references to AthenaMonitoring/GenericMonitoringTool and AthenaMonitoring/Monitored in other packages, I've forwarded the include statements to the appropriate locations in the AthenaMonitoringKernel, with some compiler messages alerting the user of the change. (Eventually, we can remove these forwards, I presume.)

To do:

  • Add forwarding of #include statements referencing files which have been moved
  • Test usage of AthenaMonitoring.GenericMonitoringTool (python) outside of AthenaMonitoring
  • Change TrigDecisionTool dependency to AthenaMonitoringKernel directly

Peeps: @ponyisi @tbold @pisarna @fwinkl @ssnyder

Edited by Semen Turchikhin

Merge request reports