21 trigNavThinningSvc = None ):
22 if trigNavThinningSvc is None:
23 trigNavThinningSvc = _trigNavThinningSvcs.get (streamName, None)
24
25
26
29 streamName,
30 WritingTool = writingTool,
31 ItemList = [ "EventInfo#*" ]
32 )
33 outputStream.ExtraOutputs.add(("DataHeader", "StoreGateSvc+" + streamName))
34
35 outputStream.MetadataStore = svcMgr.MetaDataStore
36 outputStream.MetadataItemList = [
37 "EventStreamInfo#" + streamName,
38 "IOVMetaDataContainer#*",
39 ]
40
41
42 from AthenaCommon.AlgSequence import AlgSequence
43 topSequence = AlgSequence()
44 from AthenaCommon.AlgSequence import AthSequencer
46
47 doTag = not noTag
48 if doTag:
49 key = "SimpleTag"
50
51 outputStream.WritingTool.AttributeListKey=key
52 if ('EventInfoTagBuilder/EventInfoTagBuilder' not in topSequence.getProperties()['Members']):
53
54 from .OutputStreamAthenaPoolConf import EventInfoAttListTool, EventInfoTagBuilder
55 EventInfoTagBuilder =
EventInfoTagBuilder(AttributeList=key, EventInfoKey=eventInfoKey, FilterString=decisionFilter,
57 from AthenaCommon.GlobalFlags import globalflags
58 if globalflags.InputFormat() == 'bytestream':
59
60 EventInfoTagBuilder.PropagateInput=False
61 topSequence += EventInfoTagBuilder
62
63
64 if asAlg:
65 outSequence += outputStream
66 else:
67 outSequence += outputStream
68
69 if fileName != "":
70 outputStream.OutputFile = fileName
71 from .OutputStreamAthenaPoolConf import MakeEventStreamInfo
73 streamInfoTool.Key = streamName
74 streamInfoTool.EventInfoKey = eventInfoKey
75
76
77 event_format_key = 'EventFormat{}'.format(streamName)
78 event_format_tool = CfgMgr.xAODMaker__EventFormatStreamHelperTool(
79 "{}_MakeEventFormat".format(streamName),
80 Key=event_format_key,
81 )
82 outputStream.MetadataItemList += ["xAOD::EventFormat#{}".format(event_format_key)]
83
84
85 file_metadata_key = "FileMetaData"
86 file_metadata_creator_tool = CfgMgr.xAODMaker__FileMetaDataCreatorTool(
87 "FileMetaDataCreatorTool",
88 OutputKey=file_metadata_key,
89 StreamName=streamName,
90 )
91 outputStream.MetadataItemList += [
92 "xAOD::FileMetaData#{}".format(file_metadata_key),
93 "xAOD::FileMetaDataAuxInfo#{}Aux.".format(file_metadata_key),
94 ]
95
96 outputStream.HelperTools = [
97 streamInfoTool,
98 event_format_tool,
99 file_metadata_creator_tool,
100 ]
101
102
103
104 from AthenaServices.AthenaServicesConf import Athena__ThinningCacheTool
105 tct = Athena__ThinningCacheTool ('ThinningCacheTool_' + streamName,
106 StreamName = streamName)
107 if trigNavThinningSvc is not None:
108 tct.TrigNavigationThinningSvc = trigNavThinningSvc
109 outputStream.HelperTools += [tct]
110
111
112
113
114
115
116
117
118
119
120
121 try:
122 tlist = []
123 from RecExConfig.ObjKeyStore import objKeyStore
124 for typ, klist in objKeyStore['transient'].getProperties().items():
125 for k in klist:
126 tlist.append (typ + '#' + k)
127 outputStream.TransientItems += tlist
128 except ImportError:
129 pass
130
131 return outputStream
132
algorithm that marks for write data objects in SG
This class provides an algorithm to make the EventStreamInfo object and update it.