Skip to content

Update packages needed to make ConfigFlag dual use in Athena and AnalysisBase

Chris Meyer requested to merge cjmeyer/athena:dual-use-config-flags into master

This MR includes 3 new packages in AnalysisBase:

Control/AthenaCommon
Control/AthenaConfiguration
Tools/PyUtils

While AthenaCommon isn't strictly necessary, it pulls in Logging, Constants and SystemOfUnits which reduces the number of try ... except statements in AthenaConfiguration. The compilation is updated to only pull in these three files when in AnalysisBase, otherwise try statements in AnaAlgorithm think it's running in Athena (since this package is available) and set things up incorrectly in AnalysisBase.

Otherwise, two new modes are added to MetaReader (analite and anapeeker) that are used when running in AnalysisBase. The main difference is these modes rely on FileMetaData instead of EventStreamInfo.

AllConfigFlags is re-ordered so that the shared flags are setup first. If AnalysisBase, the reduced list of configs is returned. If Athena, it continues on and adds everything. One caveat here is that a few configurations (such as EDMVersion) that were in later function calls to Athena-only packages have been hackily moved into an if-statement near the top of the file, protected by an if-statement checking for AnalysisBase.

Edited by Chris Meyer

Merge request reports