Skip to content

Event format meta data

Frank Berghaus requested to merge berghaus/athena:EventFormatMetaData into master

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 EventStreamInfo object in a thread-safe manner.
  • Maintain a xAOD::EventFormat object for each output stream.
  • Something we have not yet thought of Here we choose the second, i.e. maintain a xAOD::EventFormat object for each output stream. That means the key of the xAOD::EventFormat object now is a function of the stream name. Trying to adopt the EventStreamInfo style 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?

@tsulaia

Edited by Frank Berghaus

Merge request reports