8#include <framework/core/ModuleParamList.templateDetails.h>
10#include <framework/core/ModuleParamInfoPython.h>
11#include <framework/core/FrameworkExceptions.h>
13#include <boost/python/object.hpp>
14#include <boost/python/list.hpp>
23 "Could not find the parameter with the "
24 "name '%1%'! The value of the parameter "
29 "The type of the module parameter '%1%' "
30 "(%2%) is different from the type of the "
31 "value it should be set to (%3%)!");
35 throw (ModuleParameterNotFoundError() << name);
39 const std::string& expectedTypeInfo,
40 const std::string& typeInfo)
42 throw (ModuleParameterTypeError() << name << expectedTypeInfo << typeInfo);
56 std::vector<std::string> missingParam;
58 if (mapEntry.second->isForcedInSteering() && !mapEntry.second->isSetInSteering())
59 missingParam.push_back(mapEntry.first);
66 std::shared_ptr<boost::python::list> returnList(
new boost::python::list);
67 std::map<std::string, ModuleParamPtr>::const_iterator mapIter;
73 newParamInfo.
m_name = mapIter->first;
81 returnList->append(boost::python::object(newParamInfo));
88 for (
const auto& param : params.m_paramMap) {
90 myParam->setValueFromParam(*param.second.get());
97 std::vector<std::string> names;
100 names.push_back(nameAndParam.first);
127 std::map<std::string, ModuleParamPtr>::const_iterator mapIter;
131 return mapIter->second;
132 }
else throw (ModuleParameterNotFoundError() << name);
const std::string & getDescription() const
Returns the description of the parameter.
const std::string & getTypeInfo() const
Returns the type identifier of the parameter as string.
bool isForcedInSteering() const
Returns true if the parameter has to be set by the user in the steering file.
bool isSetInSteering() const
Returns true if the parameter was set in the steering file.
Class to store basic information about a parameter.
bool m_forceInSteering
If true the parameter has to be set by the user in the steering file.
bool m_setInSteering
True if the parameter was set in the steering file.
std::string m_description
The description of the parameter.
boost::python::list m_defaultValues
The default values of the parameter as a python list.
std::string m_name
The name of the parameter.
boost::python::list m_values
The values of the parameter as a python list.
std::string m_typeName
The name of the type of the parameter.
std::shared_ptr< boost::python::list > getParamInfoListPython() const
Returns a python list of all parameters.
std::map< std::string, ModuleParamPtr > m_paramMap
Stores the module parameters together with a string name as key.
ModuleParamList()
Constructor.
std::string getParameterDescription(const std::string &name) const
Returns the description of a parameter given by its name.
std::vector< std::string > getUnsetForcedParams() const
Returns list of unset parameters (if they are required to have a value.
std::string getParameterTypeInfo(const std::string &name) const
Returns the type info of a parameter given by its name.
void setParameters(const ModuleParamList ¶ms)
Set values for parameters from other parameter list.
std::vector< std::string > getParameterNames() const
Returns the names of all parameters in this parameter list.
static void throwTypeError(const std::string &name, const std::string &expectedTypeInfo, const std::string &typeInfo)
Throws an error for a requested parameter that exists but was request with the wrong type.
ModuleParamPtr getParameterPtr(const std::string &name) const
Returns a ModuleParamPtr to a parameter.
~ModuleParamList()
Destructor.
static void throwNotFoundError(const std::string &name)
Throws an error for a requested parameter that does not exist.
std::shared_ptr< ModuleParamBase > ModuleParamPtr
Defines a pointer to a module parameter as a boost shared pointer. */.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
#define BELLE2_DEFINE_EXCEPTION(ClassName, Message)
Macro that defines an exception with the given message template.
void getParamValuesPython(const std::string &name, PythonObject &pyOutput, bool defaultValues) const
Returns a python object containing the value or default value of the given parameter.
Abstract base class for different kinds of events.