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
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 thexAOD::EventFormat
object now is a function of the stream name. Trying to adopt theEventStreamInfo
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?
Edited by Frank Berghaus