12 m_object = std::make_shared<JetResolutionObject>(filename);
16 m_object = std::make_shared<JetResolutionObject>(object);
24 return m_object->evaluateFormula(*record, parameters);
28 m_object = std::make_shared<JetResolutionObject>(filename);
32 m_object = std::make_shared<JetResolutionObject>(object);
37 std::string uncertaintySource )
const {
43 const std::vector<std::string>& parameter_names =
m_object->getDefinition().getParametersName();
44 size_t parameter =
static_cast<size_t>(variation);
45 if (!uncertaintySource.empty()) {
47 parameter = std::distance(parameter_names.begin(),
48 std::find(parameter_names.begin(), parameter_names.end(), uncertaintySource +
"Down"));
50 parameter = std::distance(parameter_names.begin(),
51 std::find(parameter_names.begin(), parameter_names.end(), uncertaintySource +
"Up"));
52 if (parameter >= parameter_names.size()) {
54 for (
const auto& piece : parameter_names)
57 std::cerr <<
"ERROR in JetResolution: " 58 <<
"Invalid value for 'uncertaintySource' parameter. Only " + s +
" are supported.\n" ;
59 throw std::exception();
63 return parameters_values[parameter];
JetResolutionScaleFactor()
std::shared_ptr< JetResolutionObject > m_object
float getResolution(const JetParameters ¶meters) const
float getScaleFactor(const JetParameters ¶meters, Variation variation=Variation::NOMINAL, std::string uncertaintySource="") const
const std::vector< float > & getParametersValues() const