[ROOT] Functions and fits

From: Patois Yannick (patois@ganil.fr)
Date: Fri May 05 2000 - 20:00:12 MEST


Hello rooters,

I probably didnt fully understood how one declare functions and fit with
it.

Having to fit several gaussian spectra, I defined the following
function (simplified) :

void fit_on_mean(TH1 *t,int half_width,int right_shift=0)
{
  int binm=t->FindBin(t->GetMean());
  double xmin =
t->GetXaxis()->GetBinCenter(binm-half_width+right_shift);
  double xmax =
t->GetXaxis()->GetBinCenter(binm+half_width+right_shift);

  TF1 *f1= new TF1("f1","gaus",xmin,xmax);
  t->Fit("f1","RQ");
}

There's a thing I dont fully understand : why does is (seems to) work ?
The appropriate "f1" function 'sticks' to the histograms, even when f1
got redefined.

And maybe it is not really working and this explain why I got some
strange beahvior from time to time.

Then I wanted to display the function outside of it's borders even if
the fit itself was restricted and I tried that :

void fit_on_mean(TH1 *t,int half_width,int right_shift=0)
{
  int binm=t->FindBin(t->GetMean());
  double xmin =
t->GetXaxis()->GetBinCenter(binm-half_width+right_shift);
  double xmax =
t->GetXaxis()->GetBinCenter(binm+half_width+right_shift);
  
  TF1 *f1= new TF1("f1","gaus",xmin,xmax);
  t->Fit("f1","RQ");
  TF1 *f2= new TF1("f2","gaus");
  for (int i=0;i<3;i++) f2->SetParameter(i,f1->GetParameter(i));
  f2->SetLineStyle(2);
  f2->Draw("same");
  f1->Draw("same");
}

And it didnt worked at all !

What I seems to understand is that writing t->Fit("f1") somehow 'attach'
f1 to t, but i'm not sure if I can completly dispose f1 after (by
redefining it like I do when calling several time my function), and how
I can 'attach' a function to an histogram without making any fit (in my
case I only want a dashed curve that complete the displaying of the
fitted function).


	Yannick

 _/ Yannick Patois _________________ Address (home) __________________
| irc(undernet): Garp on #france25+ | La Villa des Sciences            |
| email : patois@ganil.fr           | 12, avenue de Cambridge          |
| web :http://www.sura.org/~patois/ | 14200 Herouville-Saint-Clair     |
| Tel/Fax-home:+33 (0)2 31 94 50 32 | FRANCE                           |
|___________________________________|__________________________________|



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:24 MET