How to solve error matrix uncertainty

Hello!

I’m fitting 200 histograms with MINUIT using MIGRAD algorithm. The functions to fit are gaussians, and the problem is that 84 of the 200 histograms have error matrix uncertainty.

Anyone knows where can be the problem? How to solve it? How to improve these results?

Thanks and bye!

Hi,

what do you mean that 84 histograms have error matrix uncertainty ?
Each time the fit produces an error matrix, which represents the error in your fit parameters. You maybe have 84 times the filt failing ?
In that case you can try, either to specify better input parameters to the fit or try with the improve option (“M” in TH1::Fit ),

see root.cern.ch/root/html/src/TH1.cxx.html#g3ZnxB

Best Regards,

Lorenzo

No, the problem is that the fits converge using MIGRAD, but there is ERROR MATRIX UNCERTAINTY message, not ERROR MATRIX ACCURATE. And I want to obtain ERROR MATRIX ACCURATE with all the fits I do.

The code lines I use are (in a method of a class):

para[0]=almy::seed1(data);
para[1]=almy::seed2(data);
para[2]=1.0;
// para[3]=almy::seed1(data)/10000;
// para[4]=3.0;
step[0]=0.001;
step[1]=0.001;
step[2]=0.001;
// step[3]=0.001;
// step[4]=0.001;

Int_t ierflg=0;
Double_t arglist[2];
TMinuit *min=new TMinuit(3);
min->SetFCN(fcn);
min->mnexcm(“SET ERR”, arglist ,1,ierflg);
min->mnparm(0,“cte1x”,para[0],step[0],0,0,ierflg); //Faltan los flags
min->mnparm(1,“mediax”,para[1],step[1],0,0,ierflg);
min->mnparm(2,“sigmax”,para[2],step[2],0,0,ierflg);

arglist[0]=2500;
arglist[1]=1.0;
min->mnexcm(“MIGRAD”,arglist,2,ierflg);
min->mnpout(0,“cte1x”,fnorm,efnorm,0.,0.,0);
min->mnpout(1,“mediax”,mu,emu,0.,0.,1);
min->mnpout(2,“sigma1x”,sigma,esigma,0.,0.,2);


The fcn is a typical chi square function:

Double_t chisq = 0;
Double_t delta;
for (Int_t i=indice-b;i<indice+c;i++) {

delta  = (Intensidad[i]-(almy::func(tiras[i],par)))/sigma[i]; 

if(Intensidad[i]==-8888.0){

  delta=0;

}//if

chisq += delta*delta;

}//for

f=chisq;


Hi,

you should probably call at least HESSE after MIGRAD and/or increase your strategy to 2. In same case the best solution is to use MINOS.
See for example the Minuit doc at:

wwwasdoc.web.cern.ch/wwwasdoc/minuit/node32.html

Best Regards,

Lorenzo