The Gaudi Framework  v36r1 (3e2fb5a8)
ProduceConsume.py
Go to the documentation of this file.
1 
14 from GaudiKernel.DataHandle import DataHandle
15 from Gaudi.Configuration import *
16 from Configurables import Gaudi__Examples__IntDataProducer as IntDataProducer
17 from Configurables import Gaudi__Examples__VectorDataProducer as VectorDataProducer
18 from Configurables import Gaudi__Examples__FloatDataConsumer as FloatDataConsumer
19 from Configurables import Gaudi__Examples__IntDataConsumer as IntDataConsumer
20 from Configurables import Gaudi__Examples__IntToFloatData as IntToFloatData
21 from Configurables import Gaudi__Examples__IntIntToFloatFloatData as IntIntToFloatFloatData
22 from Configurables import Gaudi__Examples__IntVectorsToIntVector as IntVectorsToIntVector
23 from Configurables import Gaudi__Examples__SRangesToIntVector as SRangesToIntVector
24 from Configurables import Gaudi__Examples__IntVectorsMerger as IntVectorsMerger
25 from Configurables import Gaudi__Examples__IntVectorsMergingConsumer as IntVectorsMergingConsumer
26 from Configurables import Gaudi__Examples__ContextConsumer as ContextConsumer
27 from Configurables import Gaudi__Examples__ContextIntConsumer as ContextIntConsumer
28 from Configurables import Gaudi__Examples__VectorDoubleProducer as VectorDoubleProducer
29 from Configurables import Gaudi__Examples__FrExpTransformer as FrExpTransformer
30 from Configurables import Gaudi__Examples__LdExpTransformer as LdExpTransformer
31 from Configurables import Gaudi__Examples__OptFrExpTransformer as OptFrExpTransformer
32 from Configurables import Gaudi__Examples__OptLdExpTransformer as OptLdExpTransformer
33 from Configurables import Gaudi__Examples__CountingConsumer as CountingConsumer
34 from Configurables import Gaudi__Examples__SDataProducer as SDataProducer
35 from Configurables import Gaudi__Monitoring__MessageSvcSink as MessageSvcSink
36 from Configurables import EvtStoreSvc
37 # Application setup
39 app.ExtSvc = [EvtStoreSvc("EventDataSvc"), MessageSvcSink()]
40 
41 types = []
42 
43 # this printout is useful to check that the type information is passed to python correctly
44 print("---\n# List of input and output types by class")
45 for configurable in sorted([
46  IntDataProducer, VectorDataProducer, FloatDataConsumer,
47  IntDataConsumer, IntToFloatData, IntIntToFloatFloatData,
48  IntVectorsToIntVector, ContextConsumer, ContextIntConsumer,
49  VectorDoubleProducer, FrExpTransformer, LdExpTransformer,
50  OptFrExpTransformer, OptLdExpTransformer, CountingConsumer
51 ],
52  key=lambda c: c.getType()):
53  print("\"{}\":".format(configurable.getType()))
54  props = configurable.getDefaultProperties()
55  for propname, prop in sorted(props.items()):
56  if isinstance(prop, DataHandle):
57  types.append(prop.type())
58  print(" {}: \"{}\"".format(propname, prop.type()))
59 print("---")
60 
61 # - Algorithms
62 OtherIntDataProducer = IntDataProducer('OtherIntDataProducer')
63 OtherIntDataProducer.OutputLocation = "/Event/MyOtherInt"
64 VectorDataProducer1 = VectorDataProducer(
65  "VectorDataProducer1", OutputLocation="/Event/IntVector1")
66 VectorDataProducer2 = VectorDataProducer(
67  "VectorDataProducer2", OutputLocation="/Event/IntVector2")
68 SDataProducer1 = SDataProducer(
69  "SDataProducer1", OutputLocation="/Event/S1", j=3)
70 SDataProducer2 = SDataProducer(
71  "SDataProducer2", OutputLocation="/Event/S2", j=10)
72 app.TopAlg = [
73  IntDataProducer("IntDataProducer"),
74  OtherIntDataProducer,
75  IntDataConsumer("IntDataConsumer"),
76  IntToFloatData("IntToFloatData"),
77  IntIntToFloatFloatData("IntIntToFloatFloatData"),
78  FloatDataConsumer("FloatDataConsumer"),
79  ContextConsumer("ContextConsumer"),
80  ContextIntConsumer("ContextIntConsumer"),
81  VectorDoubleProducer("VectorDoubleProducer"),
82  VectorDataProducer1,
83  VectorDataProducer2,
84  IntVectorsToIntVector(
85  "IntVectorsToIntVector",
86  InputLocations=[
87  str(VectorDataProducer1.OutputLocation),
88  str(VectorDataProducer2.OutputLocation)
89  ]),
90  FrExpTransformer("FrExpTransformer"),
91  LdExpTransformer("LdExpTransfomer"),
92  OptFrExpTransformer("OptFrExpTransformer"),
93  OptLdExpTransformer("OptLdExpTransformer"),
94  CountingConsumer("CountingConsumer"),
95  SDataProducer1,
96  SDataProducer2,
97  SRangesToIntVector(
98  "SRangesToIntVector",
99  InputRanges=[
100  str(SDataProducer1.OutputLocation),
101  str(SDataProducer2.OutputLocation)
102  ]),
103  IntVectorsMerger(
104  "IntVectorsMerger",
105  InputLocations=[
106  str(VectorDataProducer1.OutputLocation),
107  str(VectorDataProducer2.OutputLocation)
108  ]),
109  IntVectorsMergingConsumer(
110  "IntVectorsMergingConsumer",
111  InputLocations=[
112  str(VectorDataProducer1.OutputLocation),
113  str(VectorDataProducer2.OutputLocation)
114  ]),
115 ]
116 # - Events
117 app.EvtMax = 2
118 app.EvtSel = "NONE"
119 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