Class to Wrap a ROOT Function class (like TF1) in a IParamMultiFunction interface of multi-dimensions to be used in the ROOT::Math numerical algorithm.
This wrapper class does not own the TF1 pointer, so it assumes it exists during the wrapper lifetime. The class copy the TF1 pointer only when it owns it.
The class from ROOT version 6.03 does not contain anymore a copy of the parameters. The parameters are stored in the TF1 class.
Definition at line 45 of file WrappedMultiTF1.h.
Public Types | |
typedef ROOT::Math::IParametricFunctionMultiDimTempl< T >::BaseFunc | BaseFunc |
typedef ROOT::Math::IParametricGradFunctionMultiDimTempl< T > | BaseParamFunc |
Public Types inherited from ROOT::Math::IParametricGradFunctionMultiDimTempl< T > | |
using | BaseFunc = typename IParametricFunctionMultiDimTempl< T >::BaseFunc |
using | BaseGradFunc = IGradientFunctionMultiDimTempl< T > |
using | BaseParamFunc = IParametricFunctionMultiDimTempl< T > |
Public Types inherited from ROOT::Math::IParametricFunctionMultiDimTempl< T > | |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
Public Types inherited from ROOT::Math::IBaseFunctionMultiDimTempl< T > | |
typedef T | BackendType |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
Public Member Functions | |
WrappedMultiTF1Templ (const WrappedMultiTF1Templ< T > &rhs) | |
Copy constructor. More... | |
WrappedMultiTF1Templ (TF1 &f, unsigned int dim=0) | |
constructor from a function pointer to a TF1 If dim = 0 dimension is taken from TF1::GetNdim(). More... | |
~WrappedMultiTF1Templ () | |
Destructor (no operations). More... | |
WrappedMultiTF1Templ & | operator= (const WrappedMultiTF1Templ< T > &rhs) |
Assignment operator. More... | |
Public Member Functions inherited from ROOT::Math::IParametricGradFunctionMultiDimTempl< T > | |
virtual | ~IParametricGradFunctionMultiDimTempl () |
Virtual Destructor (no operations) More... | |
T | operator() (const T *x) const |
T | operator() (const T *x, const double *p) const |
T | ParameterDerivative (const T *x, const double *p, unsigned int ipar=0) const |
Evaluate the partial derivative w.r.t a parameter ipar from values and parameters. More... | |
T | ParameterDerivative (const T *x, unsigned int ipar=0) const |
Evaluate partial derivative using cached parameter values. More... | |
virtual void | ParameterGradient (const T *x, const double *p, T *grad) const |
Evaluate the all the derivatives (gradient vector) of the function with respect to the parameters at a point x. More... | |
void | ParameterGradient (const T *x, T *grad) const |
Evaluate all derivatives using cached parameter values. More... | |
Public Member Functions inherited from ROOT::Math::IParametricFunctionMultiDimTempl< T > | |
T | operator() (const T *x) const |
T | operator() (const T *x, const double *p) const |
Evaluate function at a point x and for given parameters p. More... | |
Public Member Functions inherited from ROOT::Math::IBaseFunctionMultiDimTempl< T > | |
IBaseFunctionMultiDimTempl () | |
virtual | ~IBaseFunctionMultiDimTempl () |
virtual destructor More... | |
virtual IBaseFunctionMultiDimTempl< T > * | Clone () const =0 |
Clone a function. More... | |
virtual unsigned int | NDim () const =0 |
Retrieve the dimension of the function. More... | |
T | operator() (const T *x) const |
Evaluate the function at a point x[]. More... | |
Public Member Functions inherited from ROOT::Math::IBaseParam | |
virtual | ~IBaseParam () |
Virtual Destructor (no operations) More... | |
virtual unsigned int | NPar () const =0 |
Return the number of Parameters. More... | |
virtual std::string | ParameterName (unsigned int i) const |
Return the name of the i-th parameter (starting from zero) Overwrite if want to avoid the default name ("Par_0, Par_1, ...") More... | |
virtual const double * | Parameters () const =0 |
Access the parameter values. More... | |
virtual void | SetParameters (const double *p)=0 |
Set the parameter values. More... | |
interface inherited from IParamFunction | |
bool | fLinear |
bool | fPolynomial |
bool | fOwnFunc |
TF1 * | fFunc |
unsigned int | fDim |
IMultiGenFunctionTempl< T > * | Clone () const |
Clone the wrapper but not the original function. More... | |
unsigned int | NDim () const |
Retrieve the dimension of the function. More... | |
const double * | Parameters () const |
get the parameter values (return values from TF1) More... | |
void | SetParameters (const double *p) |
set parameter values (only the cached one in this class,leave unchanges those of TF1) More... | |
unsigned int | NPar () const |
return number of parameters More... | |
std::string | ParameterName (unsigned int i) const |
return parameter name (from TF1) More... | |
void | ParameterGradient (const T *x, const double *par, T *grad) const |
Evaluate the all the derivatives (gradient vector) of the function with respect to the parameters at a point x. More... | |
const TF1 * | GetFunction () const |
method to retrieve the internal function pointer More... | |
void | SetAndCopyFunction (const TF1 *f=0) |
method to set a new function pointer and copy it inside. More... | |
static void | SetDerivPrecision (double eps) |
precision value used for calculating the derivative step-size h = eps * |x|. More... | |
static double | GetDerivPrecision () |
get precision value used for calculating the derivative step-size More... | |
T | DoEvalPar (const T *x, const double *p) const |
evaluate function passing coordinates x and vector of parameters More... | |
T | DoEvalVec (const T *x) const |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency More... | |
T | DoEval (const T *x) const |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency More... | |
T | DoParameterDerivative (const T *x, const double *p, unsigned int ipar) const |
evaluate the partial derivative with respect to the parameter More... | |
#include <Math/WrappedMultiTF1.h>
typedef ROOT::Math::IParametricFunctionMultiDimTempl<T>::BaseFunc ROOT::Math::WrappedMultiTF1Templ< T >::BaseFunc |
Definition at line 50 of file WrappedMultiTF1.h.
typedef ROOT::Math::IParametricGradFunctionMultiDimTempl<T> ROOT::Math::WrappedMultiTF1Templ< T >::BaseParamFunc |
Definition at line 49 of file WrappedMultiTF1.h.
ROOT::Math::WrappedMultiTF1Templ< T >::WrappedMultiTF1Templ | ( | TF1 & | f, |
unsigned int | dim = 0 |
||
) |
constructor from a function pointer to a TF1 If dim = 0 dimension is taken from TF1::GetNdim().
IN case of multi-dimensional function created using directly TF1 object the dimension returned by TF1::GetNdim is always 1. The user must then pass the correct value of dim
Definition at line 212 of file WrappedMultiTF1.h.
|
inline |
Destructor (no operations).
Function pointer is not owned
Definition at line 63 of file WrappedMultiTF1.h.
ROOT::Math::WrappedMultiTF1Templ< T >::WrappedMultiTF1Templ | ( | const WrappedMultiTF1Templ< T > & | rhs | ) |
Copy constructor.
Definition at line 244 of file WrappedMultiTF1.h.
|
inlinevirtual |
Clone the wrapper but not the original function.
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 83 of file WrappedMultiTF1.h.
|
inlineprivatevirtual |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency
Reimplemented from ROOT::Math::IParametricGradFunctionMultiDimTempl< T >.
Definition at line 158 of file WrappedMultiTF1.h.
|
inlineprivatevirtual |
evaluate function passing coordinates x and vector of parameters
Implements ROOT::Math::IParametricGradFunctionMultiDimTempl< T >.
Definition at line 144 of file WrappedMultiTF1.h.
|
inlineprivate |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency
Definition at line 151 of file WrappedMultiTF1.h.
|
privatevirtual |
evaluate the partial derivative with respect to the parameter
Implements ROOT::Math::IParametricGradFunctionMultiDimTempl< T >.
Definition at line 292 of file WrappedMultiTF1.h.
|
static |
get precision value used for calculating the derivative step-size
Definition at line 322 of file WrappedMultiTF1.h.
|
inline |
method to retrieve the internal function pointer
Definition at line 133 of file WrappedMultiTF1.h.
|
inlinevirtual |
Retrieve the dimension of the function.
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 91 of file WrappedMultiTF1.h.
|
inlinevirtual |
return number of parameters
Implements ROOT::Math::IBaseParam.
Definition at line 111 of file WrappedMultiTF1.h.
WrappedMultiTF1Templ< T > & ROOT::Math::WrappedMultiTF1Templ< T >::operator= | ( | const WrappedMultiTF1Templ< T > & | rhs | ) |
Assignment operator.
Definition at line 258 of file WrappedMultiTF1.h.
|
virtual |
Evaluate the all the derivatives (gradient vector) of the function with respect to the parameters at a point x.
It is optional to be implemented by the derived classes for better efficiency
Reimplemented from ROOT::Math::IParametricGradFunctionMultiDimTempl< T >.
Definition at line 271 of file WrappedMultiTF1.h.
|
inlinevirtual |
return parameter name (from TF1)
Reimplemented from ROOT::Math::IBaseParam.
Definition at line 118 of file WrappedMultiTF1.h.
|
inlinevirtual |
get the parameter values (return values from TF1)
Implements ROOT::Math::IBaseParam.
Definition at line 97 of file WrappedMultiTF1.h.
void ROOT::Math::WrappedMultiTF1Templ< T >::SetAndCopyFunction | ( | const TF1 * | f = 0 | ) |
method to set a new function pointer and copy it inside.
By calling this method the class manages now the passed TF1 pointer
Definition at line 328 of file WrappedMultiTF1.h.
|
static |
precision value used for calculating the derivative step-size h = eps * |x|.
The default is 0.001, give a smaller in case function changes rapidly
Definition at line 316 of file WrappedMultiTF1.h.
|
inlinevirtual |
set parameter values (only the cached one in this class,leave unchanges those of TF1)
Implements ROOT::Math::IBaseParam.
Definition at line 104 of file WrappedMultiTF1.h.
|
private |
Definition at line 173 of file WrappedMultiTF1.h.
|
private |
Definition at line 172 of file WrappedMultiTF1.h.
|
private |
Definition at line 169 of file WrappedMultiTF1.h.
|
private |
Definition at line 171 of file WrappedMultiTF1.h.
|
private |
Definition at line 170 of file WrappedMultiTF1.h.