Interactive athena with the ComponentAccumulator

Merged Walter Lampl requested to merge wlampl/athena:CA_interactive into 23.0

The topic of "Interactive athena with ComponentAccumulator" briefly came up during the last Reco meeting. Here is what I could come up with: Open an interactive console using python's code.interactive.

This is steered by a command-line parameter (-i). The information is passed in the same (somewhat complicated and fragile) way than the debug-stage: AthConfigFlags.fillFromArgs parses the command-line and sets the flag Exec.Interactive. MainServiceCfg sets an attribute of the ComponentAccumlator that is checked in the run( method.

Right now, the interactive console is started at right before app.initialize(). This allows to inspect the final configuration (this is my primary usage of athena -i). In principle one could at this point also go manually through the state-machine, run a few events, and then do

import AthenaPython.PyAthena as PyAthena

to get hold of StoreGate. But this is not exactly user-friendly. And as far as I could see, the SG-Proxies are invalid at this point.

cc @ssnyder @fwinkl

Merge request reports