ATLAS Offline Software
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 
7 from AthenaCommon.Logging import logging
8 log = logging.getLogger(__name__)
9 logging.getLogger().info("Importing %s",__name__)
10 
11 from TriggerMenuMT.HLT.Config.Utility.ChainDictTools import splitChainDict
12 from TriggerMenuMT.HLT.Config.Utility.ChainMerging import mergeChainDefs
13 from .TauChainConfiguration import TauChainConfiguration
14 from ..Ditau.DitauChainConfiguration import DitauChainConfiguration
15 from ..Jet.JetChainConfiguration import JetChainConfiguration
16 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
17 
18 def 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 
25 def 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 
53 def 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 
python.HLT.Tau.TauChainConfiguration.TauChainConfiguration
Class to configure tau chains.
Definition: TauChainConfiguration.py:29
python.HLT.Tau.GenerateTauChainDefs.generateJetChainConfigs
def generateJetChainConfigs(flags, subChainDict)
Definition: GenerateTauChainDefs.py:18
python.HLT.Jet.JetChainConfiguration.JetChainConfiguration
Definition: JetChainConfiguration.py:32
python.utils.cloneFlagsToActiveConfig
AthConfigFlags cloneFlagsToActiveConfig(AthConfigFlags flags, str config_name, logging.Logger log)
Definition: Trigger/TrigTools/TrigInDetConfig/python/utils.py:54
ChainDictTools.splitChainDict
def splitChainDict(chainDict)
Definition: ChainDictTools.py:104
ChainMerging.mergeChainDefs
def mergeChainDefs(listOfChainDefs, chainDict, perSig_lengthOfChainConfigs=None)
Definition: ChainMerging.py:15
python.HLT.Ditau.DitauChainConfiguration.DitauChainConfiguration
Definition: DitauChainConfiguration.py:14
python.HLT.Tau.GenerateTauChainDefs.prepareDefaultSignatureFlags
AthConfigFlags prepareDefaultSignatureFlags(AthConfigFlags inflags)
Definition: GenerateTauChainDefs.py:53
python.HLT.Tau.GenerateTauChainDefs.generateChainConfigs
def generateChainConfigs(flags, chainDict, perSig_lengthOfChainConfigs)
Definition: GenerateTauChainDefs.py:25
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87