The Gaudi Framework  v36r13 (995e4364)
ProduceConsume.py
Go to the documentation of this file.
1 
14 from Configurables import EvtStoreSvc
15 from Configurables import Gaudi__Examples__ContextConsumer as ContextConsumer
16 from Configurables import Gaudi__Examples__ContextIntConsumer as ContextIntConsumer
17 from Configurables import Gaudi__Examples__CountingConsumer as CountingConsumer
18 from Configurables import Gaudi__Examples__FloatDataConsumer as FloatDataConsumer
19 from Configurables import Gaudi__Examples__FrExpTransformer as FrExpTransformer
20 from Configurables import Gaudi__Examples__IntDataConsumer as IntDataConsumer
21 from Configurables import Gaudi__Examples__IntDataProducer as IntDataProducer
22 from Configurables import (
23  Gaudi__Examples__IntIntToFloatFloatData as IntIntToFloatFloatData,
24 )
25 from Configurables import Gaudi__Examples__IntToFloatData as IntToFloatData
26 from Configurables import Gaudi__Examples__IntVectorsMerger as IntVectorsMerger
27 from Configurables import (
28  Gaudi__Examples__IntVectorsMergingConsumer as IntVectorsMergingConsumer,
29 )
30 from Configurables import Gaudi__Examples__IntVectorsToInts as IntVectorsToInts
31 from Configurables import (
32  Gaudi__Examples__IntVectorsToIntVector as IntVectorsToIntVector,
33 )
34 from Configurables import Gaudi__Examples__LdExpTransformer as LdExpTransformer
35 from Configurables import Gaudi__Examples__MyConsumerTool as MyConsumerTool
36 from Configurables import Gaudi__Examples__MyExampleTool as MyExampleTool
37 from Configurables import Gaudi__Examples__OpaqueProducer as OpaqueProducer
38 from Configurables import Gaudi__Examples__OptFrExpTransformer as OptFrExpTransformer
39 from Configurables import Gaudi__Examples__OptLdExpTransformer as OptLdExpTransformer
40 from Configurables import Gaudi__Examples__SDataProducer as SDataProducer
41 from Configurables import Gaudi__Examples__ShrdPtrConsumer as ShrdPtrConsumer
42 from Configurables import Gaudi__Examples__ShrdPtrProducer as ShrdPtrProducer
43 from Configurables import Gaudi__Examples__SRangesToIntVector as SRangesToIntVector
44 from Configurables import Gaudi__Examples__ToolConsumer as ToolConsumer
45 from Configurables import Gaudi__Examples__TwoDMerger as TwoDMerger
46 from Configurables import Gaudi__Examples__VectorDataProducer as VectorDataProducer
47 from Configurables import Gaudi__Examples__VectorDoubleProducer as VectorDoubleProducer
48 from Configurables import Gaudi__Monitoring__MessageSvcSink as MessageSvcSink
49 from Gaudi.Configuration import *
50 from GaudiKernel.DataHandle import DataHandle
51 
52 # Application setup
54 app.ExtSvc = [EvtStoreSvc("EventDataSvc"), MessageSvcSink()]
55 
56 types = []
57 
58 # this printout is useful to check that the type information is passed to python correctly
59 print("---\n# List of input and output types by class")
60 for configurable in sorted(
61  [
62  ToolConsumer,
63  IntDataProducer,
64  VectorDataProducer,
65  FloatDataConsumer,
66  IntDataConsumer,
67  IntToFloatData,
68  IntIntToFloatFloatData,
69  IntVectorsToIntVector,
70  ContextConsumer,
71  ContextIntConsumer,
72  VectorDoubleProducer,
73  FrExpTransformer,
74  LdExpTransformer,
75  OptFrExpTransformer,
76  OptLdExpTransformer,
77  CountingConsumer,
78  ShrdPtrProducer,
79  ShrdPtrConsumer,
80  ],
81  key=lambda c: c.getType(),
82 ):
83  print('"{}":'.format(configurable.getType()))
84  props = configurable.getDefaultProperties()
85  for propname, prop in sorted(props.items()):
86  if isinstance(prop, DataHandle):
87  types.append(prop.type())
88  print(' {}: "{}"'.format(propname, prop.type()))
89 print("---")
90 
91 # - Algorithms
92 
93 OtherIntDataProducer = IntDataProducer("OtherIntDataProducer")
94 OtherIntDataProducer.OutputLocation = "/Event/MyOtherInt"
95 VectorDataProducer1 = VectorDataProducer(
96  "VectorDataProducer1", OutputLocation="/Event/IntVector1"
97 )
98 VectorDataProducer2 = VectorDataProducer(
99  "VectorDataProducer2", OutputLocation="/Event/IntVector2"
100 )
101 SDataProducer1 = SDataProducer("SDataProducer1", OutputLocation="/Event/S1", j=3)
102 SDataProducer2 = SDataProducer("SDataProducer2", OutputLocation="/Event/S2", j=10)
103 app.TopAlg = [
104  IntDataProducer("IntDataProducer"),
105  OtherIntDataProducer,
106  IntDataConsumer("IntDataConsumer"),
107  ToolConsumer("MyToolConsumer", MyTool=MyExampleTool(Message="Hello World!!!")),
108  ToolConsumer(
109  "MyBoundToolConsumer", MyTool=MyConsumerTool(MyInt="/Event/MyOtherInt")
110  ),
111  IntToFloatData("IntToFloatData"),
112  IntIntToFloatFloatData("IntIntToFloatFloatData"),
113  FloatDataConsumer("FloatDataConsumer"),
114  ContextConsumer("ContextConsumer"),
115  ContextIntConsumer("ContextIntConsumer"),
116  VectorDoubleProducer("VectorDoubleProducer"),
117  VectorDataProducer1,
118  VectorDataProducer2,
119  IntVectorsToIntVector(
120  "IntVectorsToIntVector",
121  InputLocations=[
122  str(VectorDataProducer1.OutputLocation),
123  str(VectorDataProducer2.OutputLocation),
124  ],
125  ),
126  FrExpTransformer("FrExpTransformer"),
127  LdExpTransformer("LdExpTransfomer"),
128  OptFrExpTransformer("OptFrExpTransformer"),
129  OptLdExpTransformer("OptLdExpTransformer"),
130  CountingConsumer("CountingConsumer"),
131  SDataProducer1,
132  SDataProducer2,
133  SRangesToIntVector(
134  "SRangesToIntVector",
135  InputRanges=[
136  str(SDataProducer1.OutputLocation),
137  str(SDataProducer2.OutputLocation),
138  ],
139  ),
140  IntVectorsMerger(
141  "IntVectorsMerger",
142  InputLocations=[
143  str(VectorDataProducer1.OutputLocation),
144  str(VectorDataProducer2.OutputLocation),
145  ],
146  ),
147  IntVectorsMergingConsumer(
148  "IntVectorsMergingConsumer",
149  InputLocations=[
150  str(VectorDataProducer1.OutputLocation),
151  str(VectorDataProducer2.OutputLocation),
152  ],
153  ),
154  TwoDMerger(
155  "TwoDMerger",
156  InputInts=[
157  str(VectorDataProducer1.OutputLocation),
158  str(VectorDataProducer2.OutputLocation),
159  ],
160  InputDoubles=[
161  str(OptLdExpTransformer("OptLdExpTransformer").OutputDoubles),
162  ],
163  OutputInts="/Event/SummedInts",
164  OutputDoubles="/Event/SummedDoubles",
165  ),
166  OpaqueProducer("OpaqueProducer"),
167  ShrdPtrProducer("SharedPtrProducer"),
168  ShrdPtrConsumer("SharedPtrConsumer"),
169  VectorDataProducer(
170  "IntProducer0", Data=[0, 2, 4], OutputLocation="/Event/EventInts"
171  ),
172  VectorDataProducer(
173  "IntProducer1", Data=[1, 3, 5, 7], OutputLocation="/Event/OddInt"
174  ),
175  VectorDataProducer(
176  "IntProducer2", Data=[1, 1, 2, 3, 5, 8, 13], OutputLocation="/Event/Fib7"
177  ),
178  IntVectorsToInts(
179  "IntVectorsToInts",
180  Mapping=[[0, 0], [0, 1], [0, 2], [1, 1], [1, 2]],
181  InputLocations=["/Event/EventInts", "/Event/OddInt", "/Event/Fib7"],
182  OutputLocations=["/Event/EvenOddFib", "/Event/OddFib"],
183  ),
184  ContextIntConsumer("EvenOddFibConsumer", InputLocation="/Event/EvenOddFib"),
185  ContextIntConsumer("OddFibConsumer", InputLocation="/Event/OddFib"),
186 ]
187 # - Events
188 app.EvtMax = 2
189 app.EvtSel = "NONE"
190 app.HistogramPersistency = "NONE"
GaudiKernel.DataHandle
Definition: DataHandle.py:1
Gaudi.Configuration
Definition: Configuration.py:1
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
ApplicationMgr
Definition: ApplicationMgr.h:57