92 def __init__(self, ChainStep, FilterAlg):
93 log.debug(" *** Create CFSequence %s with Filter %s", ChainStep.name, FilterAlg.Alg.getName())
94 self.filterNode = FilterAlg
95 self.step = ChainStep
96
97 self.ca = ComponentAccumulator()
98
99 seqAndWithFilter = FilterAlg.Alg if ChainStep.isEmpty else seqAND(ChainStep.name)
100 self.ca.addSequence(seqAndWithFilter)
101 self.seq = seqAndWithFilter
102 if not ChainStep.isEmpty:
103 self.ca.addEventAlgo(FilterAlg.Alg, sequenceName=seqAndWithFilter.getName())
104 self.stepReco = parOR(ChainStep.name + CFNaming.RECO_POSTFIX)
105
106 self.ca.addSequence(self.stepReco, parentName=seqAndWithFilter.getName())
107 log.debug("created parOR %s inside seqAND %s ", self.stepReco.getName(), seqAndWithFilter.getName())
108 self.mergeStepSequences(ChainStep)
109
110 for menuseq in ChainStep.sequences:
111 if not isinstance(menuseq, EmptyMenuSequence):
112 self.ca.
merge(menuseq.hypoAcc, sequenceName=seqAndWithFilter.getName())
113
114 self.connectCombo()
115 self.setDecisions()
116 if self.step.combo is not None:
117 self.ca.
merge(self.step.combo.acc, sequenceName=seqAndWithFilter.getName())
118 log.debug("CFSequence.__init: created %s ",self)
119
120