Skip to content

Refactor Trigger Rates Code for MT

Tim Martin requested to merge tamartin/athena:improveRatesCode into master

This MR starts the process of refactoring the new rates packages to use in MT with some more modern coding patterns.

This package has so far only been extensively used to do MC rates for the P-II TDAQ TDR. But we will use it also for R3 data rates.

Here I...

  • Remove having the separate RatesAnalysis library and RatesAnalysisExamplesXAOD component packages. Rather I move the component ExampleRatesFullMenu into the RatesAnalysis package where it is now called RatesAnalysisFullMenu. The python helper, RatesGetCrossSectionMC.py, is also moved.
  • Gaudi::Property are used throughout
  • Tools are setup in Python, not behind-the-scenes by the C++ (cc @tsulaia, removes the need for the incident that you were concerned about)
  • New main JO FullMenu.py uses a ComponentAccumulator, taking inspiration from the ​Run3DQTestingDriver.py
  • Histograms and class members are managed via unique_ptr
  • Normalisation of histograms is removed as an option. This will always be applied when the output histograms are hadd merged and processed to CSV/JSON/XML rates.

cc @lixia, @jmontejo, @markowen - once this is merged we can do e.g. python FullMenu.py --targetLuminosity=2e34 Input.Files="['AOD.pool.root']" where the AOD is the output of an EB data reprocessing, and hence be closer to having the MT rates pipeline.

Edited by Tim Martin

Merge request reports