78def alignTLASteps(chain_configs, chain_dicts):
79
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)]
82
83 def getTLAStepPosition(chainConfig):
84 tlaStep = findTLAStep(chainConfig)
85 log.debug('getTLAStepPosition found step %s and return %d',tlaStep,chainConfig.steps.index(tlaStep) + 1)
86 return chainConfig.steps.index(tlaStep) + 1
87
88
89 maxTLAStepPosition = 0
90 for chain in all_tla_chain_configs:
91 tlaStepPosition = getTLAStepPosition(chain)
92 if tlaStepPosition > maxTLAStepPosition:
93 maxTLAStepPosition = tlaStepPosition
94
95 log.debug('maxTLAStepPosition=%d',maxTLAStepPosition)
96
97
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()