File indexing completed on 2024-04-06 12:13:24
0001
0002
0003
0004 #ifndef GeneratorInterface_CepGenInterface_CepGenParametersConverter_h
0005 #define GeneratorInterface_CepGenInterface_CepGenParametersConverter_h
0006
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008
0009 #include <CepGen/Core/ParametersList.h>
0010
0011 namespace cepgen {
0012 ParametersList fromParameterSet(const edm::ParameterSet& iConfig) {
0013 ParametersList params;
0014 for (const auto& param : iConfig.getParameterNames()) {
0015 const auto cepgen_param = param == "name" ? MODULE_NAME : param;
0016 if (iConfig.existsAs<bool>(param))
0017 params.set(cepgen_param, iConfig.getParameter<bool>(param));
0018 if (iConfig.existsAs<int>(param))
0019 params.set(cepgen_param, iConfig.getParameter<int>(param));
0020 if (iConfig.existsAs<unsigned>(param))
0021 params.set<unsigned long long>(cepgen_param, iConfig.getParameter<unsigned>(param));
0022 if (iConfig.existsAs<double>(param))
0023 params.set(cepgen_param, iConfig.getParameter<double>(param));
0024 if (iConfig.existsAs<std::string>(param))
0025 params.set(cepgen_param, iConfig.getParameter<std::string>(param));
0026 if (iConfig.existsAs<std::vector<double> >(param)) {
0027 const auto& vec = iConfig.getParameter<std::vector<double> >(param);
0028 if (vec.size() == 2)
0029 params.set<Limits>(cepgen_param, Limits{vec.at(0), vec.at(1)});
0030 params.set(cepgen_param, iConfig.getParameter<std::vector<double> >(param));
0031 }
0032 if (iConfig.existsAs<std::vector<std::string> >(param))
0033 params.set(cepgen_param, iConfig.getParameter<std::vector<std::string> >(param));
0034 if (iConfig.existsAs<edm::ParameterSet>(param))
0035 params.set(cepgen_param, fromParameterSet(iConfig.getParameter<edm::ParameterSet>(param)));
0036 }
0037 return params;
0038 }
0039 }
0040
0041 #endif