CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
reco::FormulaEvaluator Class Reference

#include <FormulaEvaluator.h>

Public Member Functions

template<typename V , typename P >
double evaluate (V const &iVariables, P const &iParameters) const
 
 FormulaEvaluator (std::string const &iFormula)
 
unsigned int numberOfParameters () const
 
unsigned int numberOfVariables () const
 

Private Member Functions

double evaluate (double const *iVariables, double const *iParameters) const
 
void throwWrongNumberOfParameters (size_t) const
 
void throwWrongNumberOfVariables (size_t) const
 

Private Attributes

std::shared_ptr
< formula::EvaluatorBase const > 
m_evaluator
 
unsigned int m_nParameters = 0
 
unsigned int m_nVariables = 0
 

Detailed Description

Definition at line 66 of file FormulaEvaluator.h.

Constructor & Destructor Documentation

FormulaEvaluator::FormulaEvaluator ( std::string const &  iFormula)
explicit

Definition at line 675 of file FormulaEvaluator.cc.

Member Function Documentation

template<typename V , typename P >
double reco::FormulaEvaluator::evaluate ( V const &  iVariables,
P const &  iParameters 
) const
inline

Definition at line 74 of file FormulaEvaluator.h.

References m_nParameters, m_nVariables, reco::formula::startingAddress(), throwWrongNumberOfParameters(), and throwWrongNumberOfVariables().

Referenced by SimpleJetCorrector::correctionBin(), and SimpleJetCorrector::invert().

74  {
75  if (m_nVariables > iVariables.size()) {
76  throwWrongNumberOfVariables(iVariables.size());
77  }
78  if (m_nParameters > iParameters.size()) {
79  throwWrongNumberOfParameters(iParameters.size());
80  }
81  return evaluate( formula::startingAddress(iVariables),
82  formula::startingAddress(iParameters));
83  }
double evaluate(V const &iVariables, P const &iParameters) const
void throwWrongNumberOfParameters(size_t) const
double const * startingAddress(ArrayAdaptor const &iV)
void throwWrongNumberOfVariables(size_t) const
double FormulaEvaluator::evaluate ( double const *  iVariables,
double const *  iParameters 
) const
private

Definition at line 691 of file FormulaEvaluator.cc.

unsigned int reco::FormulaEvaluator::numberOfParameters ( ) const
inline

Definition at line 85 of file FormulaEvaluator.h.

References m_nParameters.

Referenced by SimpleJetCorrector::invert().

85 { return m_nParameters; }
unsigned int reco::FormulaEvaluator::numberOfVariables ( ) const
inline

Definition at line 86 of file FormulaEvaluator.h.

References m_nVariables.

86 { return m_nVariables; }
void FormulaEvaluator::throwWrongNumberOfParameters ( size_t  iSize) const
private

Definition at line 701 of file FormulaEvaluator.cc.

Referenced by evaluate().

void FormulaEvaluator::throwWrongNumberOfVariables ( size_t  iSize) const
private

Definition at line 697 of file FormulaEvaluator.cc.

Referenced by evaluate().

Member Data Documentation

std::shared_ptr<formula::EvaluatorBase const> reco::FormulaEvaluator::m_evaluator
private

Definition at line 94 of file FormulaEvaluator.h.

unsigned int reco::FormulaEvaluator::m_nParameters = 0
private

Definition at line 96 of file FormulaEvaluator.h.

Referenced by evaluate(), and numberOfParameters().

unsigned int reco::FormulaEvaluator::m_nVariables = 0
private

Definition at line 95 of file FormulaEvaluator.h.

Referenced by evaluate(), and numberOfVariables().