The Gaudi Framework  master (e98cfcff)
Loading...
Searching...
No Matches
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 Gaudi__TestSuite__StringDataConsumer as StringDataConsumer
24from Configurables import Gaudi__TestSuite__StringDataProducer as StringDataProducer
25from Configurables import (
26 Gaudi__TestSuite__IntIntToFloatFloatData as IntIntToFloatFloatData,
27)
28from Configurables import Gaudi__TestSuite__IntToFloatData as IntToFloatData
29from Configurables import Gaudi__TestSuite__IntVectorsMerger as IntVectorsMerger
30from Configurables import (
31 Gaudi__TestSuite__IntVectorsMergingConsumer as IntVectorsMergingConsumer,
32)
33from Configurables import Gaudi__TestSuite__IntVectorsToInts as IntVectorsToInts
34from Configurables import (
35 Gaudi__TestSuite__IntVectorsToIntsWithContextAndScale as IntVectorsToIntsWithContextAndScale,
36)
37from Configurables import (
38 Gaudi__TestSuite__IntVectorsToIntVector as IntVectorsToIntVector,
39)
40from Configurables import Gaudi__TestSuite__LdExpTransformer as LdExpTransformer
41from Configurables import Gaudi__TestSuite__MyConsumerTool as MyConsumerTool
42from Configurables import Gaudi__TestSuite__MyExampleTool as MyExampleTool
43from Configurables import Gaudi__TestSuite__OpaqueProducer as OpaqueProducer
44from Configurables import Gaudi__TestSuite__OptFrExpTransformer as OptFrExpTransformer
45from Configurables import Gaudi__TestSuite__OptLdExpTransformer as OptLdExpTransformer
46from Configurables import Gaudi__TestSuite__SDataProducer as SDataProducer
47from Configurables import Gaudi__TestSuite__ShrdPtrConsumer as ShrdPtrConsumer
48from Configurables import Gaudi__TestSuite__ShrdPtrProducer as ShrdPtrProducer
49from Configurables import Gaudi__TestSuite__SRangesToIntVector as SRangesToIntVector
50from Configurables import (
51 Gaudi__TestSuite__OptionalSRangesMerger as OptionalSRangesMerger,
52)
53from Configurables import Gaudi__TestSuite__ToolConsumer as ToolConsumer
54from Configurables import Gaudi__TestSuite__TwoDMerger as TwoDMerger
55from Configurables import Gaudi__TestSuite__VectorDataProducer as VectorDataProducer
56from Configurables import Gaudi__TestSuite__VectorDoubleProducer as VectorDoubleProducer
57from Gaudi.Configuration import *
58from GaudiKernel.DataHandle import DataHandle
59
60# Application setup
62app.ExtSvc = [EvtStoreSvc("EventDataSvc"), MessageSvcSink()]
63
64types = []
65
66# this printout is useful to check that the type information is passed to python correctly
67print("---\n# List of input and output types by class")
68for configurable in sorted(
69 [
70 ToolConsumer,
71 IntDataProducer,
72 StringDataProducer,
73 VectorDataProducer,
74 FloatDataConsumer,
75 IntDataConsumer,
76 StringDataConsumer,
77 IntToFloatData,
78 IntIntToFloatFloatData,
79 IntVectorsToIntVector,
80 ContextConsumer,
81 ContextIntConsumer,
82 VectorDoubleProducer,
83 FrExpTransformer,
84 LdExpTransformer,
85 OptFrExpTransformer,
86 OptLdExpTransformer,
87 CountingConsumer,
88 ShrdPtrProducer,
89 ShrdPtrConsumer,
90 ],
91 key=lambda c: c.getType(),
92):
93 print('"{}":'.format(configurable.getType()))
94 props = configurable.getDefaultProperties()
95 for propname, prop in sorted(props.items()):
96 if isinstance(prop, DataHandle):
97 types.append(prop.type())
98 print(' {}: "{}"'.format(propname, prop.type()))
99print("---")
100
101# - Algorithms
102
103OtherIntDataProducer = IntDataProducer("OtherIntDataProducer")
104OtherIntDataProducer.OutputLocation = "/Event/MyOtherInt"
105VectorDataProducer1 = VectorDataProducer(
106 "VectorDataProducer1", OutputLocation="/Event/IntVector1"
107)
108VectorDataProducer2 = VectorDataProducer(
109 "VectorDataProducer2", OutputLocation="/Event/IntVector2"
110)
111SDataProducer1 = SDataProducer("SDataProducer1", OutputLocation="/Event/S1", j=3)
112SDataProducer2 = SDataProducer("SDataProducer2", OutputLocation="/Event/S2", j=10)
113app.TopAlg = [
114 IntDataProducer("IntDataProducer"),
115 OtherIntDataProducer,
116 IntDataConsumer("IntDataConsumer"),
117 StringDataProducer("StringDataProducer", Value=r"component\.name"),
118 StringDataConsumer("StringDataConsumer"),
119 ToolConsumer("MyToolConsumer", MyTool=MyExampleTool(Message="Hello World!!!")),
120 ToolConsumer(
121 "MyBoundToolConsumer", MyTool=MyConsumerTool(MyInt="/Event/MyOtherInt")
122 ),
123 IntToFloatData("IntToFloatData"),
124 IntIntToFloatFloatData("IntIntToFloatFloatData"),
125 FloatDataConsumer("FloatDataConsumer"),
126 ContextConsumer("ContextConsumer"),
127 ContextIntConsumer("ContextIntConsumer"),
128 VectorDoubleProducer("VectorDoubleProducer"),
129 VectorDataProducer1,
130 VectorDataProducer2,
131 IntVectorsToIntVector(
132 "IntVectorsToIntVector",
133 InputLocations=[
134 str(VectorDataProducer1.OutputLocation),
135 str(VectorDataProducer2.OutputLocation),
136 ],
137 ),
138 FrExpTransformer("FrExpTransformer"),
139 LdExpTransformer("LdExpTransfomer"),
140 OptFrExpTransformer("OptFrExpTransformer"),
141 OptLdExpTransformer("OptLdExpTransformer"),
142 CountingConsumer("CountingConsumer"),
143 SDataProducer1,
144 SDataProducer2,
145 SRangesToIntVector(
146 "SRangesToIntVector",
147 InputRanges=[
148 str(SDataProducer1.OutputLocation),
149 str(SDataProducer2.OutputLocation),
150 ],
151 ),
152 OptionalSRangesMerger(
153 "OptionalSRangesMerger",
154 InputRanges=[
155 str(SDataProducer1.OutputLocation),
156 str(SDataProducer2.OutputLocation),
157 ],
158 ),
159 OptionalSRangesMerger(
160 "OptionalSRangesMerger_EmptyInput",
161 InputRanges=[
162 "/Event/NonExistent",
163 ],
164 ),
165 IntVectorsMerger(
166 "IntVectorsMerger",
167 InputLocations=[
168 str(VectorDataProducer1.OutputLocation),
169 str(VectorDataProducer2.OutputLocation),
170 ],
171 ),
172 IntVectorsMergingConsumer(
173 "IntVectorsMergingConsumer",
174 InputLocations=[
175 str(VectorDataProducer1.OutputLocation),
176 str(VectorDataProducer2.OutputLocation),
177 ],
178 ),
179 TwoDMerger(
180 "TwoDMerger",
181 InputInts=[
182 str(VectorDataProducer1.OutputLocation),
183 str(VectorDataProducer2.OutputLocation),
184 ],
185 InputDoubles=[
186 str(OptLdExpTransformer("OptLdExpTransformer").OutputDoubles),
187 ],
188 OutputInts="/Event/SummedInts",
189 OutputDoubles="/Event/SummedDoubles",
190 ),
191 OpaqueProducer("OpaqueProducer"),
192 ShrdPtrProducer("SharedPtrProducer"),
193 ShrdPtrConsumer("SharedPtrConsumer"),
194 VectorDataProducer(
195 "IntProducer0", Data=[0, 2, 4], OutputLocation="/Event/EventInts"
196 ),
197 VectorDataProducer(
198 "IntProducer1", Data=[1, 3, 5, 7], OutputLocation="/Event/OddInt"
199 ),
200 VectorDataProducer(
201 "IntProducer2", Data=[1, 1, 2, 3, 5, 8, 13], OutputLocation="/Event/Fib7"
202 ),
203 IntVectorsToInts(
204 "IntVectorsToInts",
205 Mapping=[[0, 0], [0, 1], [0, 2], [1, 1], [1, 2]],
206 InputLocations=["/Event/EventInts", "/Event/OddInt", "/Event/Fib7"],
207 OutputLocations=["/Event/EvenOddFib", "/Event/OddFib"],
208 ),
209 ContextIntConsumer("EvenOddFibConsumer", InputLocation="/Event/EvenOddFib"),
210 ContextIntConsumer("OddFibConsumer", InputLocation="/Event/OddFib"),
211 IntVectorsToIntsWithContextAndScale(
212 "IntVectorsToIntsWithContextAndScale",
213 Mapping=[[0, 0], [0, 1], [0, 2], [1, 1], [1, 2]],
214 InputLocations=["/Event/EventInts", "/Event/OddInt", "/Event/Fib7"],
215 Scale="/Event/MyInt",
216 OutputLocations=["/Event/ScaledEvenOddFib", "/Event/ScaledOddFib"],
217 ),
218 ContextIntConsumer(
219 "ScaledEvenOddFibConsumer", InputLocation="/Event/ScaledEvenOddFib"
220 ),
221 ContextIntConsumer("ScaledOddFibConsumer", InputLocation="/Event/ScaledOddFib"),
222]
223# - Events
224app.EvtMax = 2
225app.EvtSel = "NONE"
226app.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...