xAODMetaDataCnv: FileMetaDataTool copies all xAOD::FileMetaData objects
In the core software meeting of July 1 (indico) we discussed the evolution of the (in-file) metadata ecosystem. Slide 14 was welcomed as a good simplification plan. As a first step to this goal, we ensure that the FileMetaDataTool will copy all xAOD::FileMetaData objects from the input to the output --- not just the one specified.
To achieve this, the FileMetaDataTool gets the keys of all objects of class xAOD::FileMetaData class and copies them (and their auxiliary stores) from the InputMetaDataStore to the MetaDataStore. This is done on the BeginInputFile incident handled by the MetaDataSvc. If an object with the same key already exists in the MetaDataStore the tool checks for consistency. At the moment, to tool emits a warning if the objects are inconsistent --- we may want to take a stronger action as output here will likely end up having issues.
To facilitate the first step in a dual-use tool, functionality was implemented in TEvent and TStore. The interface was propagated to the SgTEvent(Meta) classes to look up all keys matching a class. Care was taken to make this interface the same as the one already provided in the StoreGateSvc.