Re: [ROOT] Problems in fitting histograms

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Feb 13 2001 - 10:30:41 MET


Hi,

Thanks for reporting this interesting problem with fitting.
The problem appears only with the Log likelihood method.
I have fixed the problem in TFitter::GetSumLog in the development version
in CVS. The fix will be part of 3.00/05.

Rene Brun

Altenburg wrote:
> 
> // Hi all,
> 
> // i think i've got a problem in fitting histograms.
> // I 've fitted a histogram interactively using a third order polynom.
> 
> root [0] TFile *hist = new TFile("histos.root")
> root [1] TF1 *Back2 = new
> TF1("Back2","[0]+[1]*x+[2]*x*x+[3]*x*x*x",0.4,0.7)
> root [2] Back2->SetParameters(300.,-100.,150.,10.)
> root [3] ContEta2->Fit("Back2","RL")
> 
>  FCN=-32092.9 FROM MIGRAD    STATUS=CONVERGED     272 CALLS         273
> TOTAL
>                      EDM=4.73204e-08    STRATEGY= 1      ERROR MATRIX
> ACCURATE
>   EXT PARAMETER                                   STEP         FIRST
>   NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE
>    1  p0          -1.46319e+04   6.90699e+01   3.44556e-01  -7.34782e-05
> 
>    2  p1           9.80068e+04   2.12779e+02   5.88180e-01  -4.20585e-05
> 
>    3  p2          -1.80068e+05   3.29361e+02   9.65728e-01  -2.48735e-05
> 
>    4  p3           1.02277e+05   3.37668e+02   1.54092e+00  -1.52108e-05
> 
> root [4] .q
> 
> // Then i've started a new session and fitted another histo.
> 
> root [0] TFile *hist = new TFile("histos.root")
> root [1] TF1 *Back1 = new
> TF1("Back1","[0]+[1]*x+[2]*x*x+[3]*x*x*x",0.4,0.7)
> root [2] Back1->SetParameters(300.,-100.,150.,10.)
> root [3] ContEta1->Fit("Back1","RL")
> 
> FCN=-22590.4 FROM MIGRAD    STATUS=CONVERGED     265 CALLS         266
> TOTAL
>                      EDM=7.3406e-09    STRATEGY= 1      ERROR MATRIX
> ACCURATE
>   EXT PARAMETER                                   STEP         FIRST
>   NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE
>    1  p0          -5.82500e+03   5.45431e+01   2.32862e-01  -3.24646e-05
> 
>    2  p1           4.76081e+04   1.65389e+02   3.94822e-01  -1.73923e-05
> 
>    3  p2          -9.38529e+04   2.53567e+02   6.45203e-01  -9.44618e-06
> 
>    4  p3           5.53770e+04   2.62867e+02   1.02632e+00  -5.23026e-06
> 
> root [4] TF1 *Back2 = new
> TF1("Back2","[0]+[1]*x+[2]*x*x+[3]*x*x*x",0.4,0.7)
> root [5] Back2->SetParameters(300.,-100.,150.,10.)
> root [6] ContEta2->Fit("Back2","RL")
> 
> FCN=-1.60236e+06 FROM MIGRAD    STATUS=CONVERGED     301 CALLS
> 302
> TOTAL
>                      EDM=2.28043e-06    STRATEGY= 1      ERROR MATRIX
> ACCURATE
>   EXT PARAMETER                                   STEP         FIRST
>   NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE
>    1  p0          -1.46317e+04   3.17154e+01   2.43464e+00   5.26951e-04
> 
>    2  p1           9.80057e+04   8.68069e+01   4.15614e+00   3.15050e-04
> 
>    3  p2          -1.80066e+05   1.28650e+02   6.82403e+00   1.92549e-04
> 
>    4  p3           1.02276e+05   1.49180e+02   1.08886e+01   1.19699e-04
> 
> // As you can see the parameters for ContEta2 are not equal. Note , i've
> used
> // the same histogram, fit-function, start parameters and range.
> // I've also tried to set the errors via "SetParError", but it didn't
> solve the
> // problem.
> 
> // I'm waiting for reply.
> // Thanks.
> 
>   --------------------------------------------------------------------------------
> 
>                      Name: histos.root
>    histos.root       Type: unspecified type (application/octet-stream)
>                  Encoding: base64



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:36 MET