13 A test modeling a production with subsequent modification of a data object. '/Event/B' experiences a conditional modification,
14 while '/Event/A' - an unconditional one:
15 (C): '/Event/B' <---- | UpdaterAlg3 (C) | ProducerAlg2 (C) |
16 (U): '/Event/A' <---- | UpdaterAlg2 (U) | ProducerAlg1 (C) | UpdaterAlg4 (U) | UpdaterAlg1 (C) |
19 from Configurables
import (
20 AvalancheSchedulerSvc,
34 CPUCrunchSvc(shortCalib=
True)
36 PrecedenceSvc(OutputLevel=DEBUG)
38 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
40 slimeventloopmgr = HiveSlimEventLoopMgr(
41 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO
44 AvalancheSchedulerSvc(ThreadPoolSize=algosInFlight)
46 producerAlg1 = CPUCruncher(name=
"ProducerAlg1")
47 producerAlg1.outKeys = [
"/Event/A"]
49 updaterAlg1 = CPUCruncher(name=
"UpdaterAlg1")
50 updaterAlg1.outKeys = [
"/Event/A"]
52 updaterAlg2 = CPUCruncher(name=
"UpdaterAlg2")
53 updaterAlg2.outKeys = [
"/Event/A"]
55 producerAlg2 = CPUCruncher(name=
"ProducerAlg2")
56 producerAlg2.inpKeys = [
"/Event/A"]
57 producerAlg2.outKeys = [
"/Event/B"]
59 updaterAlg3 = CPUCruncher(name=
"UpdaterAlg3")
60 updaterAlg3.outKeys = [
"/Event/B"]
62 updaterAlg4 = CPUCruncher(name=
"UpdaterAlg4")
63 updaterAlg4.outKeys = [
"/Event/A"]
65 branch2 = Gaudi__Sequencer(
"ConditionalBranch", Sequential=
True, ShortCircuit=
True)
66 branch2.Members = [producerAlg1, updaterAlg1, producerAlg2, updaterAlg3]
68 branch = Gaudi__Sequencer(
"UnConditionalBranch", ShortCircuit=
False)
69 branch.Members = [branch2, updaterAlg2, updaterAlg4]
75 EventLoop=slimeventloopmgr,
77 MessageSvcType=
"InertMessageSvc",