17 Add one extra chain step for TLA Activities
21 log.debug(
"addTLAStep: processing chain: %s", chainDict[
'chainName'])
24 for cPart
in chainDict[
'chainParts']:
25 log.debug(
"addTLAStep: processing signature: %s", cPart[
'signature'] )
27 tlaSequencesList.append(functools.partial(getTLASignatureSequenceGenCfg, flags, chainDict=chainDict, chainPart=cPart))
29 log.debug(
"addTLAStep: About to add a step with: %d parallel sequences.", len(tlaSequencesList))
33 prevStep = chain.steps[-1]
34 stepName =
'TLAStep_{:s}'.format(prevStep.name)
35 step = ChainStep(name = stepName,
36 SequenceGens = tlaSequencesList,
37 chainDicts = prevStep.stepDicts)
39 log.debug(
"addTLAStep: About to add step %s ", stepName)
40 chain.steps.append(step)
46 signature= chainPart[
'signature']
48 if signature ==
'Photon':
49 photonOutCollectionName =
"HLT_egamma_Photons"
50 return PhotonTLAMenuSequenceGenCfg(flags, photonsIn=photonOutCollectionName)
52 elif signature ==
'Muon':
53 return MuonTLAMenuSequenceGenCfg(flags, muChainPart=chainPart)
55 elif signature ==
'Jet':
58 jetChainConfig.prepareDataDependencies(flags)
59 jetInputCollectionName = jetChainConfig.jetName
60 log.debug(f
"TLA jet input collection = {jetInputCollectionName}")
61 return JetTLAMenuSequenceGenCfg(flags, jetsIn=jetInputCollectionName)
62 elif signature ==
'MET':
63 return EmptyMenuSequence(
"EmptyMETTLA")
66 raise ValueError(f
"Unsupported TLA signature: No TLA sequence specified for signature {signature}.")
80 TLAEventBuildTypes = (
'PhysicsTLA',
'FTagPEBTLA',
'EgammaPEBTLA',
'DarkJetPEBTLA')
81 all_tla_chain_configs = [ch
for ch
in chain_configs
if any(ebtype
in chain_dicts[ch.name][
'eventBuildType']
for ebtype
in TLAEventBuildTypes)]
83 def getTLAStepPosition(chainConfig):
85 log.debug(
'getTLAStepPosition found step %s and return %d',tlaStep,chainConfig.steps.index(tlaStep) + 1)
86 return chainConfig.steps.index(tlaStep) + 1
89 maxTLAStepPosition = 0
90 for chain
in all_tla_chain_configs:
91 tlaStepPosition = getTLAStepPosition(chain)
92 if tlaStepPosition > maxTLAStepPosition:
93 maxTLAStepPosition = tlaStepPosition
95 log.debug(
'maxTLAStepPosition=%d',maxTLAStepPosition)
98 for chain
in all_tla_chain_configs:
99 tlaStepPosition = getTLAStepPosition(chain)
100 log.debug(
'Aligning TLA step at step %d for chain %s ', tlaStepPosition, chain.name)
101 if tlaStepPosition < maxTLAStepPosition:
102 numStepsNeeded = maxTLAStepPosition - tlaStepPosition
103 log.debug(
'Aligning TLA step for chain %s by adding %d empty steps', chain.name, numStepsNeeded)
104 chain.insertEmptySteps(
'EmptyTLAAlign', numStepsNeeded, tlaStepPosition-1)
105 chain.numberAllSteps()