13 #ifndef ROOT_Fit_FitResult
14 #define ROOT_Fit_FitResult
16 #ifndef ROOT_Fit_IFunctionfwd
19 #ifndef ROOT_Fit_IParamFunctionfwd
92 void FillResult(
const std::shared_ptr<ROOT::Math::Minimizer> &
min,
const FitConfig & fconfig,
const std::shared_ptr<IModelFunction> &
f,
102 bool Update(
const std::shared_ptr<ROOT::Math::Minimizer> &
min,
bool isValid,
unsigned int ncalls = 0 );
191 double Error(
unsigned int i)
const {
200 std::string
ParName(
unsigned int i)
const;
221 double CovMatrix (
unsigned int i,
unsigned int j)
const {
240 template<
class Matrix>
242 unsigned int npar =
fErrors.size();
243 if (
fCovMatrix.size() != npar*(npar+1)/2 )
return;
244 for (
unsigned int i = 0; i< npar; ++i) {
245 for (
unsigned int j = 0; j<=i; ++j) {
247 if (i != j) mat(j,i) = mat(i,j);
254 template<
class Matrix>
256 unsigned int npar =
fErrors.size();
257 if (
fCovMatrix.size() != npar*(npar+1)/2)
return;
258 for (
unsigned int i = 0; i< npar; ++i) {
259 for (
unsigned int j = 0; j<=i; ++j) {
262 if (i != j) mat(j,i) = mat(i,j);
279 void GetConfidenceIntervals(
unsigned int n,
unsigned int stride1,
unsigned int stride2,
const double *
x,
double * ci,
double cl=0.95,
bool norm =
true )
const;
297 int Index(
const std::string &
name)
const;
307 void Print(std::ostream & os,
bool covmat =
false)
const;
351 std::shared_ptr<ROOT::Math::IMultiGenFunction>
fObjFunc;
bool NormalizedErrors() const
flag to chek if errors are normalized
void PrintCovMatrix(std::ostream &os) const
print error matrix and correlations
bool IsParameterFixed(unsigned int ipar) const
query if a parameter is fixed
static Vc_ALWAYS_INLINE int_v min(const int_v &x, const int_v &y)
std::shared_ptr< ROOT::Math::IMultiGenFunction > fObjFunc
minimizer object used for fitting
Namespace for new ROOT classes and functions.
const std::vector< double > & Errors() const
parameter errors (return st::vector)
const BinData * FittedBinData() const
return BinData used in the fit (return a nullptr in case a different fit is done or the data are not ...
double UpperError(unsigned int i) const
upper Minos error. If Minos has not run for parameter i return the parabolic error ...
unsigned int Ndf() const
Number of degree of freedom.
int Index(const std::string &name) const
get index for parameter name (return -1 if not found)
bool ParameterBounds(unsigned int ipar, double &lower, double &upper) const
retrieve parameter bounds - return false if parameter is not bound
void FillResult(const std::shared_ptr< ROOT::Math::Minimizer > &min, const FitConfig &fconfig, const std::shared_ptr< IModelFunction > &f, bool isValid, unsigned int sizeOfData=0, bool binFit=true, const ROOT::Math::IMultiGenFunction *chi2func=0, unsigned int ncalls=0)
Fill the fit result from a Minimizer instance after fitting Run also Minos if requested from the conf...
FitResult & operator=(const FitResult &rhs)
Assignment operator.
void SetModelFunction(const std::shared_ptr< IModelFunction > &func)
double Edm() const
Expected distance from minimum.
const std::vector< double > & Parameters() const
parameter values (return std::vector)
std::map< unsigned int, bool > fFixedParams
data set used in the fit
std::vector< double > fErrors
double LowerError(unsigned int i) const
lower Minos error. If Minos has not run for parameter i return the parabolic error ...
unsigned int NCalls() const
Number of function calls to find minimum.
double Correlation(unsigned int i, unsigned int j) const
retrieve correlation elements
std::shared_ptr< FitData > fFitData
model function resulting from the fit.
virtual ~FitResult()
Destructor.
const IModelFunction * FittedFunction() const
fitting quantities
bool HasMinosError(unsigned int i) const
query if parameter i has the Minos error
double CovMatrix(unsigned int i, unsigned int j) const
retrieve covariance matrix element
std::shared_ptr< ROOT::Math::Minimizer > fMinimizer
unsigned int NFreeParameters() const
get total number of free parameters
std::shared_ptr< IModelFunction > ModelFunction()
Return pointer non const pointer to model (fit) function with fitted parameter values.
std::shared_ptr< IModelFunction > fFitFunc
objective function used for fitting
bool IsValid() const
True if fit successful, otherwise false.
double Value(unsigned int i) const
parameter value by index
std::map< unsigned int, std::pair< double, double > > fMinosErrors
unsigned int NPar() const
total number of parameters (abbreviation)
const double * GetParams() const
parameter values (return const pointer)
const std::string & MinimizerType() const
minimization quantities
void SetMinosError(unsigned int i, double elow, double eup)
set the Minos errors for parameter i (called by the Fitter class when running Minos) ...
IParamFunction interface (abstract class) describing multi-dimensional parameteric functions It is a ...
RooCmdArg Minimizer(const char *type, const char *alg=0)
int Status() const
minimizer status code
Fitter class, entry point for performing all type of fits.
double ParError(unsigned int i) const
parameter error by index
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
double Prob() const
p value of the fit (chi2 probability)
void GetCovarianceMatrix(Matrix &mat) const
fill covariance matrix elements using a generic matrix class implementing operator(i,j) the matrix must be previously allocates with right size (npar * npar)
bool IsParameterBound(unsigned int ipar) const
query if a parameter is bound
class containg the result of the fit and all the related information (fitted parameter values...
std::string GetParameterName(unsigned int ipar) const
get name of parameter (deprecated)
void NormalizeErrors()
normalize errors using chi2/ndf for chi2 fits
TFitResultPtr Fit(FitObject *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
double Error(unsigned int i) const
parameter error by index
double func(double *x, double *p)
void Print(std::ostream &os, bool covmat=false) const
print the result and optionaly covariance matrix and correlations
std::string ParName(unsigned int i) const
name of the parameter
Namespace for new Math classes and functions.
std::vector< std::pair< double, double > > fParamBounds
const double * GetErrors() const
parameter errors (return const pointer)
double MinFcnValue() const
Return value of the objective function (chi2 or likelihood) used in the fit.
std::vector< std::string > fParNames
std::vector< double > fGlobalCC
FitResult()
Default constructor for an empty (non valid) fit result.
std::vector< double > fCovMatrix
void GetConfidenceIntervals(unsigned int n, unsigned int stride1, unsigned int stride2, const double *x, double *ci, double cl=0.95, bool norm=true) const
get confidence intervals for an array of n points x.
ROOT::Math::IParamMultiFunction IModelFunction
std::map< unsigned int, unsigned int > fBoundParams
double Chi2() const
Chi2 fit value in case of likelihood must be computed ?
int CovMatrixStatus() const
covariance matrix status code using Minuit convention : =0 not calculated, =1 approximated, =2 made pos def , =3 accurate
std::vector< double > fParams
unsigned int NTotalParameters() const
get total number of parameters
Documentation for the abstract class IBaseFunctionMultiDim.
double Parameter(unsigned int i) const
parameter value by index
bool IsEmpty() const
True if a fit result does not exist (even invalid) with parameter values.
double norm(double *x, double *p)
bool Update(const std::shared_ptr< ROOT::Math::Minimizer > &min, bool isValid, unsigned int ncalls=0)
Update the fit result with a new minimization status To be run only if same fit is performed with sam...
Class describing the configuration of the fit, options and parameter settings using the ROOT::Fit::Pa...
void GetCorrelationMatrix(Matrix &mat) const
fill a correlation matrix elements using a generic symmetric matrix class implementing operator(i...
double GlobalCC(unsigned int i) const
parameter global correlation coefficient