[ROOT] Seg. Viol. after fitting

From: Hermine Woehri (Hermine.Woehri@cern.ch)
Date: Tue Mar 05 2002 - 15:08:47 MET


Hello,

I try to read a histogram from a ROOT-File, which I plot and further would
like to fit with a self-defined function. I attached this small macro,
since after successfully fitting (the fitting parameters are printed
onto the console) it crashes due to a Segmentation Violation.

However, I have observed, if I do the following steps, I do not have any
problems:

If I comment the last line, where the fit is performed:
//	hLandauPart->Fit("myfunc","R");
and run the
program, which simply plots the histogram and then RERUN the macro, this
time with the last line uncommented, then I succeed to also fit the
histogram.
So, what can I do in order to run the macro only once?

Thank you in advance,

Hermine



Double_t myfunction(Double_t *x, Double_t *par)
{
  Double_t fval = par[0]*TMath::Gaus( *x, par[1], par[2] ) 
                + par[3]*TMath::Landau( *x, par[4], par[5] );
  return fval;
}

void tryFit() {

  TF1 *f1 = new TF1("myfunc",myfunction,5.5,50,6);
//    f1->SetParameters(6000,6,0.5,2500,5,1);
  f1->SetParameters(30000,2,1,2500,5,1);

  TFile *fPart = new TFile("landauPeak570.ROOT", "READ");
  TH1F *hLandauPart = (TH1F*) fPart->Get("landauDir/hLandau");

  TCanvas *c = new TCanvas();
  hLandauPart->DrawCopy();

  hLandauPart->Fit("myfunc","R");

}



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