24#include "RConfigure.h"
58 for (
int i = 0; i < npar; ++i) {
70 if (&rhs ==
this)
return *
this;
126 void SetParNames(
const char *name0 =
"p0",
const char *name1 =
"p1",
const char *name2 =
"p2",
127 const char *name3 =
"p3",
const char *name4 =
"p4",
const char *name5 =
"p5",
128 const char *name6 =
"p6",
const char *name7 =
"p7",
const char *name8 =
"p8",
129 const char *name9 =
"p9",
const char *name10 =
"p10");
156 static void Build(
TF1 *
f, Func *func);
165 template<
typename F,
typename T>
170 template<
typename F,
typename T>
175 template<
typename F,
typename T>
180 template<
typename F,
typename T>
187 template<
typename T,
typename F>
193 template<
typename T,
typename F>
199 template<
typename T,
typename F>
205 template<
typename T,
typename F>
287 TString &formula,
int termStart,
int termEnd,
377 template <
typename Func>
386 template <
typename Func>
402 template <
class PtrObj,
typename MemFn>
408 template <
class PtrObj,
typename MemFn>
427 TObject *
Clone(
const char *newname =
nullptr)
const override;
533 else std::copy(
fParams->ParamsVec().begin(),
fParams->ParamsVec().end(), params);
623 template <
class PtrObj,
typename MemFn>
625 template <
typename Func>
655 virtual void SetParameters(
double p0,
double p1 = 0.0,
double p2 = 0.0,
double p3 = 0.0,
double p4 = 0.0,
656 double p5 = 0.0,
double p6 = 0.0,
double p7 = 0.0,
double p8 = 0.0,
657 double p9 = 0.0,
double p10 = 0.0)
659 if (
fFormula)
fFormula->SetParameters(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
660 else fParams->SetParameters(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
664 virtual void SetParNames(
const char *name0 =
"p0",
const char *name1 =
"p1",
const char *name2 =
"p2",
665 const char *name3 =
"p3",
const char *name4 =
"p4",
const char *name5 =
"p5",
666 const char *name6 =
"p6",
const char *name7 =
"p7",
const char *name8 =
"p8",
667 const char *name9 =
"p9",
const char *name10 =
"p10");
679 void SetTitle(
const char *title =
"")
override;
683 fFormula->SetVectorized(vectorized);
685 Warning(
"SetVectorized",
"Can only set vectorized flag on formula-based TF1");
732 f->fParams = std::make_unique<TF1Parameters>(
f->fNpar);
741 f->fParams = std::make_unique<TF1Parameters>(
f->fNpar);
751 f->fFormula = std::make_unique<TFormula>(
"tf1lambda", formula,
f->fNdim,
f->fNpar,
false);
752 TString formulaExpression(formula);
818 std::vector<ROOT::Double_v>
d(
fNdim);
821 for(
auto i=0; i<
fNdim; i++) {
826 res = ((TF1FunctorPointerImpl<ROOT::Double_v> *)
fFunctor.get())->fImpl(
d.data(), params);
831 return vecCore::Get<ROOT::Double_v>(res, 0);
844template <
typename Func>
851template <
class PtrObj,
typename MemFn>
863 return GradientParTempl<T>(ipar,
x, eps);
865 return GradientParTempl<Double_t>(ipar, (
const Double_t *)
x, eps);
874 if (eps < 1e-10 || eps > 1) {
875 Warning(
"Derivative",
"parameter esp=%g out of allowed range[1e-10,1], reset to 0.01", eps);
883 std::vector<Double_t> parametersCopy(parameters, parameters +
GetNpar());
884 parameters = parametersCopy.data();
887 T
f1, f2, g1, g2, d0, d2;
890 if (al * bl != 0 && al >= bl) {
904 parameters[ipar] = par0 +
h;
906 parameters[ipar] = par0 -
h;
908 parameters[ipar] = par0 +
h / 2;
910 parameters[ipar] = par0 -
h / 2;
918 T grad = h2 * (4 * d2 - d0) / 3.;
921 parameters[ipar] = par0;
930 GradientParTempl<T>(
x, grad, eps);
938 if (eps < 1e-10 || eps > 1) {
939 Warning(
"Derivative",
"parameter esp=%g out of allowed range[1e-10,1], reset to 0.01", eps);
944 grad[ipar] = GradientParTempl<T>(ipar,
x, eps);
#define ClassDef(name, id)
#define ClassDefOverride(name, id)
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
class containing the result of the fit and all the related information (fitted parameter values,...
Param Functor class for Multidimensional functions.
Fill Area Attributes class.
Class to manage histogram axis.
Using a TBrowser one can browse all ROOT objects.
std::vector< Double_t > fParameters
const char * GetParName(Int_t iparam) const
const std::vector< double > & ParamsVec() const
Double_t GetParameter(const char *name) const
Double_t GetParameter(Int_t iparam) const
void SetParName(Int_t iparam, const char *name)
void SetParNames(const char *name0="p0", const char *name1="p1", const char *name2="p2", const char *name3="p3", const char *name4="p4", const char *name5="p5", const char *name6="p6", const char *name7="p7", const char *name8="p8", const char *name9="p9", const char *name10="p10")
Set parameter names.
TF1Parameters & operator=(const TF1Parameters &rhs)
void SetParameter(Int_t iparam, Double_t value)
void SetParameter(const char *name, Double_t value)
TF1Parameters(Int_t npar)
std::vector< std::string > fParNames
bool CheckIndex(Int_t i) const
void SetParameters(const Double_t *params)
Int_t GetParNumber(const char *name) const
Returns the parameter number given a name not very efficient but list of parameters is typically smal...
TF1Parameters(const TF1Parameters &rhs)
const Double_t * GetParameters() const
std::unique_ptr< TF1FunctorPointer > fFunctor
! Functor object to wrap any C++ callable object
virtual Double_t GetMinimumX(Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
Returns the X value corresponding to the minimum value of the function on the (xmin,...
virtual Double_t GetMinimum(Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
Returns the minimum value of the function on the (xmin, xmax) interval.
virtual Double_t GetXmax() const
virtual void ReleaseParameter(Int_t ipar)
Release parameter number ipar during a fit operation.
virtual void SetParError(Int_t ipar, Double_t error)
Set error for parameter number ipar.
static void RejectPoint(Bool_t reject=kTRUE)
Static function to set the global flag to reject points the fgRejectPoint global flag is tested by al...
EAddToList
Add to list behavior.
virtual Double_t Mean(Double_t a, Double_t b, const Double_t *params=nullptr, Double_t epsilon=0.000001)
virtual Double_t Derivative(Double_t x, Double_t *params=nullptr, Double_t epsilon=0.001) const
Returns the first derivative of the function at point x, computed by Richardson's extrapolation metho...
virtual const Double_t * GetParErrors() const
virtual Int_t GetNumber() const
virtual Int_t GetNDF() const
Return the number of degrees of freedom in the fit the fNDF parameter has been previously computed du...
std::vector< Double_t > fParErrors
Array of errors of the fNpar parameters.
Int_t fNdim
Function dimension.
static void CalcGaussLegendreSamplingPoints(Int_t num, Double_t *x, Double_t *w, Double_t eps=3.0e-11)
Type safe interface (static method) The number of sampling points are taken from the TGraph.
static void AbsValue(Bool_t reject=kTRUE)
Static function: set the fgAbsValue flag.
virtual TH1 * GetHistogram() const
Return a pointer to the histogram used to visualise the function Note that this histogram is managed ...
virtual const TFormula * GetFormula() const
virtual void GetParLimits(Int_t ipar, Double_t &parmin, Double_t &parmax) const
Return limits for parameter ipar.
Int_t fNpar
Number of parameters.
virtual Double_t GetParameter(const TString &name) const
TAxis * GetYaxis() const
Get y axis of the function.
virtual void GetParameters(Double_t *params)
virtual void SetNDF(Int_t ndf)
Set the number of degrees of freedom ndf should be the number of points used in a fit - the number of...
virtual Double_t GetParError(Int_t ipar) const
Return value of parameter number ipar.
static std::atomic< Bool_t > fgAddToGlobList
virtual Bool_t IsEvalNormalized() const
virtual Double_t GetVariable(const TString &name)
virtual Double_t IntegralError(Double_t a, Double_t b, const Double_t *params=nullptr, const Double_t *covmat=nullptr, Double_t epsilon=1.E-2)
Return Error on Integral of a parametric function between a and b due to the parameter uncertainties ...
virtual void SetChisquare(Double_t chi2)
virtual Double_t IntegralFast(Int_t num, Double_t *x, Double_t *w, Double_t a, Double_t b, Double_t *params=nullptr, Double_t epsilon=1e-12)
Gauss-Legendre integral, see CalcGaussLegendreSamplingPoints.
Double_t fNormIntegral
Integral of the function before being normalized.
Double_t GetChisquare() const
virtual void SetMaximum(Double_t maximum=-1111)
Set the maximum value along Y for this function In case the function is already drawn,...
void Print(Option_t *option="") const override
This method must be overridden when a class wants to print itself.
T GradientParTempl(Int_t ipar, const T *x, Double_t eps=0.01)
virtual TH1 * CreateHistogram()
Double_t fXmin
Lower bounds for the range.
std::unique_ptr< TMethodCall > fMethodCall
! Pointer to MethodCall in case of interpreted function
virtual void Update()
Called by functions such as SetRange, SetNpx, SetParameters to force the deletion of the associated h...
virtual Double_t GetProb() const
Return the fit probability.
void IntegrateForNormalization()
TF1(const char *name, std::function< T(const T *data, const Double_t *param)> &fcn, Double_t xmin=0, Double_t xmax=1, Int_t npar=0, Int_t ndim=1, EAddToList addToGlobList=EAddToList::kDefault)
virtual Double_t GradientPar(Int_t ipar, const Double_t *x, Double_t eps=0.01)
Compute the gradient (derivative) wrt a parameter ipar.
TAxis * GetZaxis() const
Get z axis of the function. (In case this object is a TF2 or TF3)
virtual Double_t GetRandom(TRandom *rng=nullptr, Option_t *opt=nullptr)
Return a random number following this function shape.
virtual void SetRange(Double_t xmin, Double_t xmax)
Initialize the upper and lower bounds to draw the function.
virtual Double_t GetMaximumStored() const
virtual Int_t GetNpar() const
virtual TString GetExpFormula(Option_t *option="") const
std::vector< Double_t > fBeta
! Array beta. is approximated by x = alpha +beta*r *gamma*r**2
Int_t fNDF
Number of degrees of freedom in the fit.
TH1 * fHistogram
! Pointer to histogram used for visualisation
virtual Double_t IntegralMultiple(Int_t n, const Double_t *a, const Double_t *b, Int_t, Int_t maxpts, Double_t epsrel, Double_t &relerr, Int_t &nfnevl, Int_t &ifail)
std::unique_ptr< TF1AbsComposition > fComposition
Pointer to composition (NSUM or CONV)
virtual void SetParErrors(const Double_t *errors)
Set errors for all active parameters when calling this function, the array errors must have at least ...
virtual TH1 * DoCreateHistogram(Double_t xmin, Double_t xmax, Bool_t recreate=kFALSE)
Create histogram with bin content equal to function value computed at the bin center This histogram w...
TObject * GetParent() const
Int_t fNpfits
Number of points used in the fit.
virtual Double_t Derivative2(Double_t x, Double_t *params=nullptr, Double_t epsilon=0.001) const
Returns the second derivative of the function at point x, computed by Richardson's extrapolation meth...
static void SetCurrent(TF1 *f1)
Static function setting the current function.
void SetFunction(PtrObj &p, MemFn memFn)
virtual void SetParent(TObject *p=nullptr)
std::vector< Double_t > fAlpha
! Array alpha. for each bin in x the deconvolution r of fIntegral
TF1(const char *name, const PtrObj &p, MemFn memFn, Double_t xmin, Double_t xmax, Int_t npar, const char *, const char *, EAddToList addToGlobList=EAddToList::kDefault)
virtual Double_t Integral(Double_t a, Double_t b, Double_t epsrel=1.e-12)
IntegralOneDim or analytical integral.
void SetTitle(const char *title="") override
Set function title if title has the form "fffffff;xxxx;yyyy", it is assumed that the function title i...
virtual Int_t GetNumberFitPoints() const
std::unique_ptr< TFormula > fFormula
Pointer to TFormula in case when user define formula.
static Double_t DerivativeError()
Static function returning the error of the last call to the of Derivative's functions.
std::vector< Double_t > fParMin
Array of lower limits of the fNpar parameters.
static void InitStandardFunctions()
Create the basic function objects.
Double_t fMaximum
Maximum value for plotting.
virtual void SetNpx(Int_t npx=100)
Set the number of points used to draw the function.
virtual Double_t * GetParameters() const
Double_t fMinimum
Minimum value for plotting.
int TermCoeffLength(TString &term)
static Bool_t fgRejectPoint
void Copy(TObject &f1) const override
Copy this F1 to a new F1.
virtual void SetNumberFitPoints(Int_t npfits)
virtual Double_t GetMinimumStored() const
virtual void SetNormalized(Bool_t flag)
void Paint(Option_t *option="") override
Paint this function with its current attributes.
TF1 & operator=(const TF1 &rhs)
Operator =.
virtual Int_t GetNumberFreeParameters() const
Return the number of free parameters.
virtual Double_t Moment(Double_t n, Double_t a, Double_t b, const Double_t *params=nullptr, Double_t epsilon=0.000001)
Return nth moment of function between a and b.
virtual Double_t CentralMoment(Double_t n, Double_t a, Double_t b, const Double_t *params=nullptr, Double_t epsilon=0.000001)
Return nth central moment of function between a and b (i.e the n-th moment around the mean value)
TF1(const char *name, const PtrObj &p, MemFn memFn, Double_t xmin, Double_t xmax, Int_t npar, Int_t ndim=1, EAddToList addToGlobList=EAddToList::kDefault)
Double_t fChisquare
Function fit chisquare.
virtual TFormula * GetFormula()
virtual void InitArgs(const Double_t *x, const Double_t *params)
Initialize parameters addresses.
TF1(const char *name, Func f, Double_t xmin, Double_t xmax, Int_t npar, const char *, EAddToList addToGlobList=EAddToList::kDefault)
virtual Double_t IntegralMultiple(Int_t n, const Double_t *a, const Double_t *b, Int_t maxpts, Double_t epsrel, Double_t epsabs, Double_t &relerr, Int_t &nfnevl, Int_t &ifail)
This function computes, to an attempted specified accuracy, the value of the integral.
TMethodCall * GetMethodCall() const
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a function.
virtual Double_t operator()(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Bool_t fNormalized
Normalization option (false by default)
virtual Double_t Variance(Double_t a, Double_t b, const Double_t *params=nullptr, Double_t epsilon=0.000001)
virtual void SetMinimum(Double_t minimum=-1111)
Set the minimum value along Y for this function In case the function is already drawn,...
virtual void AddParameter(const TString &name, Double_t value)
virtual void GetRange(Double_t *xmin, Double_t *xmax) const
Return range of a generic N-D function.
void Browse(TBrowser *b) override
Browse.
virtual const char * GetParName(Int_t ipar) const
~TF1() override
TF1 default destructor.
virtual Double_t EvalPar(const Double_t *x, const Double_t *params=nullptr)
Evaluate function with given coordinates and parameters.
TF1(EFType functionType, const char *name, Double_t xmin, Double_t xmax, Int_t npar, Int_t ndim, EAddToList addToGlobList, TF1Parameters *params=nullptr, TF1FunctorPointer *functor=nullptr)
General constructor for TF1. Most of the other constructors delegate on it.
Int_t fNpx
Number of points used for the graphical representation.
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
Set lower and upper limits for parameter ipar.
void DoInitialize(EAddToList addToGlobList)
Common initialization of the TF1.
virtual Double_t GetX(Double_t y, Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
Returns the X value corresponding to the function value fy for (xmin<x<xmax).
static TF1 * GetCurrent()
Static function returning the current function being processed.
virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_t *probSum)
Compute Quantiles for density distribution of this function.
virtual void SetParName(Int_t ipar, const char *name)
Set name of parameter number ipar.
char * GetObjectInfo(Int_t px, Int_t py) const override
Redefines TObject::GetObjectInfo.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
virtual Double_t GetSave(const Double_t *x)
Get value corresponding to X in array of fSave values.
static std::atomic< Bool_t > fgAbsValue
virtual Bool_t IsLinear() const
TF1()
TF1 default constructor.
virtual TF1 * DrawCopy(Option_t *option="") const
Draw a copy of this function with its current attributes.
std::vector< Double_t > fParMax
Array of upper limits of the fNpar parameters.
virtual void SetParameters(double p0, double p1=0.0, double p2=0.0, double p3=0.0, double p4=0.0, double p5=0.0, double p6=0.0, double p7=0.0, double p8=0.0, double p9=0.0, double p10=0.0)
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream out.
virtual Bool_t IsValid() const
Return kTRUE if the function is valid.
static Bool_t DefaultAddToGlobalList(Bool_t on=kTRUE)
Static method to add/avoid to add automatically functions to the global list (gROOT->GetListOfFunctio...
std::vector< Double_t > fSave
Array of fNsave function values.
static Bool_t RejectedPoint()
See TF1::RejectPoint above.
void DefineNSUMTerm(TObjArray *newFuncs, TObjArray *coeffNames, TString &fullFormula, TString &formula, int termStart, int termEnd, Double_t xmin, Double_t xmax)
Helper functions for NSUM parsing.
std::vector< Double_t > fGamma
! Array gamma.
TObject * fParent
! Parent object hooking this function (if one)
virtual Double_t GetMinMaxNDim(Double_t *x, Bool_t findmax, Double_t epsilon=0, Int_t maxiter=0) const
Find the minimum of a function of whatever dimension.
virtual void DrawF1(Double_t xmin, Double_t xmax, Option_t *option="")
Draw function between xmin and xmax.
Bool_t ComputeCdfTable(Option_t *opt)
Compute the cumulative function at fNpx points between fXmin and fXmax.
virtual void SetParameters(const Double_t *params)
T EvalParTempl(const T *data, const Double_t *params=nullptr)
Eval for vectorized functions.
virtual TObject * DrawIntegral(Option_t *option="al")
Draw integral of this function.
std::vector< Double_t > fIntegral
! Integral of function binned on fNpx bins
virtual void SetParNames(const char *name0="p0", const char *name1="p1", const char *name2="p2", const char *name3="p3", const char *name4="p4", const char *name5="p5", const char *name6="p6", const char *name7="p7", const char *name8="p8", const char *name9="p9", const char *name10="p10")
Set up to 10 parameter names.
virtual TObject * DrawDerivative(Option_t *option="al")
Draw derivative of this function.
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Evaluate this function.
virtual Double_t GetMaximum(Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
Returns the maximum value of the function.
std::unique_ptr< TF1Parameters > fParams
Pointer to Function parameters object (exists only for not-formula functions)
virtual void SetParameter(const TString &name, Double_t value)
virtual void SetParameter(Int_t param, Double_t value)
virtual Double_t Derivative3(Double_t x, Double_t *params=nullptr, Double_t epsilon=0.001) const
Returns the third derivative of the function at point x, computed by Richardson's extrapolation metho...
virtual void Save(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax)
Save values of function in array fSave.
TObject * Clone(const char *newname=nullptr) const override
Make a complete copy of the underlying object.
@ kFormula
Formula functions which can be stored,.
@ kPtrScalarFreeFcn
Pointer to scalar free function,.
@ kTemplScalar
TemplScalar functors evaluating on scalar parameters.
@ kTemplVec
Vectorized free functions or TemplScalar functors evaluating on vectorized parameters,...
@ kInterpreted
Interpreted functions constructed by name,.
virtual void SetSavedPoint(Int_t point, Double_t value)
Restore value of function saved at point.
virtual void FixParameter(Int_t ipar, Double_t value)
Fix the value of a parameter for a fit operation The specified value will be used in the fit and the ...
virtual Bool_t IsInside(const Double_t *x) const
return kTRUE if the point is inside the function range
virtual Int_t GetNpx() const
Double_t fXmax
Upper bounds for the range.
virtual Double_t GetMaximumX(Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
Returns the X value corresponding to the maximum value of the function.
virtual Int_t GetNdim() const
virtual Double_t GetXmin() const
virtual Bool_t AddToGlobalList(Bool_t on=kTRUE)
Add to global list of functions (gROOT->GetListOfFunctions() ) return previous status (true if the fu...
virtual const TObject * GetLinearPart(Int_t i) const
virtual void SetVectorized(Bool_t vectorized)
virtual Double_t IntegralOneDim(Double_t a, Double_t b, Double_t epsrel, Double_t epsabs, Double_t &err)
Return Integral of function between a and b using the given parameter values and relative and absolut...
TF1(const char *name, Func f, Double_t xmin, Double_t xmax, Int_t npar, Int_t ndim=1, EAddToList addToGlobList=EAddToList::kDefault)
virtual Double_t GetParameter(Int_t ipar) const
virtual Int_t GetParNumber(const char *name) const
TF1(const char *name, T(*fcn)(const T *, const Double_t *), Double_t xmin=0, Double_t xmax=1, Int_t npar=0, Int_t ndim=1, EAddToList addToGlobList=EAddToList::kDefault)
Constructor using a pointer to function.
virtual void SetFitResult(const ROOT::Fit::FitResult &result, const Int_t *indpar=nullptr)
Set the result from the fit parameter values, errors, chi2, etc... Optionally a pointer to a vector (...
TAxis * GetXaxis() const
Get x axis of the function.
TH1 is the base class of all histogram classes in ROOT.
Method or function calling interface.
The TNamed class is the base class for all named ROOT classes.
Mother of all ROOT objects.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
This is the base class for the ROOT Random number generators.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
TFitResultPtr Fit(FitObject *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
Namespace for new Math classes and functions.
auto GetTheRightOp(T(F::*opPtr)(const T *, const double *)) -> decltype(opPtr)
Internal class used by TF1 to get the right operator() signature from a Functor with several ones.
ParamFunctorTempl< double > ParamFunctor
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
Double_t SignalingNaN()
Returns a signaling NaN as defined by IEEE 754](http://en.wikipedia.org/wiki/NaN#Signaling_NaN).
Internal class used by TF1 for obtaining the type from a functor out of the set of valid operator() s...
static void Build(TF1 *f, const char *formula)
Internal class used by TF1 for defining template specialization for different TF1 constructors
static void Build(TF1 *f, Func func)
TF1FunctorPointer * Clone() const override
ROOT::Math::ParamFunctorTempl< T > fImpl
TF1FunctorPointerImpl(const std::function< T(const T *f, const Double_t *param)> &func)
~TF1FunctorPointerImpl() override
TF1FunctorPointerImpl(const ROOT::Math::ParamFunctorTempl< T > &func)
virtual ~TF1FunctorPointer()
virtual TF1FunctorPointer * Clone() const =0