12 """Test a CF configuration with an algorithm shared between branches that can terminate early."""
14 from Configurables
import (
16 AvalancheSchedulerSvc,
29 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
31 slimeventloopmgr = HiveSlimEventLoopMgr(
32 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=DEBUG
35 AvalancheSchedulerSvc(ThreadPoolSize=algosInFlight, OutputLevel=DEBUG)
39 """parallel OR sequencer"""
40 seq = GaudiSequencer(name)
42 seq.Sequential =
False
43 seq.ShortCircuit =
False
51 """sequential AND sequencer"""
52 seq = GaudiSequencer(name)
56 seq.ShortCircuit =
True
62 topSequence = GaudiSequencer(
"topSequence")
66 filterA = CPUCruncher(
"filterA")
67 and1A.Members.append(filterA)
71 and1A.Members.append(and2A)
74 and2A.Members.append(orA)
78 orA.Members.append(and3A)
80 alg1 = CPUCruncher(
"Alg1")
81 and3A.Members.append(alg1)
83 hypoA = CPUCruncher(
"hypoA")
84 and2A.Members.append(hypoA)
89 filterB = CPUCruncher(
"filterB", InvertDecision=
True)
90 and1B.Members.append(filterB)
94 and1B.Members.append(and2B)
97 and2B.Members.append(orB)
101 orB.Members.append(and3B)
103 alg2 = CPUCruncher(
"Alg2")
104 and3B.Members.append(alg1)
106 hypoB = CPUCruncher(
"hypoB")
107 and2B.Members.append(hypoB)
111 topSequence.Members.append(and1A)
112 topSequence.Members.append(and1B)
118 EventLoop=slimeventloopmgr,
119 TopAlg=[topSequence],
120 MessageSvcType=
"InertMessageSvc",