12 """Test a CF configuration with an algorithm shared between branches that can terminate early."""
14 from Configurables
import (
15 AvalancheSchedulerSvc,
28 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
30 slimeventloopmgr = HiveSlimEventLoopMgr(
31 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=DEBUG
34 AvalancheSchedulerSvc(ThreadPoolSize=algosInFlight, OutputLevel=DEBUG)
38 """parallel OR sequencer"""
39 seq = Gaudi__Sequencer(name)
41 seq.Sequential =
False
42 seq.ShortCircuit =
False
50 """sequential AND sequencer"""
51 seq = Gaudi__Sequencer(name)
55 seq.ShortCircuit =
True
61 topSequence = Gaudi__Sequencer(
"topSequence")
65 filterA = CPUCruncher(
"filterA")
66 and1A.Members.append(filterA)
70 and1A.Members.append(and2A)
73 and2A.Members.append(orA)
77 orA.Members.append(and3A)
79 alg1 = CPUCruncher(
"Alg1")
80 and3A.Members.append(alg1)
82 hypoA = CPUCruncher(
"hypoA")
83 and2A.Members.append(hypoA)
88 filterB = CPUCruncher(
"filterB", InvertDecision=
True)
89 and1B.Members.append(filterB)
93 and1B.Members.append(and2B)
96 and2B.Members.append(orB)
100 orB.Members.append(and3B)
102 alg2 = CPUCruncher(
"Alg2")
103 and3B.Members.append(alg1)
105 hypoB = CPUCruncher(
"hypoB")
106 and2B.Members.append(hypoB)
110 topSequence.Members.append(and1A)
111 topSequence.Members.append(and1B)
117 EventLoop=slimeventloopmgr,
118 TopAlg=[topSequence],
119 MessageSvcType=
"InertMessageSvc",