CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/IOPool/Input/src/BranchMapperWithReader.h

Go to the documentation of this file.
00001 #ifndef IOPool_Input_BranchMapperWithReader
00002 #define IOPool_Input_BranchMapperWithReader
00003 
00004 /*----------------------------------------------------------------------
00005 
00006 BranchMapperWithReader:
00007 
00008 ----------------------------------------------------------------------*/
00009 #include "DataFormats/Provenance/interface/BranchMapper.h"
00010 
00011 #include <vector>
00012 
00013 namespace edm {
00014   class RootTree;
00015   class BranchMapperWithReader : public BranchMapper {
00016   public:
00017     BranchMapperWithReader();
00018     explicit BranchMapperWithReader(RootTree* rootTree);
00019 
00020     virtual ~BranchMapperWithReader() {}
00021     void insertIntoMap(ProductID const& oldProductID, BranchID const& branchID);
00022 
00023   private:
00024     virtual void readProvenance_() const;
00025     virtual BranchID oldProductIDToBranchID_(ProductID const& oldProductID) const;
00026     virtual void reset_();
00027 
00028     RootTree* rootTree_;
00029     ProductProvenanceVector infoVector_;
00030     mutable ProductProvenanceVector* pInfoVector_;
00031     std::map<unsigned int, BranchID> oldProductIDToBranchIDMap_;
00032   };
00033 }
00034 #endif