13 A test for basic functionality of sub-event scheduling.
14 Algorithms A2 and A3 should run twice per event, in sub-event contexts.
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 Four 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 - Algorithm A4 runs in the whole event context, after the sub-events
26 from Configurables
import (HiveWhiteBoard, HiveSlimEventLoopMgr,
27 AvalancheSchedulerSvc, AlgResourcePool, CPUCruncher,
28 GaudiSequencer, Test__ViewTester)
43 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots)
51 slimeventloopmgr = HiveSlimEventLoopMgr(
52 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO)
61 scheduler = AvalancheSchedulerSvc(ThreadPoolSize=threads, OutputLevel=INFO)
67 AlgResourcePool(OutputLevel=INFO)
73 a1 = Test__ViewTester(
"A1")
74 a1.baseViewName =
'view'
75 a1.viewNumber = viewsPerEvt
76 a1.viewNodeName =
'viewNode'
78 a2 = Test__ViewTester(
"A2")
81 a3 = Test__ViewTester(
"A3")
84 a4 = Test__ViewTester(
"A4")
87 for algo
in [a1, a2, a3, a4]:
88 algo.Cardinality = cardinality
89 algo.OutputLevel = INFO
91 viewNode = GaudiSequencer(
98 createViewSeq = GaudiSequencer(
100 Members=[a1, viewNode, a4],
111 EventLoop=slimeventloopmgr,
112 TopAlg=[createViewSeq],
113 MessageSvcType=
"InertMessageSvc")