4 from Configurables
import GaudiExamplesCommonConf, CPUCruncher, HiveSlimEventLoopMgr, HiveWhiteBoard, InertMessageSvc, ForwardSchedulerSvc
12 "type" : "HiveReader", 13 "inputs" : ["ROOT File"], 14 "outputs" : ["DAQ/ODIN", "DAQ/RawEvent" 17 "runtimes_wall" : [0.05] 24 NUMBEROFEVENTSINFLIGHT = 1
25 NUMBEROFALGOSINFLIGHT = 100
32 NumberOfEvents = NUMBEROFEVENTS
33 NumberOfEventsInFlight = NUMBEROFEVENTSINFLIGHT
34 NumberOfAlgosInFlight = NUMBEROFALGOSINFLIGHT
35 NumberOfThreads = NUMBEROFTHREADS
36 CloneAlgos = CLONEALGOS
37 DumpQueues = DUMPQUEUES
47 "outputs": [
"/Event/DAQ/ODIN",
"/Event/DAQ/RawEvent" 50 "runtimes_wall": [0.16]
55 "inputs": [
"DAQ/ODIN",
"DAQ/RawEvent"],
56 "outputs": [
"/Event/Rec/Status",
"/Event/Rec/Header"],
57 "runtimes_wall": [0.183]
60 "name":
"BrunelEventCount",
61 "type":
"EventCountHisto",
64 "runtimes_wall": [2.000000e-03]
67 "name":
"HltDecReportsDecoder",
68 "type":
"HltDecReportsDecoder",
69 "inputs": [
"DAQ/RawEvent"],
70 "outputs": [
"/Event/Hlt/DecReports"],
71 "runtimes_wall": [2.3]
75 "type":
"CaloDigitsFromRaw",
76 "inputs": [
"DAQ/RawEvent"],
77 "outputs": [
"/Event/Raw/Prs/Digits"],
78 "runtimes_wall": [0.357]
82 "type":
"CaloZSupAlg",
83 "inputs": [
"DAQ/RawEvent"],
84 "outputs": [
"/Event/Raw/Ecal/Digits"],
85 "runtimes_wall": [0.750]
89 "type":
"CaloZSupAlg",
90 "inputs": [
"DAQ/RawEvent"],
91 "outputs": [
"/Event/Raw/Hcal/Digits"],
92 "runtimes_wall": [0.197]
95 "name":
"L0DUFromRaw",
96 "type":
"L0DUFromRawAlg",
97 "inputs": [
"DAQ/RawEvent"],
98 "outputs": [
"/Event/Trig/L0/L0DUReport"],
99 "runtimes_wall": [0.293]
102 "name":
"DecodeVeloClusters",
103 "type":
"DecodeVeloRawBuffer",
104 "inputs": [
"DAQ/RawEvent"],
105 "outputs": [
"/Event/Raw/Velo/LiteClusters",
"/Event/Raw/Velo/Clusters"],
106 "runtimes_wall": [1.095]
109 "name":
"CreateTTClusters",
110 "type":
"RawBankToSTClusterAlg",
111 "inputs": [
"DAQ/ODIN",
"DAQ/RawEvent"],
112 "outputs": [
"/Event/Raw/TT/Clusters",
"/Event/Rec/TT/Summary"],
113 "runtimes_wall": [0.809]
116 "name":
"CreateTTLiteClusters",
117 "type":
"RawBankToSTLiteClusterAlg",
118 "inputs": [
"DAQ/ODIN",
"DAQ/RawEvent"],
119 "outputs": [
"/Event/Raw/TT/LiteClusters"],
120 "runtimes_wall": [0.208]
123 "name":
"CreateITClusters",
124 "type":
"RawBankToSTClusterAlg",
125 "inputs": [
"DAQ/ODIN",
"DAQ/RawEvent"],
126 "outputs": [
"/Event/Raw/IT/Clusters",
"/Event/Rec/IT/Summary"],
127 "runtimes_wall": [0.672]
130 "name":
"CreateITLiteClusters",
131 "type":
"RawBankToSTLiteClusterAlg",
132 "inputs": [
"DAQ/ODIN",
"DAQ/RawEvent"],
133 "outputs": [
"/Event/Raw/IT/LiteClusters"],
134 "runtimes_wall": [0.177]
137 "name":
"FastVeloTracking",
138 "type":
"FastVeloTracking",
139 "inputs": [
"Raw/Velo/LiteClusters"],
140 "outputs": [
"/Event/Rec/Track/Velo"],
141 "runtimes_wall": [4.3]
148 workflow = miniBruneljson
149 cpu_cruncher_algos = []
150 for algo
in workflow[
"algorithms"]:
151 theAvgRuntime = float(algo[
"runtimes_wall"][0] / 1000.)
152 new_algo = CPUCruncher(
"%s@%s" % (algo[
"name"], algo[
"type"]),
153 avgRuntime=theAvgRuntime,
154 varRuntime=theAvgRuntime * 0.01,
155 DataInputs=algo[
"inputs"],
156 DataOutputs=algo[
"outputs"],
159 cpu_cruncher_algos.append(new_algo)
160 return cpu_cruncher_algos
172 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=NumberOfEventsInFlight)
174 slimeventloopmgr = HiveSlimEventLoopMgr(OutputLevel=INFO)
176 scheduler = ForwardSchedulerSvc(MaxEventsInFlight=NumberOfEventsInFlight,
177 MaxAlgosInFlight=100,
182 app.TopAlg = crunchers
184 app.EvtMax = NumberOfEvents
185 app.EventLoop = slimeventloopmgr
186 app.ExtSvc = [whiteboard]
The Application Manager class.