00001
00002
00003 #ifndef XAODMETADATACNV_FILEMETADATATOOL_H
00004 #define XAODMETADATACNV_FILEMETADATATOOL_H
00005
00006
00007 #include <string>
00008 #include <memory>
00009
00010
00011 #include "AsgTools/AsgMetadataTool.h"
00012 #ifdef ASGTOOL_ATHENA
00013 # include "AthenaPoolKernel/IMetaDataTool.h"
00014 #endif // ASGTOOL_ATHENA
00015
00016
00017 #include "xAODMetaData/FileMetaData.h"
00018 #include "xAODMetaData/FileMetaDataAuxInfo.h"
00019
00020 namespace xAODMaker {
00021
00036 class FileMetaDataTool : public asg::AsgMetadataTool
00037 #ifdef ASGTOOL_ATHENA
00038 , public virtual ::IMetaDataTool
00039 #endif // ASGTOOL_ATHENA
00040 {
00041
00043 ASG_TOOL_CLASS0( FileMetaDataTool )
00044
00045 public:
00047 FileMetaDataTool( const std::string& name = "FileMetaDataTool" );
00048
00050 virtual StatusCode initialize();
00051
00052 protected:
00055
00057 virtual StatusCode beginInputFile();
00058
00060 virtual StatusCode beginEvent();
00061
00063 virtual StatusCode metaDataStop();
00064
00066
00067 private:
00069 std::string m_inputKey;
00071 std::string m_outputKey;
00072
00074 std::unique_ptr< xAOD::FileMetaData > m_md;
00076 std::unique_ptr< xAOD::FileMetaDataAuxInfo > m_mdAux;
00077
00080 bool m_beginFileIncidentSeen;
00081
00082 };
00083
00084 }
00085
00086 #endif // XAODMETADATACNV_FILEMETADATATOOL_H