Skip to content

Improve filtering and writing with L0App

Rosen Matev requested to merge rmatev-l0app into 2017-patches

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