Skip to content

Implement ROB prefetching from initial RoI

Rafal Bielski requested to merge rbielski/athena:rob-prefetch-initial-roi into 22.0

Implement new additional way of ROB prefetching, using initial RoIs produced by HLTSeeding and running just after HLTSeeding.

Specific changes:

  • TriggerJobOpts: Replace the flag Trigger.enableROBPrefetching with Trigger.ROBPrefetchingOptions which is a list of enum values, default is [ROBPrefetching.InitialRoI, ROBPrefetching.StepRoI]
  • TrigGenericAlgs: Add new options in the ROBPrefetchingAlg:
    • configurable RoI link name ('roi' for step prefetching, 'initialRoi' for initial RoI prefetching)
    • chain filter to process RoIs only for decisions where specific chains (chain legs) are active - used for initial RoI prefetching
  • HLTSeeding: Add three instances of ROBPrefetchingAlg in the HLTBeginSeq just after HLTSeeding and connect seeding decision outputs to prefetching alg inputs
  • TrigGenericAlgs,TriggerMenuMT: Add new config function configurePrefetchingInitialRoI called at the end of menu generation and parsing all chain configurations to figure out the chain filters for the initial RoI prefetching algs. This is done by detecting whether particular data preparation algorithms are scheduled in the first step of a given chain leg. Only the "first" leg is considered (i.e. the one starting in lower step numbers).

Discussion and test results are available in ATR-26202. The key result shows a clear advantage of this additional prefetching, particularly for calo ROSes:

Edited by Rafal Bielski

Merge request reports