The Gaudi Framework  v36r4 (0a924e98)
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 (
31  Gaudi__Examples__IntVectorsToIntVector as IntVectorsToIntVector,
32 )
33 from Configurables import Gaudi__Examples__LdExpTransformer as LdExpTransformer
34 from Configurables import Gaudi__Examples__MyConsumerTool as MyConsumerTool
35 from Configurables import Gaudi__Examples__MyExampleTool as MyExampleTool
36 from Configurables import Gaudi__Examples__OptFrExpTransformer as OptFrExpTransformer
37 from Configurables import Gaudi__Examples__OptLdExpTransformer as OptLdExpTransformer
38 from Configurables import Gaudi__Examples__SDataProducer as SDataProducer
39 from Configurables import Gaudi__Examples__ShrdPtrConsumer as ShrdPtrConsumer
40 from Configurables import Gaudi__Examples__ShrdPtrProducer as ShrdPtrProducer
41 from Configurables import Gaudi__Examples__SRangesToIntVector as SRangesToIntVector
42 from Configurables import Gaudi__Examples__ToolConsumer as ToolConsumer
43 from Configurables import Gaudi__Examples__TwoDMerger as TwoDMerger
44 from Configurables import Gaudi__Examples__VectorDataProducer as VectorDataProducer
45 from Configurables import Gaudi__Examples__VectorDoubleProducer as VectorDoubleProducer
46 from Configurables import Gaudi__Monitoring__MessageSvcSink as MessageSvcSink
47 from Gaudi.Configuration import *
48 from GaudiKernel.DataHandle import DataHandle
49 
50 # Application setup
52 app.ExtSvc = [EvtStoreSvc("EventDataSvc"), MessageSvcSink()]
53 
54 types = []
55 
56 # this printout is useful to check that the type information is passed to python correctly
57 print("---\n# List of input and output types by class")
58 for configurable in sorted(
59  [
60  ToolConsumer,
61  IntDataProducer,
62  VectorDataProducer,
63  FloatDataConsumer,
64  IntDataConsumer,
65  IntToFloatData,
66  IntIntToFloatFloatData,
67  IntVectorsToIntVector,
68  ContextConsumer,
69  ContextIntConsumer,
70  VectorDoubleProducer,
71  FrExpTransformer,
72  LdExpTransformer,
73  OptFrExpTransformer,
74  OptLdExpTransformer,
75  CountingConsumer,
76  ShrdPtrProducer,
77  ShrdPtrConsumer,
78  ],
79  key=lambda c: c.getType(),
80 ):
81  print('"{}":'.format(configurable.getType()))
82  props = configurable.getDefaultProperties()
83  for propname, prop in sorted(props.items()):
84  if isinstance(prop, DataHandle):
85  types.append(prop.type())
86  print(' {}: "{}"'.format(propname, prop.type()))
87 print("---")
88 
89 # - Algorithms
90 
91 OtherIntDataProducer = IntDataProducer("OtherIntDataProducer")
92 OtherIntDataProducer.OutputLocation = "/Event/MyOtherInt"
93 VectorDataProducer1 = VectorDataProducer(
94  "VectorDataProducer1", OutputLocation="/Event/IntVector1"
95 )
96 VectorDataProducer2 = VectorDataProducer(
97  "VectorDataProducer2", OutputLocation="/Event/IntVector2"
98 )
99 SDataProducer1 = SDataProducer("SDataProducer1", OutputLocation="/Event/S1", j=3)
100 SDataProducer2 = SDataProducer("SDataProducer2", OutputLocation="/Event/S2", j=10)
101 app.TopAlg = [
102  IntDataProducer("IntDataProducer"),
103  OtherIntDataProducer,
104  IntDataConsumer("IntDataConsumer"),
105  ToolConsumer("MyToolConsumer", MyTool=MyExampleTool(Message="Hello World!!!")),
106  ToolConsumer(
107  "MyBoundToolConsumer", MyTool=MyConsumerTool(MyInt="/Event/MyOtherInt")
108  ),
109  IntToFloatData("IntToFloatData"),
110  IntIntToFloatFloatData("IntIntToFloatFloatData"),
111  FloatDataConsumer("FloatDataConsumer"),
112  ContextConsumer("ContextConsumer"),
113  ContextIntConsumer("ContextIntConsumer"),
114  VectorDoubleProducer("VectorDoubleProducer"),
115  VectorDataProducer1,
116  VectorDataProducer2,
117  IntVectorsToIntVector(
118  "IntVectorsToIntVector",
119  InputLocations=[
120  str(VectorDataProducer1.OutputLocation),
121  str(VectorDataProducer2.OutputLocation),
122  ],
123  ),
124  FrExpTransformer("FrExpTransformer"),
125  LdExpTransformer("LdExpTransfomer"),
126  OptFrExpTransformer("OptFrExpTransformer"),
127  OptLdExpTransformer("OptLdExpTransformer"),
128  CountingConsumer("CountingConsumer"),
129  SDataProducer1,
130  SDataProducer2,
131  SRangesToIntVector(
132  "SRangesToIntVector",
133  InputRanges=[
134  str(SDataProducer1.OutputLocation),
135  str(SDataProducer2.OutputLocation),
136  ],
137  ),
138  IntVectorsMerger(
139  "IntVectorsMerger",
140  InputLocations=[
141  str(VectorDataProducer1.OutputLocation),
142  str(VectorDataProducer2.OutputLocation),
143  ],
144  ),
145  IntVectorsMergingConsumer(
146  "IntVectorsMergingConsumer",
147  InputLocations=[
148  str(VectorDataProducer1.OutputLocation),
149  str(VectorDataProducer2.OutputLocation),
150  ],
151  ),
152  TwoDMerger(
153  "TwoDMerger",
154  InputInts=[
155  str(VectorDataProducer1.OutputLocation),
156  str(VectorDataProducer2.OutputLocation),
157  ],
158  InputDoubles=[
159  str(OptLdExpTransformer("OptLdExpTransformer").OutputDoubles),
160  ],
161  OutputInts="/Event/SummedInts",
162  OutputDoubles="/Event/SummedDoubles",
163  ),
164  ShrdPtrProducer("SharedPtrProducer"),
165  ShrdPtrConsumer("SharedPtrConsumer"),
166 ]
167 # - Events
168 app.EvtMax = 2
169 app.EvtSel = "NONE"
170 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