Re: [ROOT] Fitting problems

From: Emily Nurse (emily@hep.man.ac.uk)
Date: Fri Apr 19 2002 - 20:20:37 MEST


Hi Rene,

I am fitting a user defined function (just the bin content from a
histogramme as a function of x-axis) to data points. I want to do it
without changing the normalisation scale how-ever when I use the option
"w" my chisquared value is too large. I have checked by getting the
integral of my function before and after fitting without the "w" option so
as to get the normalisation constant. I then weight my function by the
ratio of these integrals and then make a fit with the "w" option. My
chisquared value is nearly a factor 10 higher when really it should be the
same. Can you explain?
Cheers,
Emily.


On Fri, 15 Mar 2002, Rene Brun wrote:

> Hi Emily,
>
>
>
> On Thu, 14 Mar 2002, Emily Nurse wrote:
>
> > Hello,
> > I have a couple of questions involving the Fit function.
> > Firstly when I use it it normalises my user defined function for me to
> > give the loest possible chisquared value when fitted to my data points. I
> > was wandering if I could switch this action off and just get a straight
> > forward chisquared value as I will be fitting different ranges seperately
> > that need to be normalised by the same amount even though this may not
> > give the lowest chi-squared value.
>
> If you use the fit option "w" (all weights equal to 1), you should obtain
> what you want.
>
> >
> Secondly I am getting an error message when I run my macro which includes
> > the function:
> >
> >  Double_t norm ( Double_t *x, Double_t *par)
> >             {
> > 	    Double_t xx=x[0];
> >             Int_t bin = w_pte1->GetXaxis()->FindBin(xx);
> >             return par[0]*(w_pte1->GetBinContent(bin));
> >             }
> >
> > (where w_pte1 is a TH1D object). Then at the root prompt I type:
>
> But where do you define it ?
> If the code above is in a macro, declare your TH1D object as global.
>
> Rene Brun
>
> >
> > root [3] TF1 *f1 = new TF1("norm",norm,0.,50.,1)
> > root [5] f1->SetParameter(0,1)
> > root [6] f1->Draw()
> > <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> > Error: non class,struct,union object $w_pte1 used with . or ->Error: non
> > class,struct,union object $w_pte1 used with . or ->Error: non
> > class,struct,union object $w_pte1 used with . or ->root [7]
> >
> > Things do seem to work but I was wandering what I was doing wrong,
> > thanks for your help,
> > Emily.
> >
>



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:50 MET