babintsev@mx.ihep.su, 20-FEB-2001 Hello rooters. Some times ago I asked about strange behaviour of the ROOT for the script from tutorials: (Alpha server 8200 (4 cpu), OSF1) (Root Version 2.25/03) root [0] .L fitexample.C root [1] fitexample() *** Break *** floating point exception Root > Function fitf() busy flag cleared Function fitexample() busy flag cleared AT the same time the script works at Linux. Using iteration I found the place where the system is stopped (commented in the script below). Please, your comments. /_____________________macro fitexample.C___________________________ Double_t fitf(Double_t *x, Double_t *par) { Double_t arg = 0; //.....!!! this operator does not work at OSF1, but works at Linux !!!! // if (par[2]) arg = (x[0] - par[1])/par[2]; Float_t pp= par[2]; if (pp) arg = (x[0] - par[1])/par[2]; Double_t fitval = par[0]*TMath::Exp(-0.5*arg*arg); return fitval; } void fitexample() { TFile *f = new TFile("hsimple.root"); TH1F *hpx = (TH1F*)f->Get("hpx"); TF1 *func = new TF1("fit",fitf,-3,3,3); func->SetParameters(500,hpx->GetMean(),hpx->GetRMS()); func->SetParNames("Constant","Mean_value","Sigma"); hpx->Fit("fit"); } //------------------ end-------------- Volodja Babintsev
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:37 MET