Skip to content

First attempt to store IOVMetaDataContainer objects into MetaCont

Vakhtang Tsulaia requested to merge tsulaia/athena:master-iovdbmetacont into master

In order to support multiple copies of metadata objects in flight in AthenaMT (required for running over more than one input file), such metadata objects need to be stored into MetaCont - a container for objects of the same time indexed by SID (file name).

This commit introduces a mechanism inside IOVDbMetaDataTool, which gets triggered at BeginInputFile incident, and which stores IOVMetaDataContainer objects read from each input file into MetaCont<IOVMetaDataContainer>, which is accessible to clients in the MetaDataStore via ReadMetaHandle-s.

The changes affect several files:

  • CondAttrListCollection.h

Introduced new overloaded version of the dump() which allows printing the contents of CondAttrListCollection to MsgStream. This is mostly for debugging purpose.

  • MetaCont.h

The interface was simplified by dropping several methods, that have no clients. These mathods can be reintroduced later, if necessary.

  • MetaHandleKey(.h,.icc)

The code was updated by analogy with the current implementation of CondHandleKey

  • ReadMetaHandle.h

Dropped the inheritance from VarHandleBase, and fixed the implementation of the constructor.

  • ReadMetaHandleKey.h

Introduced new constructor.

  • IOVMetaDataContainer(.h,.cxx)

Simplified the merge() method and introduced new dump() method

  • IOVPayloadContainer(.h,.cxx)

Introduced copy constructor and assignment operator

  • IOVDbMetaDataTool(.h,.cxx)

Introduced two new methods fillMetaCont(), which adds IOVMetaDataContainer to MetaCont-s, and dumpMetaConts()

Merge request reports