CMS 3D CMS Logo

CepGenParametersConverter.h
Go to the documentation of this file.
1 // CepGen-CMSSW interfacing module
2 // 2022-2024, Laurent Forthomme
3 
4 #ifndef GeneratorInterface_CepGenInterface_CepGenParametersConverter_h
5 #define GeneratorInterface_CepGenInterface_CepGenParametersConverter_h
6 
8 
9 #include <CepGen/Core/ParametersList.h>
10 
11 namespace cepgen {
12  ParametersList fromParameterSet(const edm::ParameterSet& iConfig) {
13  ParametersList params;
14  for (const auto& param : iConfig.getParameterNames()) {
15  const auto cepgen_param = param == "name" ? MODULE_NAME : param;
16  if (iConfig.existsAs<bool>(param))
17  params.set(cepgen_param, iConfig.getParameter<bool>(param));
18  if (iConfig.existsAs<int>(param))
19  params.set(cepgen_param, iConfig.getParameter<int>(param));
20  if (iConfig.existsAs<unsigned>(param))
21  params.set<unsigned long long>(cepgen_param, iConfig.getParameter<unsigned>(param));
22  if (iConfig.existsAs<double>(param))
23  params.set(cepgen_param, iConfig.getParameter<double>(param));
24  if (iConfig.existsAs<std::string>(param))
25  params.set(cepgen_param, iConfig.getParameter<std::string>(param));
26  if (iConfig.existsAs<std::vector<double> >(param)) {
27  const auto& vec = iConfig.getParameter<std::vector<double> >(param);
28  if (vec.size() == 2)
29  params.set<Limits>(cepgen_param, Limits{vec.at(0), vec.at(1)});
30  params.set(cepgen_param, iConfig.getParameter<std::vector<double> >(param));
31  }
32  if (iConfig.existsAs<std::vector<std::string> >(param))
33  params.set(cepgen_param, iConfig.getParameter<std::vector<std::string> >(param));
34  if (iConfig.existsAs<edm::ParameterSet>(param))
35  params.set(cepgen_param, fromParameterSet(iConfig.getParameter<edm::ParameterSet>(param)));
36  }
37  return params;
38  }
39 } // namespace cepgen
40 
41 #endif
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:172
ParametersList fromParameterSet(const edm::ParameterSet &iConfig)
std::vector< std::string > getParameterNames() const