The Gaudi Framework  master (37c0b60a)
ModelDFAmbiguity.py
Go to the documentation of this file.
1 #!/usr/bin/env gaudirun.py
2 
12 """
13 A test modeling a production with subsequent modification of a data object. '/Event/B' experiences a conditional modification,
14 while '/Event/A' - an unconditional one:
15  (C): '/Event/B' <---- | UpdaterAlg3 (C) | ProducerAlg2 (C) |
16  (U): '/Event/A' <---- | UpdaterAlg2 (U) | ProducerAlg1 (C) | UpdaterAlg4 (U) | UpdaterAlg1 (C) |
17 """
18 
19 from Configurables import (
20  AvalancheSchedulerSvc,
21  CPUCruncher,
22  CPUCrunchSvc,
23  HiveSlimEventLoopMgr,
24  HiveWhiteBoard,
25  PrecedenceSvc,
26 )
27 from Gaudi.Configuration import *
28 
29 # metaconfig
30 evtMax = 1
31 evtslots = 1
32 algosInFlight = 1
33 
34 CPUCrunchSvc(shortCalib=True)
35 
36 PrecedenceSvc(OutputLevel=DEBUG)
37 
38 whiteboard = HiveWhiteBoard("EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
39 
40 slimeventloopmgr = HiveSlimEventLoopMgr(
41  SchedulerName="AvalancheSchedulerSvc", OutputLevel=INFO
42 )
43 
44 AvalancheSchedulerSvc(ThreadPoolSize=algosInFlight)
45 
46 producerAlg1 = CPUCruncher(name="ProducerAlg1")
47 producerAlg1.outKeys = ["/Event/A"]
48 
49 updaterAlg1 = CPUCruncher(name="UpdaterAlg1")
50 updaterAlg1.outKeys = ["/Event/A"]
51 
52 updaterAlg2 = CPUCruncher(name="UpdaterAlg2")
53 updaterAlg2.outKeys = ["/Event/A"]
54 
55 producerAlg2 = CPUCruncher(name="ProducerAlg2")
56 producerAlg2.inpKeys = ["/Event/A"]
57 producerAlg2.outKeys = ["/Event/B"]
58 
59 updaterAlg3 = CPUCruncher(name="UpdaterAlg3")
60 updaterAlg3.outKeys = ["/Event/B"]
61 
62 updaterAlg4 = CPUCruncher(name="UpdaterAlg4")
63 updaterAlg4.outKeys = ["/Event/A"]
64 
65 branch2 = Gaudi__Sequencer("ConditionalBranch", Sequential=True, ShortCircuit=True)
66 branch2.Members = [producerAlg1, updaterAlg1, producerAlg2, updaterAlg3]
67 
68 branch = Gaudi__Sequencer("UnConditionalBranch", ShortCircuit=False)
69 branch.Members = [branch2, updaterAlg2, updaterAlg4]
70 
72  EvtMax=evtMax,
73  EvtSel="NONE",
74  ExtSvc=[whiteboard],
75  EventLoop=slimeventloopmgr,
76  TopAlg=[branch],
77  MessageSvcType="InertMessageSvc",
78  OutputLevel=INFO,
79 )
Gaudi.Configuration
Definition: Configuration.py:1
ApplicationMgr
Definition: ApplicationMgr.h:57