The ComponentAccumulator
is the key element of the current Athena configuration system.
Job configuration in this scheme is based on a philosophy of “bottom-up” configuration, where small units are “merged” to build up a working job. For more information, refer to:
ComponentAccumulator
system and featuresThis page outlines how to use trigger-specific CA constructs to configure a trigger chain. These serve to structure the sequences that schedule reconstruction and hypothesis components for a single Step.
Custom CA components for the trigger are defined in the MenuComponents module:
MenuSequence
SelectionCA
InEventRecoCA
InViewRecoCA
Of these, the SelectionCA
, InViewRecoCA
and InEventRecoCA
inherit from the base ComponentAccumulator
class, extending its functionality with various convenience methods.
These help streamline placing algorithms in the correct subsequence structure.
In the case of the *RecoCA
classes, these assist with generating prerequisite algorithms such as the InputMaker
or EventViewMaker
.
The SelectionCA
on the other hand supports a clean separation of the reconstruction and hypothesis elements.
These fit together as follows:
In this way, the complete MenuSequence
construct encapsulates the steering logic that is executed by the ChainStep
:
EventView
or in the full event context – mainly jet, MET) are embedded in a parallelisable Sequence
Sequence
, followed by the HypoAlg
HypoToolGen
function is provided to configure a HypoTool
that performs the final selection logic for every individual chain using this step
HypoTool
thresholds is done based on the chain dictionary, generated by parsing the chain nameCertain of these components also permit operation as the probe leg of Tag-and-Probe chains, performing special actions to avoid repeated reconstruction of (tighter) tag leg objects in the looser probe leg EventViews
.
Another element of the ComponentAccumulator
configuration scheme is the AthConfigFlags
construct, which holds the top-level steering options for the running job. See the flags tutorial for details.
The trigger-specific configuration flags are defined in the TriggerConfigFlags module.
They are all placed in the Trigger
category.
Parts of the trigger configuration (notably ID trigger) may cloneAndReplace
selected flags in (sub)categories e.g. to steer large-scale configuration of signature-specific settings. This permits such domains to configure a swath of algorithms purely on the basis of a supplied FlagCategory
, while keeping the full AthConfigFlags
immutable, apart from appending the customised subcategory for tracking.
The following flags are particularly important:
Trigger.triggerMenuSetup
Physics_pp_run3_v1
(without file type suffix). However, it can be extended with a “Menu Prescale Set”, which automatically applies prescale values. For example, Physics_pp_run3_v1_Primary_prescale
or MC_pp_run3_v1_BulkMCProd_prescale
remove unwanted triggers of various types, governed by MenuPrescaleConfig
Trigger.triggerConfig
json
filesRDO_TRIG
, AOD
, ESD
, DAOD
formats.Trigger.doLVL1
Trigger.doHLT
Trigger.AODEDMSet
, Trigger.ESDEDMSet
The following flags can be useful for debugging
Trigger.forceEnableAllChains
Trigger.doRuntimeNaviVal
Trigger.ExtraEDMList
Trigger.generateMenuDiagnostics
.dot
format for visualising the menu control flow constructionTrigger.fastMenuGeneration
(default True
)
ComponentAccumulator
generators to be executed immediately in the chain configuration, rather than being deferred to control flow creation – this may be necessary to understand conflicts or inconsistencies in signature configurationAs another specific use case, the following flags permit executing a restricted menu (defined in full Athena
releases, not in AthAnalysis
):
Trigger.enabledSignatures
Trigger.disabledSignatures
Trigger.selectChains
Trigger.disableChains
E.g. one can run only the muon signature as follows:
athena.py --imf --perfmon=fastmonmt --threads=1 --evtMax=20 --filesInput=RDO.pool.root TriggerJobOpts/runHLT.py Trigger.triggerMenuSetup="Dev_pp_run3_v1" Trigger.enabledSignatures='[\"Muon\"]' > athena.log 2>&1
or similarly extract a pair of muon chains:
athena.py --imf --perfmon=fastmonmt --threads=1 --evtMax=20 --filesInput=RDO.pool.root TriggerJobOpts/runHLT.py Trigger.triggerMenuSetup="Dev_pp_run3_v1" Trigger.selectChains='[\"HLT_mu24_ivarmedium_L1MU14FCH\",\"HLT_mu24_ivarmedium_mu6_msonly_probe_L1MU14FCH\"]' > athena.log 2>&1