ATLAS Offline Software
GeneratePhotonChainDefs.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from TriggerMenuMT.HLT.Config.Utility.ChainDictTools import splitChainDict
4 from TriggerMenuMT.HLT.Config.Utility.ChainMerging import mergeChainDefs
5 from ..Photon.PhotonChainConfiguration import PhotonChainConfiguration
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, perSig_lengthOfChainConfigs):
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  listOfChainDefs = []
22 
23  for subChainDict in listOfChainDicts:
24  log.debug('Assembling subChainsDict %s for chain %s', len(listOfChainDefs), subChainDict['chainName'] )
25  Photon = PhotonChainConfiguration(subChainDict).assembleChain(flags)
26 
27  listOfChainDefs += [Photon]
28 
29 
30  if len(listOfChainDefs)>1:
31  theChainDef, perSig_lengthOfChainConfigs = mergeChainDefs(listOfChainDefs, chainDict, perSig_lengthOfChainConfigs)
32  else:
33  theChainDef = listOfChainDefs[0]
34 
35  return theChainDef, perSig_lengthOfChainConfigs
36 
37 
38 def prepareDefaultSignatureFlags(inflags : AthConfigFlags) -> AthConfigFlags:
39  """
40  invoked before generateChainConfigs method to prevent repeated cloning of flags within chain generation
41  """
42  from TrigInDetConfig.utils import cloneFlagsToActiveConfig
43  flags = cloneFlagsToActiveConfig(inflags, "photon", log)
44  return flags
45 
46 
47 
48 
python.HLT.Egamma.GeneratePhotonChainDefs.prepareDefaultSignatureFlags
AthConfigFlags prepareDefaultSignatureFlags(AthConfigFlags inflags)
Definition: GeneratePhotonChainDefs.py:38
python.HLT.Egamma.GeneratePhotonChainDefs.generateChainConfigs
def generateChainConfigs(flags, chainDict, perSig_lengthOfChainConfigs)
Definition: GeneratePhotonChainDefs.py:15
python.utils.cloneFlagsToActiveConfig
AthConfigFlags cloneFlagsToActiveConfig(AthConfigFlags flags, str config_name, logging.Logger log)
Definition: Trigger/TrigTools/TrigInDetConfig/python/utils.py:54
PhotonChainConfiguration
Definition: PhotonChainConfiguration.py:1
ChainDictTools.splitChainDict
def splitChainDict(chainDict)
Definition: ChainDictTools.py:104
ChainMerging.mergeChainDefs
def mergeChainDefs(listOfChainDefs, chainDict, perSig_lengthOfChainConfigs=None)
Definition: ChainMerging.py:15