refactor non event data
Basic design:
-
Shared interface:
- abstract base-class that provides the prototypes for registration of non-event data consumers and producers:
IUpdater
- abstract base-class that provides the prototypes for registration of non-event data consumers and producers:
-
LHCb implementation:
-
Service
that implements the ABC:AllenUpdater
-
Service
that produces specific (set of) non-event data for e.g. a sub-detector and registers it, condition registration/updates are used to call updates - At new run, update of all conditions is triggered by forcing a condition update with a new run number
-
-
Allen implementation:
- Standalone implementation of the ABC:
Updater
- instantiates and registers all required readers on construction to itself
- Standalone implementation of the ABC:
-
Registration uses identifier and a lambda that capture as needed (e.g.
Constants
or filename):- Consumer:
[&constants] (const vector<char>&) -> void
- Producer:
[some_filename] () -> vector<char>
- Consumer:
-
Allow running Allen from Python to allow easy integration with LHCb stack
- use PyROOT to load the entry point
- suggest to use json for configuration and pass as a string from python and from
main
.
Currently done:
- refactor main to have function to be used as entry point for calling Allen from Python
- Python entry point using PyROOT
- branch
raaij_allen_producers
in Rec contains the LHCb side of things. -
Allen.py
added to start Allen together with anLHCbApp
that provides most of the geometry
Closes #22 (closed) , #5 (closed)
Edited by Dorothea Vom Bruch