Hello Huaizhang, Thank you for reporting a bug. I'd like to look into this. For doing so, will you give me complete information about your example. In this case, I do not know how 'hist' is created. I'd appreicaite if you send me small and complete example. Masaharu Goto > >I wrote the following program. > >Double_t RatioFunc(Double_t *t, Double_t *par) { > Double_t R; > R=par[0]*cos(2*3.14159265*0.0002291*(1-par[1]*1.0e-6)*t[0]+par[2])+par[3]; > return R; >} > >TF1* RatioFit(TH1F* h, Float_t t_start, Float_t t_end) { > > TF1 *RatioFit=new TF1("RatioFit", RatioFunc, 0, 700000, 4); > > RatioFit->SetParNames("A", "R", "'f#", "offset"); > RatioFit->SetRange(t_start, t_end); > RatioFit->SetParameters(0.4, 120, 0, 0); > > h->Fit("RatioFit", "R"); > return RatioFit; >} > >Then I tried to do > >int i; >TF1* fit; >for(i=0; i<5; i++) fit=RatioFit(hist, t, 400000.); > >After the first fit, which is o.k., it complain "Function:RatioFit cannot be >compiled". >However, the following program works well. > >int i; >TF* fit; >fit=RatioFit(h, t, 40000); >for(i=1; i<5; i++) fit=RatioFit(hist, t, 40000); > >I wonder why those two programs make difference. > >Huaizhang Deng
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:27 MET