MainParameterSet

ParameterSetConverter

TriggerPath

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
#ifndef FWCore_ParameterSet_ParameterSetConverter_h
#define FWCore_ParameterSet_ParameterSetConverter_h

#include <map>
#include <list>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include "DataFormats/Provenance/interface/ParameterSetID.h"
#include "DataFormats/Provenance/interface/ParameterSetBlob.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

namespace edm {

  typedef std::vector<std::string> StringVector;

  struct MainParameterSet {
    MainParameterSet(ParameterSetID const& oldID, std::string const& psetString);
    ~MainParameterSet();
    ParameterSetID oldID_;
    ParameterSet parameterSet_;
    StringVector paths_;
    StringVector endPaths_;
    std::set<std::string> triggerPaths_;
  };

  struct TriggerPath {
    TriggerPath(ParameterSet const& pset);
    ~TriggerPath();
    ParameterSet parameterSet_;
    StringVector tPaths_;
    std::set<std::string> triggerPaths_;
  };

  //------------------------------------------------------------
  // Class ParameterSetConverter

  typedef std::map<ParameterSetID, ParameterSetBlob> ParameterSetMap;
  class ParameterSetConverter {
  public:
    typedef std::list<std::string> StringList;
    typedef std::map<std::string, std::string> StringMap;
    typedef std::list<std::pair<std::string, ParameterSetID> > StringWithIDList;
    typedef std::map<ParameterSetID, ParameterSetID> ParameterSetIdConverter;
    ParameterSetConverter(ParameterSetMap const& psetMap,
                          ParameterSetIdConverter& idConverter,
                          bool alreadyByReference);
    ~ParameterSetConverter();
    ParameterSetConverter(const ParameterSetConverter&) = delete;
    ParameterSetConverter& operator=(const ParameterSetConverter&) = delete;

    ParameterSetIdConverter const& parameterSetIdConverter() const { return parameterSetIdConverter_; }

  private:
    void convertParameterSets();
    void noConvertParameterSets();
    StringWithIDList parameterSets_;
    std::vector<MainParameterSet> mainParameterSets_;
    std::vector<TriggerPath> triggerPaths_;
    StringMap replace_;
    ParameterSetIdConverter& parameterSetIdConverter_;
  };
}  // namespace edm
#endif