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