This guide describes Athena configuration system that is intended to be used for Run 3 and later. It is also known as ComponentAccumulator based configuration or New Job Options.
The configuration system of Athena allows us to assemble and customize components (algorithms, services and tools) for a workflow. It is done by creation and manipulation of python objects. Result of the configuration process is a set of settings that are used by Athena to instantiate and appropriately configure C++ components. Even in a small workflow the number of settings can easily be a few hundreds and in a complete reconstruction or HLT setup the number of settings reaches tens of thousands. Such a set of information needs to be properly managed.
In broad terms the configuration system works as follows.
The steps marked with (*) are places where developer intervention is needed. That is to define configurable parameters and to prepare scripts setting them. Other steps are automatized.
The python infrastructure for the new configuration system lives in the package Control/AthenaConfiguration
In comparison to the Run 1-2 configuration system the procedure is technically different in some steps. However the only non-technical change concerned step 4.
For consistency, and to make a clear distinction between the existing configuration files and this new system the following naming convention is used.
ComponentAccumulatorinstance) should normally start with the name of the component they configure and must end with
Cfgand as a first argument that they take must be flags container (see above link)