CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/IOPool/Input/src/ProvenanceAdaptor.h

Go to the documentation of this file.
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