The Linear Fitter - For fitting functions that are LINEAR IN PARAMETERS
Linear fitter is used to fit a set of data points with a linear combination of specified functions. Note, that "linear" in the name stands only for the model dependency on parameters, the specified functions can be nonlinear. The general form of this kind of model is
Functions f are fixed functions of x. For example, fitting with a polynomial is linear fitting in this sense.
The fit is performed using the Normal Equations method with Cholesky decomposition.
The linear fitter is considerably faster than general non-linear fitters and doesn't require to set the initial values of parameters.
-Additive parts are separated by 2 plus signs "++" –for example "1 ++ x" - for fitting a straight line -All standard functions, undrestood by TFormula, can be used as additive parts –TMath functions can be used too -Functions, used as additive parts, shouldn't have any parameters, even if those parameters are set. –for example, if normalizing a sum of a gaus(0, 1) and a gaus(0, 2), don't use the built-in "gaus" of TFormula, because it has parameters, take TMath::Gaus(x, 0, 1) instead. -Polynomials can be used like "pol3", .."polN" -If fitting a more than 3-dimensional formula, variables should be numbered as follows: – x[0], x[1], x[2]... For example, to fit "1 ++ x[0] ++ x[1] ++ x[2] ++ x[3]*x[3]"
TF123 based on a linear expression and pass this function to the fitter: –Example:
–The results of the fit are then stored in the function, just like when the TH1::Fit or TGraph::Fit is used –A linear function of this kind is by no means different from any other function, it can be drawn, evaluated, etc.
–For multidimensional fitting, TFormulas of the form: x[0]++...++x[n] can be used
the formula can be set by expression: –Example:
–Polynomials are set the usual way: "pol1", "pol2",... –Hyperplanes are set by expression "hyp3", "hyp4", ... —The "hypN" expressions only work when the linear fitter is used directly, not through TH1::Fit or TGraph::Fit. To fit a graph or a histogram with a hyperplane, define the function as "1++x++y". —A constant term is assumed for a hyperplane, when using the "hypN" expression, so "hyp3" is in fact fitting with "1++x++y++z" function. –Fitting hyperplanes is much faster than fitting other expressions so if performance is vital, calculate the function values beforehand and give them to the fitter as variables –Example: You want to fit "sin(x)|cos(2*x)" very fast. Calculate sin(x) and cos(2*x) beforehand and store them in array *data. Then: TLinearFitter *lf=new TLinearFitter(2, "hyp2"); lf->AssignData(npoint, 2, data, y);
the fitting formula can be reset without re-adding all the points. –Example:
cleared and the data will have to be added again to try a different formula.
–GetParameters, GetCovarianceMatrix, etc –the t-values of parameters and their significance can be reached by GetParTValue() and GetParSignificance() methods
written into this function.
Outliers are atypical(by definition), infrequant observations; data points which do not appear to follow the characteristic distribution of the rest of the data. These may reflect genuine properties of the underlying phenomenon(variable), or be due to measurement errors or anomalies which shouldn't be modelled. (StatSoft electronic textbook)
Even a single gross outlier can greatly influence the results of least- squares fitting procedure, and in this case use of robust(resistant) methods is recommended.
The method implemented here is based on the article and algorithm: "Computing LTS Regression for Large Data Sets" by P.J.Rousseeuw and Katrien Van Driessen The idea of the method is to find the fitting coefficients for a subset of h observations (out of n) with the smallest sum of squared residuals. The size of the subset h should lie between (npoints + nparameters +1)/2 and n, and represents the minimal number of good points in the dataset. The default value is set to (npoints + nparameters +1)/2, but of course if you are sure that the data contains less outliers it's better to change h according to your data.
To perform a robust fit, call EvalRobust() function instead of Eval() after adding the points and setting the fitting function. Note, that standard errors on parameters are not computed!
Definition at line 153 of file TLinearFitter.h.
Public Member Functions | |
TLinearFitter () | |
default c-tor, input data is stored If you don't want to store the input data, run the function StoreData(kFALSE) after constructor | |
TLinearFitter (const TLinearFitter &tlf) | |
Copy ctor. | |
TLinearFitter (Int_t ndim) | |
The parameter stands for number of dimensions in the fitting formula The input data is stored. | |
TLinearFitter (Int_t ndim, const char *formula, Option_t *opt="D") | |
First parameter stands for number of dimensions in the fitting formula Second parameter is the fitting formula: see class description for formula syntax Options: The option is to store or not to store the data If you don't want to store the data, choose "" for the option, or run StoreData(kFalse) member function after the constructor. | |
TLinearFitter (TFormula *function, Option_t *opt="D") | |
This constructor uses a linear function. | |
~TLinearFitter () override | |
Linear fitter cleanup. | |
virtual void | Add (TLinearFitter *tlf) |
Add another linear fitter to this linear fitter. | |
virtual void | AddPoint (Double_t *x, Double_t y, Double_t e=1) |
Adds 1 point to the fitter. | |
virtual void | AddTempMatrices () |
virtual void | AssignData (Int_t npoints, Int_t xncols, Double_t *x, Double_t *y, Double_t *e=nullptr) |
This function is to use when you already have all the data in arrays and don't want to copy them into the fitter. | |
virtual void | Chisquare () |
Calculates the chisquare. | |
Double_t | Chisquare (Int_t, Double_t *) const override |
void | Clear (Option_t *option="") override |
Clears everything. Used in TH1::Fit and TGraph::Fit(). | |
virtual void | ClearPoints () |
To be used when different sets of points are fitted with the same formula. | |
virtual Int_t | Eval () |
Perform the fit and evaluate the parameters Returns 0 if the fit is ok, 1 if there are errors. | |
virtual Int_t | EvalRobust (Double_t h=-1) |
Finds the parameters of the fitted function in case data contains outliers. | |
Int_t | ExecuteCommand (const char *command, Double_t *args, Int_t nargs) override |
To use in TGraph::Fit and TH1::Fit(). | |
void | FixParameter (Int_t ipar) override |
Fixes paramter #ipar at its current value. | |
virtual void | FixParameter (Int_t ipar, Double_t parvalue) |
Fixes parameter #ipar at value parvalue . | |
virtual void | GetAtbVector (TVectorD &v) |
Get the Atb vector - a vector, used for internal computations. | |
virtual Double_t | GetChisquare () |
Get the Chisquare. | |
void | GetConfidenceIntervals (Int_t n, Int_t ndim, const Double_t *x, Double_t *ci, Double_t cl=0.95) override |
Computes point-by-point confidence intervals for the fitted function Parameters: n - number of points ndim - dimensions of points x - points, at which to compute the intervals, for ndim > 1 should be in order: (x0,y0, x1, y1, ... xn, yn) ci - computed intervals are returned in this array cl - confidence level, default=0.95. | |
void | GetConfidenceIntervals (TObject *obj, Double_t cl=0.95) override |
Computes confidence intervals at level cl. | |
Double_t * | GetCovarianceMatrix () const override |
Returns covariance matrix. | |
virtual void | GetCovarianceMatrix (TMatrixD &matr) |
Returns covariance matrix. | |
Double_t | GetCovarianceMatrixElement (Int_t i, Int_t j) const override |
virtual void | GetDesignMatrix (TMatrixD &matr) |
Returns the internal design matrix. | |
Int_t | GetErrors (Int_t, Double_t &, Double_t &, Double_t &, Double_t &) const override |
virtual void | GetErrors (TVectorD &vpar) |
Returns parameter errors. | |
virtual void | GetFitSample (TBits &bits) |
For robust lts fitting, returns the sample, on which the best fit was based. | |
virtual Int_t | GetNpoints () |
Int_t | GetNumberFreeParameters () const override |
Int_t | GetNumberTotalParameters () const override |
Double_t | GetParameter (Int_t ipar) const override |
Int_t | GetParameter (Int_t ipar, char *name, Double_t &value, Double_t &, Double_t &, Double_t &) const override |
Returns the value and the name of the parameter #ipar NB: In the calling function the argument name must be set large enough. | |
virtual void | GetParameters (TVectorD &vpar) |
Returns parameter values. | |
Double_t | GetParError (Int_t ipar) const override |
Returns the error of parameter #ipar | |
const char * | GetParName (Int_t ipar) const override |
Returns name of parameter #ipar | |
virtual Double_t | GetParSignificance (Int_t ipar) |
Returns the significance of parameter #ipar | |
virtual Double_t | GetParTValue (Int_t ipar) |
Returns the t-value for parameter #ipar | |
Int_t | GetStats (Double_t &, Double_t &, Double_t &, Int_t &, Int_t &) const override |
Double_t | GetSumLog (Int_t) override |
virtual Double_t | GetY2 () const |
TClass * | IsA () const override |
Bool_t | IsFixed (Int_t ipar) const override |
virtual Int_t | Merge (TCollection *list) |
Merge objects in list. | |
TLinearFitter & | operator= (const TLinearFitter &tlf) |
Assignment operator. | |
void | PrintResults (Int_t level, Double_t amin=0) const override |
Level = 3 (to be consistent with minuit) prints parameters and parameter errors. | |
void | ReleaseParameter (Int_t ipar) override |
Releases parameter #ipar . | |
virtual void | SetBasisFunctions (TObjArray *functions) |
set the basis functions in case the fitting function is not set directly The TLinearFitter will manage and delete the functions contained in the list | |
virtual void | SetDim (Int_t n) |
set the number of dimensions | |
void | SetFitMethod (const char *) override |
virtual void | SetFormula (const char *formula) |
Additive parts should be separated by "++". | |
virtual void | SetFormula (TFormula *function) |
Set the fitting function. | |
Int_t | SetParameter (Int_t, const char *, Double_t, Double_t, Double_t, Double_t) override |
virtual void | StoreData (Bool_t store) |
void | Streamer (TBuffer &) override |
Stream an object of class TObject. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual Bool_t | UpdateMatrix () |
Update the design matrix after the formula has been changed. | |
Public Member Functions inherited from TVirtualFitter | |
TVirtualFitter () | |
Default constructor. | |
~TVirtualFitter () override | |
Cleanup virtual fitter. | |
virtual FCNFunc_t | GetFCN () |
virtual Foption_t | GetFitOption () const |
TMethodCall * | GetMethodCall () const |
virtual TObject * | GetObjectFit () const |
virtual TObject * | GetUserFunc () const |
virtual Int_t | GetXfirst () const |
virtual Int_t | GetXlast () const |
virtual Int_t | GetYfirst () const |
virtual Int_t | GetYlast () const |
virtual Int_t | GetZfirst () const |
virtual Int_t | GetZlast () const |
TClass * | IsA () const override |
virtual Double_t * | SetCache (Int_t npoints, Int_t psize) |
Initialize the cache array npoints is the number of points to be stored (or already stored) in the cache psize is the number of elements per point. | |
virtual void | SetFCN (void(*fcn)(Int_t &, Double_t *, Double_t &f, Double_t *, Int_t)) |
To set the address of the minimization objective function called by the native compiler (see function below when called by CINT) | |
virtual void | SetFitOption (Foption_t option) |
virtual void | SetObjectFit (TObject *obj) |
virtual void | SetUserFunc (TObject *userfunc) |
virtual void | SetXfirst (Int_t first) |
virtual void | SetXlast (Int_t last) |
virtual void | SetYfirst (Int_t first) |
virtual void | SetYlast (Int_t last) |
virtual void | SetZfirst (Int_t first) |
virtual void | SetZlast (Int_t last) |
void | Streamer (TBuffer &) override |
Stream an object of class TObject. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TNamed destructor. | |
TObject * | Clone (const char *newname="") const override |
Make a clone of an object using the Streamer facility. | |
Int_t | Compare (const TObject *obj) const override |
Compare two TNamed objects. | |
void | Copy (TObject &named) const override |
Copy this to obj. | |
virtual void | FillBuffer (char *&buffer) |
Encode TNamed into output buffer. | |
const char * | GetName () const override |
Returns name of object. | |
const char * | GetTitle () const override |
Returns title of object. | |
ULong_t | Hash () const override |
Return hash value for this object. | |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
List TNamed name and title. | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. | |
void | Print (Option_t *option="") const override |
Print TNamed name and title. | |
virtual void | SetName (const char *name) |
Set the name of the TNamed. | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. | |
virtual Int_t | Sizeof () const |
Return size of the TNamed part of the TObject. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. | |
TObject (const TObject &object) | |
TObject copy ctor. | |
virtual | ~TObject () |
TObject destructor. | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. | |
virtual void | Delete (Option_t *option="") |
Delete this object. | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1) . | |
virtual void | Dump () const |
Dump contents of object on stdout. | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. | |
virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual const char * | GetIconName () const |
Returns mime type name of object. | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). | |
virtual Option_t * | GetOption () const |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. | |
void | InvertBit (UInt_t f) |
Bool_t | IsDestructed () const |
IsDestructed. | |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification (the base implementation is no-op). | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. | |
void | operator delete (void *ptr) |
Operator delete. | |
void | operator delete (void *ptr, void *vp) |
Only called by placement new when throwing an exception. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void | operator delete[] (void *ptr, void *vp) |
Only called by placement new[] when throwing an exception. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. | |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TVirtualFitter | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static TVirtualFitter * | Fitter (TObject *obj, Int_t maxpar=25) |
Static function returning a pointer to the current fitter. | |
static const char * | GetDefaultFitter () |
static: return the name of the default fitter | |
static Double_t | GetErrorDef () |
static: Return the Error Definition | |
static TVirtualFitter * | GetFitter () |
static: return the current Fitter | |
static Int_t | GetMaxIterations () |
static: Return the maximum number of iterations actually max number of function calls | |
static Double_t | GetPrecision () |
static: Return the fit relative precision | |
static void | SetDefaultFitter (const char *name="") |
static: set name of default fitter | |
static void | SetErrorDef (Double_t errdef=1) |
static: Set the Error Definition (default=1) For Minuit this is the value passed with the "SET ERR" command (see https://cern-tex.web.cern.ch/cern-tex/minuit/node18.html) | |
static void | SetFitter (TVirtualFitter *fitter, Int_t maxpar=25) |
Static function to set an alternative fitter. | |
static void | SetMaxIterations (Int_t niter=5000) |
static: Set the maximum number of function calls for the minimization algorithm For example for MIGRAD this is the maxcalls value passed as first argument (see https://cern-tex.web.cern.ch/cern-tex/minuit/node18.html ) | |
static void | SetPrecision (Double_t prec=1e-6) |
static: Set the tolerance used in the minimization algorithm For example for MIGRAD this is tolerance value passed as second argument (see https://cern-tex.web.cern.ch/cern-tex/minuit/node18.html ) | |
Static Public Member Functions inherited from TNamed | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Longptr_t | GetDtorOnly () |
Return destructor only flag. | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. | |
Private Member Functions | |
void | AddToDesign (Double_t *x, Double_t y, Double_t e) |
Add a point to the AtA matrix and to the Atb vector. | |
void | ComputeTValues () |
Computes parameters' t-values and significance. | |
void | CreateSubset (Int_t ntotal, Int_t h, Int_t *index) |
Creates a p-subset to start ntotal - total number of points from which the subset is chosen. | |
Double_t | CStep (Int_t step, Int_t h, Double_t *residuals, Int_t *index, Int_t *subdat, Int_t start, Int_t end) |
The CStep procedure, as described in the article. | |
Int_t | Graph2DLinearFitter (Double_t h) |
Minimisation function for a TGraph2D. | |
Int_t | GraphLinearFitter (Double_t h) |
Used in TGraph::Fit(). | |
Int_t | HistLinearFitter () |
Minimization function for H1s using a Chisquare method. | |
Bool_t | Linf () |
Int_t | MultiGraphLinearFitter (Double_t h) |
Minimisation function for a TMultiGraph. | |
Int_t | Partition (Int_t nmini, Int_t *indsubdat) |
divides the elements into approximately equal subgroups number of elements in each subgroup is stored in indsubdat number of subgroups is returned | |
void | RDraw (Int_t *subdat, Int_t *indsubdat) |
Draws ngroup nonoverlapping subdatasets out of a dataset of size n such that the selected case numbers are uniformly distributed from 1 to n. | |
Private Attributes | |
TVectorD | fAtb |
TVectorD | fAtbTemp |
TVectorD | fAtbTemp2 |
temporary vector, used for num.stability | |
TVectorD | fAtbTemp3 |
Double_t | fChisquare |
TMatrixDSym | fDesign |
TMatrixDSym | fDesignTemp |
TMatrixDSym | fDesignTemp2 |
temporary matrix, used for num.stability | |
TMatrixDSym | fDesignTemp3 |
TVectorD | fE |
TBits | fFitsample |
Bool_t * | fFixedParams |
char * | fFormula |
Int_t | fFormulaSize |
TObjArray | fFunctions |
map of basis functions and formula | |
Int_t | fH |
TFormula * | fInputFunction |
Bool_t | fIsSet |
Int_t | fNdim |
Int_t | fNfixed |
Int_t | fNfunctions |
Int_t | fNpoints |
temporary | |
TVectorD | fParams |
TMatrixDSym | fParCovar |
TVectorD | fParSign |
Bool_t | fRobust |
Int_t | fSpecial |
Bool_t | fStoreData |
TVectorD | fTValues |
Double_t | fVal [1000] |
TMatrixD | fX |
temporary variable used for num.stability | |
TVectorD | fY |
Double_t | fY2 |
Double_t | fY2Temp |
Static Private Attributes | |
static std::map< TString, TFormula * > | fgFormulaMap |
Additional Inherited Members | |
Public Types inherited from TVirtualFitter | |
typedef void(* | FCNFunc_t) (Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag) |
Public Types inherited from TObject | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) } |
enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) } |
enum | EStatusBits { kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) , kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 )) } |
Protected Types inherited from TObject | |
enum | { kOnlyPrepStep = (1ULL << ( 3 )) } |
Protected Member Functions inherited from TVirtualFitter | |
TVirtualFitter (const TVirtualFitter &tvf) | |
copy constructor | |
TVirtualFitter & | operator= (const TVirtualFitter &tvf) |
assignment operator | |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). | |
void | MakeZombie () |
Protected Attributes inherited from TVirtualFitter | |
Double_t * | fCache |
[fCacheSize] Array of points data (fNpoints*fPointSize < fCacheSize words) | |
Int_t | fCacheSize |
Size of the fCache array. | |
void(* | fFCN )(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag) |
TMethodCall * | fMethodCall |
Pointer to MethodCall in case of interpreted function. | |
Int_t | fNpoints |
Number of points to fit. | |
TObject * | fObjectFit |
Pointer to object being fitted. | |
Foption_t | fOption |
Struct with the fit options. | |
Int_t | fPointSize |
Number of words per point in the cache. | |
TObject * | fUserFunc |
Pointer to user theoretical function (a TF1*) | |
Int_t | fXfirst |
First bin on X axis. | |
Int_t | fXlast |
Last bin on X axis. | |
Int_t | fYfirst |
First bin on Y axis. | |
Int_t | fYlast |
Last bin on Y axis. | |
Int_t | fZfirst |
First bin on Z axis. | |
Int_t | fZlast |
Last bin on Z axis. | |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
#include <TLinearFitter.h>
TLinearFitter::TLinearFitter | ( | ) |
default c-tor, input data is stored If you don't want to store the input data, run the function StoreData(kFALSE) after constructor
Definition at line 228 of file TLinearFitter.cxx.
First parameter stands for number of dimensions in the fitting formula Second parameter is the fitting formula: see class description for formula syntax Options: The option is to store or not to store the data If you don't want to store the data, choose "" for the option, or run StoreData(kFalse) member function after the constructor.
Definition at line 283 of file TLinearFitter.cxx.
TLinearFitter::TLinearFitter | ( | Int_t | ndim | ) |
The parameter stands for number of dimensions in the fitting formula The input data is stored.
If you don't want to store the input data, run the function StoreData(kFALSE) after constructor
Definition at line 254 of file TLinearFitter.cxx.
This constructor uses a linear function.
How to create it? TFormula now accepts formulas of the following kind: TFormula("f", "x++y++z++x*x") or TFormula("f", "x[0]++x[1]++x[2]*x[2]"); Other than the look, it's in no way different from the regular formula, it can be evaluated, drawn, etc. The option is to store or not to store the data If you don't want to store the data, choose "" for the option, or run StoreData(kFalse) member function after the constructor
Definition at line 316 of file TLinearFitter.cxx.
TLinearFitter::TLinearFitter | ( | const TLinearFitter & | tlf | ) |
Copy ctor.
Definition at line 349 of file TLinearFitter.cxx.
|
override |
Linear fitter cleanup.
Definition at line 405 of file TLinearFitter.cxx.
|
virtual |
Add another linear fitter to this linear fitter.
Points and Design matrices are added, but the previous fitting results (if any) are deleted. Fitters must have same formulas (this is not checked). Fixed parameters are not changed
Definition at line 496 of file TLinearFitter.cxx.
Adds 1 point to the fitter.
First parameter stands for the coordinates of the point, where the function is measured Second parameter - the value being fitted Third parameter - weight(measurement error) of this point (=1 by default)
Definition at line 545 of file TLinearFitter.cxx.
|
virtual |
Definition at line 707 of file TLinearFitter.cxx.
Add a point to the AtA matrix and to the Atb vector.
Definition at line 621 of file TLinearFitter.cxx.
|
virtual |
This function is to use when you already have all the data in arrays and don't want to copy them into the fitter.
In this function, the Use() method of TVectorD and TMatrixD is used, so no bytes are physically moved around. First parameter - number of points to fit Second parameter - number of variables in the model Third parameter - the variables of the model, stored in the following way: (x0(0), x1(0), x2(0), x3(0), x0(1), x1(1), x2(1), x3(1),...
Definition at line 583 of file TLinearFitter.cxx.
|
virtual |
Calculates the chisquare.
Definition at line 797 of file TLinearFitter.cxx.
Implements TVirtualFitter.
Definition at line 269 of file TLinearFitter.h.
|
static |
|
inlinestaticconstexpr |
Definition at line 277 of file TLinearFitter.h.
|
overridevirtual |
Clears everything. Used in TH1::Fit and TGraph::Fit().
Implements TVirtualFitter.
Definition at line 731 of file TLinearFitter.cxx.
|
virtual |
To be used when different sets of points are fitted with the same formula.
Definition at line 771 of file TLinearFitter.cxx.
|
private |
Computes parameters' t-values and significance.
Definition at line 862 of file TLinearFitter.cxx.
Creates a p-subset to start ntotal - total number of points from which the subset is chosen.
Definition at line 2291 of file TLinearFitter.cxx.
|
private |
The CStep procedure, as described in the article.
Definition at line 2354 of file TLinearFitter.cxx.
|
inlinestatic |
Definition at line 277 of file TLinearFitter.h.
|
virtual |
Perform the fit and evaluate the parameters Returns 0 if the fit is ok, 1 if there are errors.
Definition at line 874 of file TLinearFitter.cxx.
Finds the parameters of the fitted function in case data contains outliers.
Parameter h stands for the minimal fraction of good points in the dataset (h < 1, i.e. for 70% of good points take h=0.7). The default value of h*Npoints is (Npoints + Nparameters+1)/2 If the user provides a value of h smaller than above, default is taken See class description for the algorithm details
Definition at line 2095 of file TLinearFitter.cxx.
|
overridevirtual |
To use in TGraph::Fit and TH1::Fit().
Implements TVirtualFitter.
Definition at line 1724 of file TLinearFitter.cxx.
|
overridevirtual |
Fixes paramter #ipar
at its current value.
Implements TVirtualFitter.
Definition at line 1001 of file TLinearFitter.cxx.
Fixes parameter #ipar
at value parvalue
.
Definition at line 1024 of file TLinearFitter.cxx.
|
virtual |
Get the Atb vector - a vector, used for internal computations.
Definition at line 1064 of file TLinearFitter.cxx.
|
virtual |
Get the Chisquare.
Definition at line 1074 of file TLinearFitter.cxx.
|
overridevirtual |
Computes point-by-point confidence intervals for the fitted function Parameters: n - number of points ndim - dimensions of points x - points, at which to compute the intervals, for ndim > 1 should be in order: (x0,y0, x1, y1, ... xn, yn) ci - computed intervals are returned in this array cl - confidence level, default=0.95.
NOTE, that this method can only be used when the fitting function inherits from a TF1, so it's not possible when the fitting function was set as a string or as a pure TFormula
Reimplemented from TVirtualFitter.
Definition at line 1097 of file TLinearFitter.cxx.
Computes confidence intervals at level cl.
Default is 0.95 The TObject parameter can be a TGraphErrors, a TGraph2DErrors or a TH123. For Graphs, confidence intervals are computed for each point, the value of the graph at that point is set to the function value at that point, and the graph y-errors (or z-errors) are set to the value of the confidence interval at that point For Histograms, confidence intervals are computed for each bin center The bin content of this bin is then set to the function value at the bin center, and the bin error is set to the confidence interval value. Allowed combinations: Fitted object Passed object TGraph TGraphErrors, TH1 TGraphErrors, AsymmErrors TGraphErrors, TH1 TH1 TGraphErrors, TH1 TGraph2D TGraph2DErrors, TH2 TGraph2DErrors TGraph2DErrors, TH2 TH2 TGraph2DErrors, TH2 TH3 TH3
Reimplemented from TVirtualFitter.
Definition at line 1148 of file TLinearFitter.cxx.
|
overridevirtual |
Returns covariance matrix.
Implements TVirtualFitter.
Definition at line 1297 of file TLinearFitter.cxx.
|
virtual |
Returns covariance matrix.
Definition at line 1306 of file TLinearFitter.cxx.
Implements TVirtualFitter.
Definition at line 241 of file TLinearFitter.h.
|
virtual |
Returns the internal design matrix.
Definition at line 1317 of file TLinearFitter.cxx.
|
inlineoverridevirtual |
Implements TVirtualFitter.
Definition at line 270 of file TLinearFitter.h.
|
virtual |
Returns parameter errors.
Definition at line 1328 of file TLinearFitter.cxx.
|
virtual |
For robust lts fitting, returns the sample, on which the best fit was based.
Definition at line 1427 of file TLinearFitter.cxx.
|
inlinevirtual |
Definition at line 246 of file TLinearFitter.h.
|
inlineoverridevirtual |
Implements TVirtualFitter.
Definition at line 245 of file TLinearFitter.h.
|
inlineoverridevirtual |
Implements TVirtualFitter.
Definition at line 244 of file TLinearFitter.h.
Implements TVirtualFitter.
Definition at line 248 of file TLinearFitter.h.
|
overridevirtual |
Returns the value and the name of the parameter #ipar
NB: In the calling function the argument name must be set large enough.
Implements TVirtualFitter.
Definition at line 1353 of file TLinearFitter.cxx.
|
virtual |
Returns parameter values.
Definition at line 1341 of file TLinearFitter.cxx.
Returns the error of parameter #ipar
Implements TVirtualFitter.
Definition at line 1371 of file TLinearFitter.cxx.
|
overridevirtual |
Returns name of parameter #ipar
Implements TVirtualFitter.
Definition at line 1385 of file TLinearFitter.cxx.
Returns the significance of parameter #ipar
Definition at line 1413 of file TLinearFitter.cxx.
Returns the t-value for parameter #ipar
Definition at line 1399 of file TLinearFitter.cxx.
|
inlineoverridevirtual |
Implements TVirtualFitter.
Definition at line 272 of file TLinearFitter.h.
Implements TVirtualFitter.
Definition at line 273 of file TLinearFitter.h.
|
inlinevirtual |
Definition at line 255 of file TLinearFitter.h.
Minimisation function for a TGraph2D.
Definition at line 1830 of file TLinearFitter.cxx.
Used in TGraph::Fit().
Definition at line 1768 of file TLinearFitter.cxx.
|
private |
Minimization function for H1s using a Chisquare method.
Definition at line 1974 of file TLinearFitter.cxx.
|
inlineoverridevirtual |
Reimplemented from TObject.
Definition at line 277 of file TLinearFitter.h.
Implements TVirtualFitter.
Definition at line 256 of file TLinearFitter.h.
|
private |
Definition at line 2515 of file TLinearFitter.cxx.
|
virtual |
Merge objects in list.
Definition at line 1441 of file TLinearFitter.cxx.
Minimisation function for a TMultiGraph.
Definition at line 1903 of file TLinearFitter.cxx.
TLinearFitter & TLinearFitter::operator= | ( | const TLinearFitter & | tlf | ) |
Assignment operator.
Definition at line 425 of file TLinearFitter.cxx.
divides the elements into approximately equal subgroups number of elements in each subgroup is stored in indsubdat number of subgroups is returned
Definition at line 2554 of file TLinearFitter.cxx.
Level = 3 (to be consistent with minuit) prints parameters and parameter errors.
Implements TVirtualFitter.
Definition at line 1748 of file TLinearFitter.cxx.
Draws ngroup nonoverlapping subdatasets out of a dataset of size n such that the selected case numbers are uniformly distributed from 1 to n.
Definition at line 2606 of file TLinearFitter.cxx.
|
overridevirtual |
Releases parameter #ipar
.
Implements TVirtualFitter.
Definition at line 1046 of file TLinearFitter.cxx.
|
virtual |
set the basis functions in case the fitting function is not set directly The TLinearFitter will manage and delete the functions contained in the list
Definition at line 1460 of file TLinearFitter.cxx.
|
virtual |
set the number of dimensions
Definition at line 1500 of file TLinearFitter.cxx.
|
inlineoverridevirtual |
Implements TVirtualFitter.
Definition at line 274 of file TLinearFitter.h.
|
virtual |
Additive parts should be separated by "++".
Examples (ai are parameters to fit): 1.fitting function: a0*x0 + a1*x1 + a2*x2 input formula "x[0]++x[1]++x[2]" 2.TMath functions can be used: fitting function: a0*TMath::Gaus(x, 0, 1) + a1*y input formula: "TMath::Gaus(x, 0, 1)++y" fills the array of functions
Definition at line 1521 of file TLinearFitter.cxx.
|
virtual |
Set the fitting function.
Definition at line 1642 of file TLinearFitter.cxx.
|
inlineoverridevirtual |
Implements TVirtualFitter.
Definition at line 275 of file TLinearFitter.h.
|
inlinevirtual |
Definition at line 264 of file TLinearFitter.h.
|
overridevirtual |
Stream an object of class TObject.
Reimplemented from TObject.
Definition at line 2065 of file TLinearFitter.cxx.
|
inline |
Definition at line 277 of file TLinearFitter.h.
|
virtual |
Update the design matrix after the formula has been changed.
Definition at line 1709 of file TLinearFitter.cxx.
|
private |
Definition at line 165 of file TLinearFitter.h.
|
private |
Definition at line 166 of file TLinearFitter.h.
|
private |
temporary vector, used for num.stability
Definition at line 167 of file TLinearFitter.h.
|
private |
Definition at line 168 of file TLinearFitter.h.
|
private |
Definition at line 190 of file TLinearFitter.h.
|
private |
Definition at line 160 of file TLinearFitter.h.
|
private |
Definition at line 161 of file TLinearFitter.h.
|
private |
temporary matrix, used for num.stability
Definition at line 162 of file TLinearFitter.h.
|
private |
Definition at line 163 of file TLinearFitter.h.
|
private |
Definition at line 176 of file TLinearFitter.h.
|
private |
Definition at line 194 of file TLinearFitter.h.
|
private |
Definition at line 196 of file TLinearFitter.h.
|
private |
Definition at line 187 of file TLinearFitter.h.
|
private |
Definition at line 182 of file TLinearFitter.h.
|
private |
map of basis functions and formula
Definition at line 171 of file TLinearFitter.h.
Definition at line 170 of file TLinearFitter.h.
|
private |
Definition at line 192 of file TLinearFitter.h.
|
private |
Definition at line 177 of file TLinearFitter.h.
|
private |
Definition at line 188 of file TLinearFitter.h.
|
private |
Definition at line 183 of file TLinearFitter.h.
|
private |
Definition at line 184 of file TLinearFitter.h.
|
private |
Definition at line 181 of file TLinearFitter.h.
|
private |
temporary
Definition at line 180 of file TLinearFitter.h.
|
private |
Definition at line 156 of file TLinearFitter.h.
|
private |
Definition at line 157 of file TLinearFitter.h.
|
private |
Definition at line 159 of file TLinearFitter.h.
|
private |
Definition at line 193 of file TLinearFitter.h.
|
private |
Definition at line 185 of file TLinearFitter.h.
|
private |
Definition at line 189 of file TLinearFitter.h.
|
private |
Definition at line 158 of file TLinearFitter.h.
|
private |
Definition at line 178 of file TLinearFitter.h.
|
private |
temporary variable used for num.stability
Definition at line 175 of file TLinearFitter.h.
|
private |
Definition at line 172 of file TLinearFitter.h.
|
private |
Definition at line 173 of file TLinearFitter.h.
|
private |
Definition at line 174 of file TLinearFitter.h.