13 #ifndef ROOT_Fit_FitResult 14 #define ROOT_Fit_FitResult 88 void FillResult(
const std::shared_ptr<ROOT::Math::Minimizer> & min,
const FitConfig & fconfig,
const std::shared_ptr<IModelFunction> & f,
98 bool Update(
const std::shared_ptr<ROOT::Math::Minimizer> & min,
bool isValid,
unsigned int ncalls = 0 );
187 double Error(
unsigned int i)
const {
196 std::string
ParName(
unsigned int i)
const;
217 double CovMatrix (
unsigned int i,
unsigned int j)
const {
236 template<
class Matrix>
238 unsigned int npar =
fErrors.size();
239 if (
fCovMatrix.size() != npar*(npar+1)/2 )
return;
240 for (
unsigned int i = 0; i< npar; ++i) {
241 for (
unsigned int j = 0; j<=i; ++j) {
243 if (i != j) mat(j,i) = mat(i,j);
250 template<
class Matrix>
252 unsigned int npar =
fErrors.size();
253 if (
fCovMatrix.size() != npar*(npar+1)/2)
return;
254 for (
unsigned int i = 0; i< npar; ++i) {
255 for (
unsigned int j = 0; j<=i; ++j) {
258 if (i != j) mat(j,i) = mat(i,j);
275 void GetConfidenceIntervals(
unsigned int n,
unsigned int stride1,
unsigned int stride2,
const double *
x,
double * ci,
double cl=0.95,
bool norm =
true )
const;
293 int Index(
const std::string &
name)
const;
303 void Print(std::ostream & os,
bool covmat =
false)
const;
315 bool ParameterBounds(
unsigned int ipar,
double &lower,
double &upper)
const;
347 std::shared_ptr<ROOT::Math::IMultiGenFunction>
fObjFunc;
int Index(const std::string &name) const
get index for parameter name (return -1 if not found)
std::string ParName(unsigned int i) const
name of the parameter
std::shared_ptr< ROOT::Math::IMultiGenFunction > fObjFunc
minimizer object used for fitting
Namespace for new ROOT classes and functions.
double CovMatrix(unsigned int i, unsigned int j) const
retrieve covariance matrix element
double Error(unsigned int i) const
parameter error by index
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.
const std::vector< double > & Errors() const
parameter errors (return st::vector)
double Edm() const
Expected distance from minimum.
unsigned int NPar() const
total number of parameters (abbreviation)
double Value(unsigned int i) const
parameter value by index
unsigned int Ndf() const
Number of degree of freedom.
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.
double Parameter(unsigned int i) const
parameter value by index
double Prob() const
p value of the fit (chi2 probability)
double MinFcnValue() const
Return value of the objective function (chi2 or likelihood) used in the fit.
const IModelFunction * FittedFunction() const
fitting quantities
void SetModelFunction(const std::shared_ptr< IModelFunction > &func)
unsigned int NTotalParameters() const
get total number of parameters
bool HasMinosError(unsigned int i) const
query if parameter i has the Minos error
std::map< unsigned int, bool > fFixedParams
data set used in the fit
std::vector< double > fErrors
unsigned int NCalls() const
Number of function calls to find minimum.
std::shared_ptr< FitData > fFitData
model function resulting from the fit.
virtual ~FitResult()
Destructor.
std::string GetParameterName(unsigned int ipar) const
get name of parameter (deprecated)
double LowerError(unsigned int i) const
lower Minos error. If Minos has not run for parameter i return the parabolic error ...
bool NormalizedErrors() const
flag to chek if errors are normalized
std::shared_ptr< ROOT::Math::Minimizer > fMinimizer
Documentation for the abstract class IBaseFunctionMultiDim.
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
double Correlation(unsigned int i, unsigned int j) const
retrieve correlation elements
std::map< unsigned int, std::pair< double, double > > fMinosErrors
unsigned int NFreeParameters() const
get total number of free parameters
void SetMinosError(unsigned int i, double elow, double eup)
set the Minos errors for parameter i (called by the Fitter class when running Minos) ...
RooCmdArg Minimizer(const char *type, const char *alg=0)
Fitter class, entry point for performing all type of fits.
const double * GetParams() const
parameter values (return const pointer)
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
double UpperError(unsigned int i) const
upper Minos error. If Minos has not run for parameter i return the parabolic error ...
int Status() const
minimizer status code
int CovMatrixStatus() const
covariance matrix status code using Minuit convention : =0 not calculated, =1 approximated, =2 made pos def , =3 accurate
const std::string & MinimizerType() const
minimization quantities
class containg the result of the fit and all the related information (fitted parameter values...
void PrintCovMatrix(std::ostream &os) const
print error matrix and correlations
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 IsValid() const
True if fit successful, otherwise false.
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)
bool IsParameterFixed(unsigned int ipar) const
query if a parameter is fixed
const std::vector< double > & Parameters() const
parameter values (return std::vector)
Namespace for new Math classes and functions.
std::vector< std::pair< double, double > > fParamBounds
bool IsEmpty() const
True if a fit result does not exist (even invalid) with parameter values.
void GetCorrelationMatrix(Matrix &mat) const
fill a correlation matrix elements using a generic symmetric matrix class implementing operator(i...
std::vector< std::string > fParNames
void Print(std::ostream &os, bool covmat=false) const
print the result and optionaly covariance matrix and correlations
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 ...
std::vector< double > fGlobalCC
FitResult()
Default constructor for an empty (non valid) fit result.
std::vector< double > fCovMatrix
ROOT::Math::IParamMultiFunction IModelFunction
std::map< unsigned int, unsigned int > fBoundParams
bool ParameterBounds(unsigned int ipar, double &lower, double &upper) const
retrieve parameter bounds - return false if parameter is not bound
std::vector< double > fParams
double GlobalCC(unsigned int i) const
parameter global correlation coefficient
double Chi2() const
Chi2 fit value in case of likelihood must be computed ?
double ParError(unsigned int i) const
parameter error by index
bool IsParameterBound(unsigned int ipar) const
query if a parameter is bound
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...
const double * GetErrors() const
parameter errors (return const pointer)