Skip to content
Snippets Groups Projects
Commit c5713d7a authored by Krzysztof Jamrog's avatar Krzysztof Jamrog
Browse files

Added combo steps handling in newJO

parent eeab87d7
No related branches found
No related tags found
No related merge requests found
TrigSignatureMo... INFO HLT_e5 2 2 1 1 1 TrigSignatureMo... INFO HLT_e5 2 2 1 1 1
TrigSignatureMo... INFO HLT_e5 decisions 2 2 TrigSignatureMo... INFO HLT_e5 decisions 2 2
TrigSignatureMo... INFO HLT_e5_e8 2 2 1 0 1 TrigSignatureMo... INFO HLT_e5_e8 2 2 1 0 1
TrigSignatureMo... INFO HLT_e5_e8 decisions 4 0 TrigSignatureMo... INFO HLT_e5_e8 decisions 6 0
TrigSignatureMo... INFO HLT_e5_v2 0 0 0 0 0 TrigSignatureMo... INFO HLT_e5_v2 0 0 0 0 0
TrigSignatureMo... INFO HLT_e5_v2 decisions 0 0 TrigSignatureMo... INFO HLT_e5_v2 decisions 0 0
TrigSignatureMo... INFO HLT_e5_v3 1 1 1 1 1 TrigSignatureMo... INFO HLT_e5_v3 1 1 1 1 1
...@@ -17,4 +17,4 @@ TrigSignatureMo... INFO HLT_mu8 decisions 2 ...@@ -17,4 +17,4 @@ TrigSignatureMo... INFO HLT_mu8 decisions 2
TrigSignatureMo... INFO HLT_mu8_1step 2 2 2 0 2 TrigSignatureMo... INFO HLT_mu8_1step 2 2 2 0 2
TrigSignatureMo... INFO HLT_mu8_1step decisions 2 0 TrigSignatureMo... INFO HLT_mu8_1step decisions 2 0
TrigSignatureMo... INFO HLT_mu8_e8 1 1 1 1 1 TrigSignatureMo... INFO HLT_mu8_e8 1 1 1 1 1
TrigSignatureMo... INFO HLT_mu8_e8 decisions 3 3 TrigSignatureMo... INFO HLT_mu8_e8 decisions 4 4
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
from collections import defaultdict
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponentsNaming import CFNaming from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponentsNaming import CFNaming
from TriggerMenuMT.HLTMenuConfig.Menu.HLTCFConfig import buildFilter, makeSummary from TriggerMenuMT.HLTMenuConfig.Menu.HLTCFConfig import buildFilter, makeSummary
from AthenaCommon.CFElements import parOR, seqAND from AthenaCommon.CFElements import parOR, seqAND
...@@ -10,23 +12,6 @@ log = logging.getLogger('HLTCFConfig_newJO') ...@@ -10,23 +12,6 @@ log = logging.getLogger('HLTCFConfig_newJO')
log.setLevel( VERBOSE ) log.setLevel( VERBOSE )
def connectStepToFilter(chainStep, filterNode):
filter_output = filterNode.getOutputList()
if len(filter_output) == 0:
raise ValueError('ERROR: no filter outputs are set')
if len(filter_output) != len(chainStep.sequences):
msg = 'ERROR: found {} filter outputs and {} MenuSequences in step {}'.format(len(filter_output),
len(chainStep.sequences), chainStep.name)
raise ValueError(msg)
for nseq, sequence in enumerate(chainStep.sequences):
output = filter_output[nseq]
log.debug("Found input %s to sequence::%s from Filter::%s (from seed %s)", output,
sequence.name, filterNode.Alg.name(), sequence.seed)
sequence.connectToFilter(output)
def printStepsMatrix(matrix): def printStepsMatrix(matrix):
print('----- Steps matrix ------') print('----- Steps matrix ------')
for nstep in matrix: for nstep in matrix:
...@@ -38,9 +23,6 @@ def printStepsMatrix(matrix): ...@@ -38,9 +23,6 @@ def printStepsMatrix(matrix):
def generateDecisionTree(chains): def generateDecisionTree(chains):
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from collections import defaultdict
acc = ComponentAccumulator() acc = ComponentAccumulator()
mainSequenceName = 'HLTAllSteps' mainSequenceName = 'HLTAllSteps'
acc.addSequence( seqAND(mainSequenceName) ) acc.addSequence( seqAND(mainSequenceName) )
...@@ -98,12 +80,15 @@ def generateDecisionTree(chains): ...@@ -98,12 +80,15 @@ def generateDecisionTree(chains):
stepsAcc = ComponentAccumulator() stepsAcc = ComponentAccumulator()
for chain in chainsInCell: for chain in chainsInCell:
connectStepToFilter(chain.steps[nstep], sfilter) step = chain.steps[nstep]
for seq in chain.steps[nstep].sequences: CFSequence(step, sfilter)
for seq in step.sequences:
if seq.ca is None: if seq.ca is None:
raise ValueError('ComponentAccumulator missing in sequence {} in chain {}'.format(seq.name, chain.name)) raise ValueError('ComponentAccumulator missing in sequence {} in chain {}'.format(seq.name, chain.name))
stepsAcc.merge( seq.ca ) stepsAcc.merge( seq.ca )
recoAcc.addEventAlgo( seq.hypo.Alg, sequenceName = stepView.getName() ) recoAcc.addEventAlgo( seq.hypo.Alg, sequenceName = stepView.getName() )
if step.isCombo:
recoAcc.addEventAlgo( step.combo.Alg, sequenceName = stepView.getName() )
sfilter.setChains(chain.name) sfilter.setChains(chain.name)
recoAcc.merge(stepsAcc, sequenceName = stepReco.getName()) recoAcc.merge(stepsAcc, sequenceName = stepReco.getName())
......
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