![]() |
![]() |
00001 #ifndef IOPool_Input_ProvenanceAdaptor_h 00002 #define IOPool_Input_ProvenanceAdaptor_h 00003 00004 /*---------------------------------------------------------------------- 00005 00006 ProvenanceAdaptor.h 00007 00008 ----------------------------------------------------------------------*/ 00009 #include <map> 00010 #include <memory> 00011 #include <vector> 00012 #include "DataFormats/Provenance/interface/BranchIDList.h" 00013 #include "DataFormats/Provenance/interface/BranchListIndex.h" 00014 #include "DataFormats/Provenance/interface/ParameterSetID.h" 00015 #include "DataFormats/Provenance/interface/ProcessConfigurationRegistry.h" 00016 #include "DataFormats/Provenance/interface/ProcessHistoryID.h" 00017 #include "DataFormats/Provenance/interface/ProcessHistoryRegistry.h" 00018 #include "DataFormats/Provenance/interface/ProvenanceFwd.h" 00019 #include "FWCore/ParameterSet/interface/ParameterSetConverter.h" 00020 00021 namespace edm { 00022 00023 //------------------------------------------------------------ 00024 // Class ProvenanceAdaptor: 00025 00026 class ProvenanceAdaptor { 00027 public: 00028 typedef ParameterSetConverter::ParameterSetIdConverter ParameterSetIdConverter; 00029 typedef std::map<ProcessHistoryID, ProcessHistoryID> ProcessHistoryIdConverter; 00030 ProvenanceAdaptor( 00031 ProductRegistry& productRegistry, 00032 ProcessHistoryMap& pHistMap, 00033 ProcessHistoryVector& pHistVector, 00034 ProcessConfigurationVector& procConfigVector, 00035 ParameterSetIdConverter const& parameterSetIdConverter, 00036 bool fullConversion); 00037 ~ProvenanceAdaptor(); 00038 00039 ProvenanceAdaptor(ProvenanceAdaptor const&) = delete; // Disallow copying and moving 00040 ProvenanceAdaptor& operator=(ProvenanceAdaptor const&) = delete; // Disallow copying and moving 00041 00042 boost::shared_ptr<BranchIDLists const> branchIDLists() const; 00043 00044 void branchListIndexes(BranchListIndexes & indexes) const; 00045 00046 ParameterSetID const& 00047 convertID(ParameterSetID const& oldID) const; 00048 00049 ProcessHistoryID const& 00050 convertID(ProcessHistoryID const& oldID) const; 00051 00052 private: 00053 void fixProcessHistory(ProcessHistoryMap& pHistMap, 00054 ProcessHistoryVector& pHistVector); 00055 00056 ParameterSetIdConverter parameterSetIdConverter_; 00057 ProcessHistoryIdConverter processHistoryIdConverter_; 00058 boost::shared_ptr<BranchIDLists const> branchIDLists_; 00059 std::vector<BranchListIndex> branchListIndexes_; 00060 }; // class ProvenanceAdaptor 00061 } 00062 #endif