13 A test for control flow scheduling within sub-event contexts.
14 The sub-event control flow node has a child node attached.
16 The ViewTester is an algorithm specifically designed to create sub-event
17 contexts, pass them to the scheduler, and report on the current context.
19 Six instances of ViewTester are used as follows:
20 - Algorithm A1 creates two sub-event contexts
21 - Algorithms A2 and A3 run within the sub-event contexts
22 - Algorithms B1 and B2 run within the sub-event contexts,
23 on a child control flow node
24 - Algorithm A4 runs in the whole event context, after the sub-events
28 from Configurables
import (
30 AvalancheSchedulerSvc,
51 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots)
59 slimeventloopmgr = HiveSlimEventLoopMgr(
60 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=DEBUG
70 scheduler = AvalancheSchedulerSvc(ThreadPoolSize=threads, OutputLevel=INFO)
76 AlgResourcePool(OutputLevel=DEBUG)
82 a1 = Test__ViewTester(
"A1")
83 a1.baseViewName =
"view"
84 a1.viewNumber = viewsPerEvt
85 a1.viewNodeName =
"viewNode"
87 a2 = Test__ViewTester(
"A2")
90 a3 = Test__ViewTester(
"A3")
93 a4 = Test__ViewTester(
"A4")
96 b1 = Test__ViewTester(
"B1")
99 b2 = Test__ViewTester(
"B2")
102 for algo
in [a1, a2, a3, a4, b1, b2]:
103 algo.Cardinality = cardinality
104 algo.OutputLevel = DEBUG
106 nodeInView = Gaudi__Sequencer(
107 "nodeInView", Members=[b1, b2], Sequential=
False, OutputLevel=VERBOSE
110 viewNode = Gaudi__Sequencer(
111 "viewNode", Members=[a2, nodeInView, a3], Sequential=
False, OutputLevel=VERBOSE
114 createViewSeq = Gaudi__Sequencer(
115 "createViewSeq", Members=[a1, viewNode, a4], Sequential=
True, OutputLevel=VERBOSE
125 EventLoop=slimeventloopmgr,
126 TopAlg=[createViewSeq],
127 MessageSvcType=
"InertMessageSvc",