ATLAS Offline Software
GenerateUnconventionalTrackingChainDefs.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from .UnconventionalTrackingChainConfiguration import UnconventionalTrackingChainConfiguration
4 from TriggerMenuMT.HLT.Config.Utility.ChainDictTools import splitChainDict
5 from TriggerMenuMT.HLT.Config.Utility.ChainMerging import mergeChainDefs
6 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
7 
8 import pprint
9 from AthenaCommon.Logging import logging
10 log = logging.getLogger(__name__)
11 log.debug("Importing %s",__name__)
12 
13 
14 
15 def generateChainConfigs(flags, chainDict ):
16 
17  if log.isEnabledFor(logging.DEBUG): # pprint.pformat is expensive
18  log.debug('dictionary is: %s\n', pprint.pformat(chainDict))
19 
20  listOfChainDicts = splitChainDict(chainDict)
21 
22  listOfChainDefs=[]
23  for subChainDict in listOfChainDicts:
24  subChain = UnconventionalTrackingChainConfiguration(subChainDict).assembleChain(flags)
25  listOfChainDefs += [subChain]
26 
27  log.debug('length of chaindefs %s', len(listOfChainDefs))
28 
29  if len(listOfChainDefs) > 1:
30  chainDef = mergeChainDefs(listOfChainDefs, chainDict)
31  else:
32  chainDef = listOfChainDefs[0]
33 
34  log.debug('ChainDef %s', chainDef)
35  return chainDef
36 
37 def prepareDefaultSignatureFlags(inflags : AthConfigFlags) -> AthConfigFlags:
38  """
39  invoked before generateChainConfigs method to prevent repeated cloning of flags within chain generation
40  """
41  from TrigInDetConfig.utils import cloneFlagsToActiveConfig
42  flags = cloneFlagsToActiveConfig(inflags, "fullScan", log)
43  return flags
GenerateUnconventionalTrackingChainDefs.generateChainConfigs
def generateChainConfigs(flags, chainDict)
Definition: GenerateUnconventionalTrackingChainDefs.py:15
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
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration
Definition: UnconventionalTrackingChainConfiguration.py:23
GenerateUnconventionalTrackingChainDefs.prepareDefaultSignatureFlags
AthConfigFlags prepareDefaultSignatureFlags(AthConfigFlags inflags)
Definition: GenerateUnconventionalTrackingChainDefs.py:37