Implement ROB prefetching from initial RoI
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
withTrigger.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 theHLTBeginSeq
just afterHLTSeeding
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