The Gaudi Framework  v29r0 (ff2e7097)
ForwardSchedulerControlFlowTest.py
Go to the documentation of this file.
1 #!/usr/bin/env gaudirun.py
2 
3 from Gaudi.Configuration import *
4 from Configurables import HiveWhiteBoard, HiveSlimEventLoopMgr, ForwardSchedulerSvc, CPUCruncher, AlgResourcePool
5 from Configurables import GaudiSequencer
6 
7 InertMessageSvc(OutputLevel=INFO)
8 
9 # metaconfig
10 evtslots = 1
11 evtMax = 20
12 cardinality = 10
13 algosInFlight = 10
14 
15 whiteboard = HiveWhiteBoard("EventDataSvc",
16  EventSlots=evtslots)
17 
18 slimeventloopmgr = HiveSlimEventLoopMgr(OutputLevel=INFO)
19 
20 scheduler = ForwardSchedulerSvc(MaxEventsInFlight=evtslots,
21  MaxAlgosInFlight=algosInFlight,
22  OutputLevel=DEBUG)
23 
24 AlgResourcePool(OutputLevel=DEBUG)
25 
26 FakeInput = CPUCruncher("FakeInput",
27  DataOutputs=[
28  '/Event/DAQ/ODIN', '/Event/DAQ/RawEvent', '/Event/Hlt/LumiSummary'],
29  shortCalib=True,
30  varRuntime=.1,
31  avgRuntime=.1)
32 
33 BrunelInit = CPUCruncher("BrunelInit",
34  DataInputs=['/Event/DAQ/ODIN', '/Event/DAQ/RawEvent'],
35  DataOutputs=['/Event/Rec/Status',
36  '/Event/Rec/Header'],
37  shortCalib=True)
38 
39 PhysFilter = CPUCruncher("PhysFilter",
40  shortCalib=True,
41  DataInputs=['/Event/Hlt/LumiSummary'])
42 
43 HltDecReportsDecoder = CPUCruncher("HltDecReportsDecoder",
44  shortCalib=True,
45  DataInputs=['/Event/DAQ/RawEvent'],
46  DataOutputs=['/Event/Hlt/DecReports'])
47 
48 HltErrorFilter = CPUCruncher("HltErrorFilter",
49  shortCalib=True,
50  DataInputs=['/Event/Hlt/DecReports'])
51 
52 sequence1 = GaudiSequencer("Sequence1")
53 sequence1.Members += [FakeInput, BrunelInit, PhysFilter, HltDecReportsDecoder]
54 sequence1.ModeOR = False
55 sequence1.ShortCircuit = False # whether the evaluation is lazy or not!
56 sequence2 = GaudiSequencer("Sequence2")
57 sequence2.Members += [sequence1, HltErrorFilter]
58 
59 
60 ApplicationMgr(EvtMax=evtMax,
61  EvtSel='NONE',
62  ExtSvc=[whiteboard],
63  EventLoop=slimeventloopmgr,
64  TopAlg=[sequence2],
65  MessageSvcType="InertMessageSvc")
Thread safe extension to the standard MessageSvc.
The Application Manager class.