Skip to content
Snippets Groups Projects
Commit 0799c4d4 authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

Merge branch 'dot-files-generation-configurable' into 'master'

Makes generation of the HLT Control Flow dot files configurable

See merge request atlas/athena!28205
parents 4ccdd466 65bfa1b8
No related branches found
No related tags found
No related merge requests found
......@@ -14,7 +14,7 @@ from __future__ import print_function
from TriggerJobOpts.TriggerFlags import TriggerFlags
TriggerFlags.triggerMenuSetup = "LS2_emu_v1"
TriggerFlags.generateMenuDiagnostics=True
from TrigUpgradeTest.EmuStepProcessingConfig import generateL1DecoderAndChains
......
......@@ -95,6 +95,9 @@ def createTriggerFlags():
# name of the trigger menu
flags.addFlag('Trigger.triggerMenuSetup', 'LS2_v1')
# name of the trigger menu
flags.addFlag('Trigger.generateMenuDiagnostics', False)
# version of the menu
from AthenaCommon.AppMgr import release_metadata
flags.addFlag('Trigger.menuVersion',
......
......@@ -908,6 +908,13 @@ class outputHLTmenuJsonFile(JobProperty):
_flags.append(outputHLTmenuJsonFile)
class generateMenuDiagnostics(JobProperty):
""" Generate additional files heling in menu diagnostics """
statusOn=True
StoredValue=False
_flags.append( generateMenuDiagnostics )
class inputL1TopoConfigFile(JobProperty):
"""Used to define an external L1Topo configuration file. To be
used together with trigger flag readL1TopoConfigFromXML.
......
......@@ -28,7 +28,7 @@
# Classes to configure the CF graph, via Nodes
from AthenaCommon.CFElements import parOR, seqAND, seqOR
from AthenaCommon.AlgSequence import dumpSequence
from TriggerMenuMT.HLTMenuConfig.Menu.HLTCFDot import stepCF_DataFlow_to_dot, stepCF_ControlFlow_to_dot, all_DataFlow_to_dot
from TriggerMenuMT.HLTMenuConfig.Menu.HLTCFDot import stepCF_DataFlow_to_dot, stepCF_ControlFlow_to_dot, all_DataFlow_to_dot, create_dot
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponentsNaming import CFNaming
#from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
......@@ -303,7 +303,8 @@ def decisionTree_From_Chains(HLTNode, chains, allDicts, newJO):
createControlFlowNewJO(HLTNode, CFseq_list)
log.debug("finalDecisions: %s", finalDecisions)
all_DataFlow_to_dot(HLTNodeName, CFseq_list)
if create_dot():
all_DataFlow_to_dot(HLTNodeName, CFseq_list)
# matrix display
matrixDisplay( CFseq_list )
......@@ -445,9 +446,10 @@ def createControlFlow(HLTNode, CFseq_list):
summary=makeSummary(CFNaming.stepSummaryName(stepCF_name), step_decisions)
HLTNode += summary
log.debug("Now Draw...")
stepCF_DataFlow_to_dot(recoNodeName, CFseq_list[nstep])
stepCF_ControlFlow_to_dot(stepCF)
if create_dot():
log.debug("Now Draw...")
stepCF_DataFlow_to_dot(recoNodeName, CFseq_list[nstep])
stepCF_ControlFlow_to_dot(stepCF)
log.info("************* End of step %d, %s", nstep+1, stepCF_name)
......@@ -554,12 +556,12 @@ def generateDecisionTreeOld(HLTNode, chains, allChainDicts):
HLTNode += stepFilter
HLTNode += stepCF
HLTNode += summary
if create_dot():
stepCF_DataFlow_to_dot('{}_{}'.format(HLTNode.name(), stepName), CFsequences)
stepCF_ControlFlow_to_dot(stepCF)
all_DataFlow_to_dot(HLTNode.name(), allSequences)
stepCF_DataFlow_to_dot('{}_{}'.format(HLTNode.name(), stepName), CFsequences)
stepCF_ControlFlow_to_dot(stepCF)
all_DataFlow_to_dot(HLTNode.name(), allSequences)
matrixDisplay( allSequences )
matrixDisplay( allSequences )
return acc
......
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
###### Here some graphical methods to produce dot files from Decision Handling
# to visualize: dot -T pdf Step1.dot > Step1.pdf
......@@ -5,6 +7,13 @@ from AthenaCommon.AlgSequence import AthSequencer
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import isHypoBase, isInputMakerBase, isFilterAlg
import itertools
def create_dot():
from TriggerJobOpts.TriggerFlags import TriggerFlags
from AthenaConfiguration.AllConfigFlags import ConfigFlags
return TriggerFlags.generateMenuDiagnostics() or ConfigFlags.Trigger.generateMenuDiagnostics
DrawHypoTools=True
def drawHypoTools(file, all_hypos):
......@@ -14,6 +23,7 @@ def drawHypoTools(file, all_hypos):
file.write(" %s[fillcolor=yellow,style=filled,shape= Mdiamond]\n"%(hypotool))
file.write(" %s -> %s [style=dashed, color=grey]\n"%(hp.Alg.name(), hypotool))
def algColor(alg):
""" Set given color to Alg type"""
if isHypoBase(alg):
......
......@@ -80,6 +80,7 @@ if __name__ == "__main__":
Configurable.configurableRun3Behavior=True
from AthenaConfiguration.AllConfigFlags import ConfigFlags
ConfigFlags.Trigger.generateMenuDiagnostics = True
setupMenu(ConfigFlags)
from AthenaConfiguration.TestDefaults import defaultTestFiles
......
......@@ -2,6 +2,7 @@
setMenu = "LS2_v1"
endJobAfterGenerate = False
from TriggerJobOpts.TriggerFlags import TriggerFlags
TriggerFlags.generateMenuDiagnostics = True
include("TrigUpgradeTest/testHLT_MT.py")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment