Log of /trunk/math/minuit/src/TFitter.cxx
Parent Directory
Revision
47641 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 27 09:59:40 2012 UTC (2 years, 1 month ago) by
moneta
File length: 38693 byte(s)
Diff to
previous 34952
Fix integration classes to use both a relative or n absolute accuracy
as requested in https://savannah.cern.ch/bugs/?70853
Improve TF1::Integral to add the precision parameter.
Add a TF1::IntegralOneDim where one can specify both epsrel and epsabs and it returns also the error
Clean up the TF1::Integral class to fix some ambiguities
Remove the possibility to pass vector of parameters in Tf1::Integral
remove obsolate file minuit2/src/FitterUtil.cxx
Revision
23843 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 14 13:16:06 2008 UTC (6 years, 8 months ago) by
brun
File length: 38487 byte(s)
Diff to
previous 22885
Do not call GetSumLog with arguments greater than 10000 but
call TMath::LnGamma instead, otherwise we can explode memory
when fitting histograms with big bin contents with the Likelihood option.
Revision
22885 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 28 13:57:25 2008 UTC (6 years, 9 months ago) by
rdm
File length: 38349 byte(s)
Diff to
previous 21713
move the following directories under the new "math" meta directory:
mathcore
mathmore
fftw
foam
fumili
genvector
matrix
minuit
minuit2
mlp
physics
smatrix
splot
unuran
quadp
Revision
16279 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 15 15:16:57 2006 UTC (8 years, 4 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 38278 byte(s)
Diff to
previous 15830
From Anna:
- TFormula::EvalPar() is not changing parameters (the fParams data member) when a user passes his own uparams array as a second argument. Before - sometimes it did, sometimes it didn't.
- TF1::GradientPar() is now 0 on fixed parameters
- TFitter::GetConfidenceIntervals() is now taking the fixed parameters into account
- TLinearFitter::GetConfidenceIntervals() is now taking the fixed parameters into account
- TLinearFitter::FixParameter() can now be called before a first fit is performed (an accidently found bug :))
- TLinearFitter::Eval() now returns 1 if there are errors in the fit. According changes in:
--TH1
--TGraph
--TGraph2D
--TMultiGraph
Revision
13399 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 29 14:43:59 2005 UTC (9 years, 1 month ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 36697 byte(s)
Diff to
previous 13367
From Anna:
Implement new functions in the TVirtualFitter and corresponding
implementations to compute the confidence intervals.
Two kinds of interfaces are implemented, eg
void TFitter::GetConfidenceIntervals(Int_t n, Int_t ndim, Double_t *x, Double_t *ci, Double_t cl)
//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 the intervals are approximate for nonlinear(in parameters) models
void TFitter::GetConfidenceIntervals(TObject *obj, Double_t cl)
//Computes confidence intervals at level cl. Default is 0.95
//The TObject parameter can be a TGraphErrors, a TGraph2DErrors or a TH1,2,3.
//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.
//NOTE: confidence intervals are approximate for nonlinear models!
//
//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
Revision
13364 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Nov 26 15:03:07 2005 UTC (9 years, 1 month ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 28745 byte(s)
Diff to
previous 13298
Implement a cache facility in TVirtualFitter.
The class has a new function TVirtualFitter::SetCache that creates
an internal structure where the information about histogram bins
is stored (bin position, size, content and error).
The cache is used during fitting and speeds up (factor 2) TH1::Fit
when called with the default TMinuit. Only the points included in
the fit are stored in the cache.
Currently the cache is set and filled only in TH1::Fit.
The TFitter and TFumili classes have been changed to take into account
the information in the cache.
The free functions called by Minuit have been rewritten.
They are now only an interface calling the fitter member functions.
Revision
13298 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 21 09:47:20 2005 UTC (9 years, 2 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 25442 byte(s)
Diff to
previous 13107
From Anna:
Implement new functions in TF2 and TF3 to find the minimum of a function.
void TF2::GetMinimumXY(Double_t &x, Double_t &y)
{
// return the X and Y values corresponding to the minimum value of the function
// To find the minimum on a range, first set this range via the SetRange function
// Method:
// First, a grid search is performed to find the initial estimate of the
// minimum location. The range of the function is divided into fNpx and fNpy
// sub-ranges. If the function is "good"(or "bad"), these values can be changed
// by SetNpx and SetNpy functions
// Then, Minuit minimization is used with starting values found by the grid search
void TF3::GetMinimumXYZ(Double_t &x, Double_t &y, Double_t &z)
{
// Return the X, Y and Z values corresponding to the minimum value of the function
// on its range. To find the minimum on a subrange, use the SetRange() function first.
// Method:
// First, a grid search is performed to find the initial estimate of the
// minimum location. The range of the function is divided
// into fNpx,fNpy and fNpz sub-ranges. If the function is "good"(or "bad"),
// these values can be changed by SetNpx(), SetNpy() and SetNpz() functions.
// Then, Minuit minimization is used with starting values found by the grid search
Revision
11251 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 7 09:15:45 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 23127 byte(s)
Diff to
previous 11226
For back compatibility change names of some recently introduced functions.
virtual Double_t GetErrorXhigh(Int_t bin) const;
virtual Double_t GetErrorXlow(Int_t bin) const;
virtual Double_t GetErrorYhigh(Int_t bin) const;
virtual Double_t GetErrorYlow(Int_t bin) const;
virtual Double_t *GetEXhigh() const
virtual Double_t *GetEXlow() const
virtual Double_t *GetEYhigh() const
virtual Double_t *GetEYlow() const
Revision
11226 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 4 09:06:37 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 23111 byte(s)
Diff to
previous 11027
From Anna Kreshuk:
- TLinearFitter class: Linear fitter is used to fit a set of data points with a linear
combination of specified functions (with or without weights). The "linear" in the name
stands for "linear in parameters", not variables. The main advantages,
compared to a general non-linear fitter, is that the linear fitter is considerably
faster and doesn't require setting the initial values of parameters.
The linear fitter can be used directly or through TH1::Fit and TGraph::Fit functions
When it's used directly, functions of more than 3 dimensions can be fitted.
- TFormula: a new data member fLinearParts and methods to process it are added. Now
one can create a function of the type that can be fit by the linear fitter.
Example: TFormula f("f", "x++sin(x)") is equivalent to
TFormula f("f","[0]*x + [1]*sin(x)"), but if a TH1::Fit or a TGraph::Fit is performed
with the 1st formula, it goes through the linear fitter, if it's performed with the
2nd formula, it goes through Minuit.
- TMultiGraph class: the Fit method is implemented, allowing to fit all the graphs
of a multigraph simultaneously
- TGraph, TGraphErrors, TGraphAsymmErrors, TGraphBentErrors - functions GetEXhigh(),
GetEXlow(), GetEYhigh(), GetEYlow() implemented to simplify the GraphFitChisquare()
function of the TFitter class
- TH1, TGraph, TGraph2D, TMultiGraph - changes in the Fit functions, allowing to use
the linear fitter. Fitting with "polN" functions redirected to use the linear fitter,
in cases where no options, except "range", are specified.
Revision
10397 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 22 21:18:23 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 21260 byte(s)
Diff to
previous 10391
In TVirtualFitter, TFitter and TFumili, rename the recently introduced
function GetNpar to GetNumberTotalParameters to avoid a possible confusion
with the member fNpar in TMinuit that contains the number of free parameters.
Revision
10201 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 4 16:04:53 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 20418 byte(s)
Diff to
previous 9775
In TFitter::Clear, reset the internal TMinuit random number generator mnrn15
to its initial value. mnrn15 may be used when TMinuit "Improve" is called.
Resetting the random number generator gives identical results between consecutive
identical fits.
Revision
9774 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 18 07:16:34 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 20262 byte(s)
Diff to
previous 9608
Fix a problem in TF1 function GraphFitChisquare when fitting TGraphErrors with errors in x defined.
The inner loop was calling TF1::Derivative that redefines (via TF1::InitArgs) the
address of the argument x. The solution was to move the call to InitArgs
inside the loop.
Revision
9608 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 28 08:02:04 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 20147 byte(s)
Diff to
previous 9469
In TVirtualFitter make the following functions const
Double_t Chisquare(Int_t npar, Double_t *params) const = 0;
Double_t *GetCovarianceMatrix() const = 0;
Int_t GetErrors(Int_t ipar,Double_t &eplus, Double_t &eminus, Double_t &eparab, Double_t &globcc) const = 0;
Int_t GetParameter(Int_t ipar,char *name,Double_t &value,Double_t &verr,Double_t &vlow, Double_t &vhigh) const = 0;
Int_t GetStats(Double_t &amin, Double_t &edm, Double_t &errdef, Int_t &nvpar, Int_t &nparx) const = 0;
Add a new function
Double_t GetCovarianceMatrixElement(Int_t i, Int_t j) const;
Similar changes in TFitter and TFumili.
Revision
9407 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jul 6 14:48:42 2004 UTC (10 years, 6 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 18775 byte(s)
Diff to
previous 8140
Improvement in TGraph::Fit:
a little different approach to approximating the uncertainty in y because of the
errors in x, is to make it equal the error in x times the slope of the line.
The improvement, compared to the first method (f(x+ exhigh) - f(x-exlow))/2
is of (error of x)**2 order. This approach is called "effective variance method".
This improvement has been made in version 4.00/08 by Anna Kreshuk.
Revision
7525 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 5 17:34:38 2003 UTC (11 years, 2 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 17550 byte(s)
Diff to
previous 7298
From Olivier:
In Graph2D:
- A more complete example (fitting)
- Constructor from a file name
- New method Interpolate
- New method FindObject
- Fitting
- New method GetHistogram.
- New method RemovePoint
- New methods SetMaximum and SetMinimum
- plus many improvements ...
In TFitter:
- Necessary changes to support Graph2D fitting
Revision
7298 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 19 07:56:29 2003 UTC (11 years, 4 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 15428 byte(s)
Diff to
previous 7067
In GraphFitChisquare, use the same array "x" for all calls to TF1::EvalPar
instead of the array "xx" for the two points surrounding the main point.
In case of a CINT function, one should have initialized again teh address of
the arguments, but this is not necessary. The array "x" may be reused inside the loop.
The effect was a slightly different result between compiled and interpreted code
in case of TGraph. (thanks Alex Conley for reporting the problem)
Revision
6540 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon May 5 16:38:48 2003 UTC (11 years, 8 months ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 14405 byte(s)
Diff to
previous 6247
Many changes in the class to accomodate the changes in TVirtualFitter.
The objective functions H1FitChisquare and H1FitLikelihood previously in TH1
or TGraph have been moved to TFitter.
The global variables communicating with TH1 or TGraph have been replaced
by the functions in TVirtualFitter.
Revision
1205 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by
brun
Original Path:
trunk/minuit/src/TFitter.cxx
File length: 6076 byte(s)
Diff to
previous 3
W A R N I N G !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
virtual TObject *Clone() const;
virtual Int_t Compare(const TObject *obj) const;
virtual void Delete(Option_t *option=""); // *MENU*
virtual void DrawClass() const; // *MENU*
virtual void DrawClone(Option_t *option="") const; // *MENU*
virtual void Dump() const; // *MENU*
virtual TObject *FindObject(const TObject *obj) const;
virtual char *GetObjectInfo(Int_t px, Int_t py) const;
virtual ULong_t Hash() const;
virtual void Inspect() const; // *MENU*
virtual Bool_t IsEqual(const TObject *obj) const;
virtual void ls(Option_t *option="") const;
virtual void Print(Option_t *option="") const;
A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.