ATLAS Offline Software
Loading...
Searching...
No Matches
GenerateTauChainDefs.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3
6
7from AthenaCommon.Logging import logging
8log = logging.getLogger(__name__)
9logging.getLogger().info("Importing %s",__name__)
10
11from TriggerMenuMT.HLT.Config.Utility.ChainDictTools import splitChainDict
12from TriggerMenuMT.HLT.Config.Utility.ChainMerging import mergeChainDefs
13from .TauChainConfiguration import TauChainConfiguration
14from ..Ditau.DitauChainConfiguration import DitauChainConfiguration
15from ..Jet.JetChainConfiguration import JetChainConfiguration
16from AthenaConfiguration.AthConfigFlags import AthConfigFlags
17
18def generateJetChainConfigs(flags, subChainDict):
19 jet_cfg = JetChainConfiguration(subChainDict)
20 jet_cfg.prepareDataDependencies(flags)
21 jet = jet_cfg.assembleChain(flags)
22 jet_name = jet_cfg.jetName
23 return jet, jet_name
24
25def generateChainConfigs(flags, chainDict, perSig_lengthOfChainConfigs):
26
27
28 listOfChainDicts = splitChainDict(chainDict)
29 listOfChainDefs=[]
30
31 for subChainDict in listOfChainDicts:
32 log.debug('Assembling subChainsDict %s for chain %s', len(listOfChainDefs), subChainDict['chainName'] )
33 if subChainDict['sigDicts']['Tau'][0] == 'Tau':
34 Tau = TauChainConfiguration(subChainDict).assembleChain(flags)
35 listOfChainDefs += [Tau]
36 if subChainDict['sigDicts']['Tau'][0] == 'Ditau':
37 Jet, jet_name = generateJetChainConfigs(flags, subChainDict)
38 Ditau = DitauChainConfiguration(subChainDict, jet_name).assembleChain(flags)
39 Jet.append_step_to_jet(Ditau.steps)
40 listOfChainDefs += [Jet]
41
42
43 if len(listOfChainDefs)>1:
44 theChainDef, perSig_lengthOfChainConfigs = mergeChainDefs(listOfChainDefs, chainDict, perSig_lengthOfChainConfigs)
45
46 else:
47 theChainDef = listOfChainDefs[0]
48
49 log.debug("theChainDef: %s" , theChainDef)
50 return theChainDef, perSig_lengthOfChainConfigs
51
52
53def prepareDefaultSignatureFlags(inflags : AthConfigFlags) -> AthConfigFlags:
54 """
55 invoked before generateChainConfigs method to prevent repeated cloning of flags within chain generation
56 """
57 from TrigInDetConfig.utils import cloneFlagsToActiveConfig
58 flags = cloneFlagsToActiveConfig(inflags, "tauIso", log) #tauIso is most frequently invoked
59 return flags
60
generateChainConfigs(flags, chainDict, perSig_lengthOfChainConfigs)
AthConfigFlags prepareDefaultSignatureFlags(AthConfigFlags inflags)