13 A test for issue 13 in gitlab.
14 Two different sets of sub-event contexts are created, and the
15 same algorithms (attached to a common control flow node) run in each
17 The ViewTester is an algorithm specifically designed to create sub-event
18 contexts, pass them to the scheduler, and report on the current context.
20 Five instances of ViewTester are used as follows:
21 - Algorithm A1 creates two sub-event contexts
22 - Algorithms A2 and A3 run within the sub-event contexts
23 - Algorithm A4 creates two more sub-event contexts
24 - Algorithms A2 and A3 run again, in the new contexts
25 - Algorithm A5 runs in the whole event context, after the sub-events
29 from Configurables
import (HiveWhiteBoard, HiveSlimEventLoopMgr,
30 AvalancheSchedulerSvc, AlgResourcePool, CPUCruncher,
31 GaudiSequencer, Test__ViewTester)
46 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots)
54 slimeventloopmgr = HiveSlimEventLoopMgr(
55 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO)
64 scheduler = AvalancheSchedulerSvc(ThreadPoolSize=threads, OutputLevel=INFO)
70 AlgResourcePool(OutputLevel=INFO)
76 a1 = Test__ViewTester(
"A1")
77 a1.baseViewName =
'viewOne'
78 a1.viewNumber = viewsPerEvt
79 a1.viewNodeName =
'viewNodeOne'
81 a2 = Test__ViewTester(
"A2")
84 a3 = Test__ViewTester(
"A3")
87 a4 = Test__ViewTester(
"A4")
88 a4.baseViewName =
'viewTwo'
89 a4.viewNumber = viewsPerEvt
90 a4.viewNodeName =
'viewNodeTwo'
92 a5 = Test__ViewTester(
"A5")
95 for algo
in [a1, a2, a3, a4, a5]:
96 algo.Cardinality = cardinality
97 algo.OutputLevel = INFO
99 extraNode = GaudiSequencer(
100 "extraNode", Members=[a2, a3], Sequential=
True, OutputLevel=INFO)
102 viewNodeOne = GaudiSequencer(
109 viewNodeTwo = GaudiSequencer(
116 createViewSeq = GaudiSequencer(
118 Members=[a1, viewNodeOne, a4, viewNodeTwo, a5],
129 EventLoop=slimeventloopmgr,
130 TopAlg=[createViewSeq],
131 MessageSvcType=
"InertMessageSvc")