Skip to content

refactor non event data

Roel Aaij requested to merge raaij_non_event_data into master

Basic design:

  • Shared interface:

    • abstract base-class that provides the prototypes for registration of non-event data consumers and producers: IUpdater
  • 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
  • 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>
  • 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 an LHCbApp that provides most of the geometry

Closes #22 (closed) , #5 (closed)

Edited by Dorothea Vom Bruch

Merge request reports