Skip to content

Gaudi Allen integration

Dorothea Vom Bruch requested to merge dovombru_Gaudi_Allen_integration into master

This branch currently works together with this branch in Rec: https://gitlab.cern.ch/lhcb/Rec/tree/dovombru_Allen_Rec_integration

Adds a wrapper to call Allen from Brunel one event at a time, Brunel handles the event loop. Allen is called with a call to stream.run_sequence, where the RuntimeOptions are passed with the input and the output is stored in the HostBuffers, which are part of the stream object.

The options file for Brunel is here: /Allen/Online/AllenIntegration/options/run_allen_in_gaudi.py. Brunel has to be configured to run Allen instead of Rec, as described in this readme: https://gitlab.cern.ch/lhcb/Allen/blob/dovombru_Gaudi_Allen_integration/Online/AllenIntegration/readme.md

Contents of this MR:

  • Allen uses gsl/gsl if found instead of gsl-lite to be compatible with Gaudi
  • Wrap all Property and Algorithm definitions in stream/gear/include/Configuration.cuh into the Allen namespace to avoid compilation issues with Gaudi
  • Raw input is dumped to the TES with Rec/GPU/BinaryDumpers/DumpRawBanks.cpp (todo: move dumpers to Allen)
  • Geometries etc. are obtained from the AllenUpdater (living in Rec at the moment)
  • Gaudi algorithm to call Allen for one event: Allen/Online/AllenIntegration/src/RunAllen.cpp
  • HostBuffers are stored on the TES
  • Converters to make LHCb::Track::v2 ojbects for Velo, VeloUT and Forward tracks produced by Allen are in Allen/Online/AllenIntegration/src/AllenForwardToV2Tracks.cpp etc
  • Tracks are then converted to V1, keyed containers and Links are created with the TrackAssociator
  • PrChecker is called for all three track types

Documentation for how to dump binary input for Allen now is placed here

Documentation for how to call Allen from Brunel or Moore is placed here

To do's:

cc @sstahl @peilian

Edited by Dorothea Vom Bruch

Merge request reports