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