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 
   27 from Configurables 
import (
 
   29     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 = GaudiSequencer(
 
  107     "nodeInView", Members=[b1, b2], Sequential=
False, OutputLevel=VERBOSE
 
  110 viewNode = GaudiSequencer(
 
  111     "viewNode", Members=[a2, nodeInView, a3], Sequential=
False, OutputLevel=VERBOSE
 
  114 createViewSeq = GaudiSequencer(
 
  115     "createViewSeq", Members=[a1, viewNode, a4], Sequential=
True, OutputLevel=VERBOSE
 
  125     EventLoop=slimeventloopmgr,
 
  126     TopAlg=[createViewSeq],
 
  127     MessageSvcType=
"InertMessageSvc",