Skip to content

Add LHCb::Particle-compatible ThOr algorithm configuration and tests

Alex Pearce requested to merge apearce-thor-configuration into master

The over-arching goal is to provide a configuration API which allows HLT2 line authors to write their lines using ThOr functors.

This MR adds Python wrappers, Hlt2Conf.algorithms_thor, around the ThOr filter and combiner algorithms which act on the legacy LHCb::Particle objects. The wrappers follow the look-and-feel of those around the legacy DVCommonBase-based algorithms in Hlt2Conf.algorithms. There's a new example options file and corresponding test which demonstrates the functionality.

A couple of changes were needed in Moore's backend to maintain persistence feature parity when using the ThOr algorithms:

  • The particle moving logic, which ensures line output ends up in a pretty TES location like /Event/HLT2/Hlt2MyLine/Particles, now handles any LHCb::Particle producer, not just DVCommonBase.
  • The particle moving algorithm has been migrated from a hacky FilterDesktop configuration to a dedicated algorithm CopyParticlesWithPVRelations, adding in Phys!933 (merged). Aside from moving one step further away from DVCommonBase, it's nice in that it ensures P2PV relations are persisted for all particles in a decay tree regardless of whether those relations were created or used as part of the HLT2 line selection.

The infrastructure for the v1-to-v2 switch is in place (Hlt2Conf.algorithms_thor.thor_backend) but support for the v2 backend is missing. It will come in a separate MR. Our priority is getting folks writing lines with ThOr functors, which this MR enables.

Requires gaudi/Gaudi!1210 (merged), Rec!2425 (merged), and Phys!933 (merged).

Edited by Alex Pearce

Merge request reports

Loading