Event format meta data
Picking up from the discussion at !33803 (closed)
@akraszna implemented a very nice start to handling xAOD::EventFormat metadata in athenaMT. @gemmeren Pointed out that we should adopt a uniform approach to handling EventStreamInfo and xAOD::EventFormat. This leaves some approaches:
- Write multithreaded service maintaining one shared
EventStreamInfoobject in a thread-safe manner. - Maintain a
xAOD::EventFormatobject for each output stream. - Something we have not yet thought of
Here we choose the second, i.e. maintain a
xAOD::EventFormatobject for each output stream. That means the key of thexAOD::EventFormatobject now is a function of the stream name. Trying to adopt theEventStreamInfostyle I went for something like:
AthenaOutputStream(
name=name,
HelperTools=[
CfgMgr.xAODMaker__EventFormatStreamHelperTool(
name="EventFormatStreamHelper"
Key='Format{}'.format(name),
),
],
)
Of course any client looking up xAOD::EventFormat by key will have to adjust for that, as you can see in the read test. How much of a nightmare will this be?
I have not yet included recording and retrieving xAOD::EventFormat though the MetaDataSvc as implemented for EventStreamInfo. Is that desirable @mnowak
As you can see by the hacky approach and the title this is still a construction site and needs cleaning up.
Thoughts?
Edited by Frank Berghaus