Loading [MathJax]/extensions/MathZoom.js
The Gaudi Framework  master (181af51f)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages Concepts
ProduceConsume.py
Go to the documentation of this file.
14from Configurables import EvtStoreSvc
15from Configurables import Gaudi__Monitoring__MessageSvcSink as MessageSvcSink
16from Configurables import Gaudi__TestSuite__ContextConsumer as ContextConsumer
17from Configurables import Gaudi__TestSuite__ContextIntConsumer as ContextIntConsumer
18from Configurables import Gaudi__TestSuite__CountingConsumer as CountingConsumer
19from Configurables import Gaudi__TestSuite__FloatDataConsumer as FloatDataConsumer
20from Configurables import Gaudi__TestSuite__FrExpTransformer as FrExpTransformer
21from Configurables import Gaudi__TestSuite__IntDataConsumer as IntDataConsumer
22from Configurables import Gaudi__TestSuite__IntDataProducer as IntDataProducer
23from Configurables import (
24 Gaudi__TestSuite__IntIntToFloatFloatData as IntIntToFloatFloatData,
25)
26from Configurables import Gaudi__TestSuite__IntToFloatData as IntToFloatData
27from Configurables import Gaudi__TestSuite__IntVectorsMerger as IntVectorsMerger
28from Configurables import (
29 Gaudi__TestSuite__IntVectorsMergingConsumer as IntVectorsMergingConsumer,
30)
31from Configurables import Gaudi__TestSuite__IntVectorsToInts as IntVectorsToInts
32from Configurables import (
33 Gaudi__TestSuite__IntVectorsToIntVector as IntVectorsToIntVector,
34)
35from Configurables import Gaudi__TestSuite__LdExpTransformer as LdExpTransformer
36from Configurables import Gaudi__TestSuite__MyConsumerTool as MyConsumerTool
37from Configurables import Gaudi__TestSuite__MyExampleTool as MyExampleTool
38from Configurables import Gaudi__TestSuite__OpaqueProducer as OpaqueProducer
39from Configurables import Gaudi__TestSuite__OptFrExpTransformer as OptFrExpTransformer
40from Configurables import Gaudi__TestSuite__OptLdExpTransformer as OptLdExpTransformer
41from Configurables import Gaudi__TestSuite__SDataProducer as SDataProducer
42from Configurables import Gaudi__TestSuite__ShrdPtrConsumer as ShrdPtrConsumer
43from Configurables import Gaudi__TestSuite__ShrdPtrProducer as ShrdPtrProducer
44from Configurables import Gaudi__TestSuite__SRangesToIntVector as SRangesToIntVector
45from Configurables import (
46 Gaudi__TestSuite__OptionalSRangesMerger as OptionalSRangesMerger,
47)
48from Configurables import Gaudi__TestSuite__ToolConsumer as ToolConsumer
49from Configurables import Gaudi__TestSuite__TwoDMerger as TwoDMerger
50from Configurables import Gaudi__TestSuite__VectorDataProducer as VectorDataProducer
51from Configurables import Gaudi__TestSuite__VectorDoubleProducer as VectorDoubleProducer
52from Gaudi.Configuration import *
53from GaudiKernel.DataHandle import DataHandle
54
55# Application setup
57app.ExtSvc = [EvtStoreSvc("EventDataSvc"), MessageSvcSink()]
58
59types = []
60
61# this printout is useful to check that the type information is passed to python correctly
62print("---\n# List of input and output types by class")
63for configurable in sorted(
64 [
65 ToolConsumer,
66 IntDataProducer,
67 VectorDataProducer,
68 FloatDataConsumer,
69 IntDataConsumer,
70 IntToFloatData,
71 IntIntToFloatFloatData,
72 IntVectorsToIntVector,
73 ContextConsumer,
74 ContextIntConsumer,
75 VectorDoubleProducer,
76 FrExpTransformer,
77 LdExpTransformer,
78 OptFrExpTransformer,
79 OptLdExpTransformer,
80 CountingConsumer,
81 ShrdPtrProducer,
82 ShrdPtrConsumer,
83 ],
84 key=lambda c: c.getType(),
85):
86 print('"{}":'.format(configurable.getType()))
87 props = configurable.getDefaultProperties()
88 for propname, prop in sorted(props.items()):
89 if isinstance(prop, DataHandle):
90 types.append(prop.type())
91 print(' {}: "{}"'.format(propname, prop.type()))
92print("---")
93
94# - Algorithms
95
96OtherIntDataProducer = IntDataProducer("OtherIntDataProducer")
97OtherIntDataProducer.OutputLocation = "/Event/MyOtherInt"
98VectorDataProducer1 = VectorDataProducer(
99 "VectorDataProducer1", OutputLocation="/Event/IntVector1"
100)
101VectorDataProducer2 = VectorDataProducer(
102 "VectorDataProducer2", OutputLocation="/Event/IntVector2"
103)
104SDataProducer1 = SDataProducer("SDataProducer1", OutputLocation="/Event/S1", j=3)
105SDataProducer2 = SDataProducer("SDataProducer2", OutputLocation="/Event/S2", j=10)
106app.TopAlg = [
107 IntDataProducer("IntDataProducer"),
108 OtherIntDataProducer,
109 IntDataConsumer("IntDataConsumer"),
110 ToolConsumer("MyToolConsumer", MyTool=MyExampleTool(Message="Hello World!!!")),
111 ToolConsumer(
112 "MyBoundToolConsumer", MyTool=MyConsumerTool(MyInt="/Event/MyOtherInt")
113 ),
114 IntToFloatData("IntToFloatData"),
115 IntIntToFloatFloatData("IntIntToFloatFloatData"),
116 FloatDataConsumer("FloatDataConsumer"),
117 ContextConsumer("ContextConsumer"),
118 ContextIntConsumer("ContextIntConsumer"),
119 VectorDoubleProducer("VectorDoubleProducer"),
120 VectorDataProducer1,
121 VectorDataProducer2,
122 IntVectorsToIntVector(
123 "IntVectorsToIntVector",
124 InputLocations=[
125 str(VectorDataProducer1.OutputLocation),
126 str(VectorDataProducer2.OutputLocation),
127 ],
128 ),
129 FrExpTransformer("FrExpTransformer"),
130 LdExpTransformer("LdExpTransfomer"),
131 OptFrExpTransformer("OptFrExpTransformer"),
132 OptLdExpTransformer("OptLdExpTransformer"),
133 CountingConsumer("CountingConsumer"),
134 SDataProducer1,
135 SDataProducer2,
136 SRangesToIntVector(
137 "SRangesToIntVector",
138 InputRanges=[
139 str(SDataProducer1.OutputLocation),
140 str(SDataProducer2.OutputLocation),
141 ],
142 ),
143 OptionalSRangesMerger(
144 "OptionalSRangesMerger",
145 InputRanges=[
146 str(SDataProducer1.OutputLocation),
147 str(SDataProducer2.OutputLocation),
148 ],
149 ),
150 OptionalSRangesMerger(
151 "OptionalSRangesMerger_EmptyInput",
152 InputRanges=[
153 "/Event/NonExistent",
154 ],
155 ),
156 IntVectorsMerger(
157 "IntVectorsMerger",
158 InputLocations=[
159 str(VectorDataProducer1.OutputLocation),
160 str(VectorDataProducer2.OutputLocation),
161 ],
162 ),
163 IntVectorsMergingConsumer(
164 "IntVectorsMergingConsumer",
165 InputLocations=[
166 str(VectorDataProducer1.OutputLocation),
167 str(VectorDataProducer2.OutputLocation),
168 ],
169 ),
170 TwoDMerger(
171 "TwoDMerger",
172 InputInts=[
173 str(VectorDataProducer1.OutputLocation),
174 str(VectorDataProducer2.OutputLocation),
175 ],
176 InputDoubles=[
177 str(OptLdExpTransformer("OptLdExpTransformer").OutputDoubles),
178 ],
179 OutputInts="/Event/SummedInts",
180 OutputDoubles="/Event/SummedDoubles",
181 ),
182 OpaqueProducer("OpaqueProducer"),
183 ShrdPtrProducer("SharedPtrProducer"),
184 ShrdPtrConsumer("SharedPtrConsumer"),
185 VectorDataProducer(
186 "IntProducer0", Data=[0, 2, 4], OutputLocation="/Event/EventInts"
187 ),
188 VectorDataProducer(
189 "IntProducer1", Data=[1, 3, 5, 7], OutputLocation="/Event/OddInt"
190 ),
191 VectorDataProducer(
192 "IntProducer2", Data=[1, 1, 2, 3, 5, 8, 13], OutputLocation="/Event/Fib7"
193 ),
194 IntVectorsToInts(
195 "IntVectorsToInts",
196 Mapping=[[0, 0], [0, 1], [0, 2], [1, 1], [1, 2]],
197 InputLocations=["/Event/EventInts", "/Event/OddInt", "/Event/Fib7"],
198 OutputLocations=["/Event/EvenOddFib", "/Event/OddFib"],
199 ),
200 ContextIntConsumer("EvenOddFibConsumer", InputLocation="/Event/EvenOddFib"),
201 ContextIntConsumer("OddFibConsumer", InputLocation="/Event/OddFib"),
202]
203# - Events
204app.EvtMax = 2
205app.EvtSel = "NONE"
206app.HistogramPersistency = "NONE"
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition MsgStream.cpp:93
The Application Manager class.
Use a minimal event store implementation, and adds everything required to satisfy the IDataProviderSv...