Skip to content

Improve filtering and writing with L0App

Until now we had to hack together filters in options with limited success. This MR addresses that.

Three new properties are added for filtering and monitoring:

  • EventPreFilters, a list of algorithms to be executed before the L0 sequence (a la DaVinci),
  • L0Filter, the Code for a LoKi L0Filter to be executed after the L0 sequence.
  • Monitor, True by default, controls whether L0DUReportMonitor is run (just after the L0 sequence and before L0Filter).

The typical filter is 'L0_DECISION(LHCb.L0DUDecision.Any)', which will ensure that only events where L0 fired will be written. Another possibility is to use 'L0_DECISION(LHCb.L0DUDecision.Physics)' which will restrict further to events from channels with mask ??1.

Backward compatibility:

  • Monitoring is enabled by default but otherwise default behaviour is not changed.

Testing:

  • In the same merge request the scripts to run L0App in the Moore tests are adapted to use the new options. As a consequence, the prepare-input test is fixed (pre-filter actually works now) and the output contains only the triggered events (post-filter actually works).
  • Simplify existing L0App tests and add a few more to cover features tested only by the Moore tests. Update input data for real data and simulation.
Edited by Rosen Matev

Merge request reports

Loading