Dear ROOTers, I am using ROOT v3.03/02 on IRIX 6.4 with gcc 2.95.2. Now, I am trying to fit 2 dimentional data points(x, y) with 2d gaus function. My set of data is following (bottom this mail). data consist of x, y, z and zerr. I found fit2.C in root/tutorials directory and modified it to my application like below. Using my macro "Test2D.C", I could draw the picture using TH2F with "surf2" option. But, I could not fit the data using TF2 "f2", which is 2-dimentional gaus function. I only got result of nan for all parameters. Maybe, my procedure is someting wrong. So, please tell me the correct way. And, finally, I would like to fit the data points with errors, which indicate zerr in my macro. In this case, Can I fit the data using 2d gaus fucnction ? ------------------ Test2D.C ----------------------------- #include "TF2.h" #include "TH2.h" Double_t g2(Double_t *x, Double_t *par) { Double_t r1 = Double_t((x[0]-par[1])/par[2]); Double_t r2 = Double_t((x[1]-par[3])/par[4]); return par[0]*TMath::Exp(-0.5*(r1*r1+r2*r2)); } Double_t fun2(Double_t *x, Double_t *par) { Double_t *p1 = &par[0]; Double_t result = g2(x,p1); return result; } void Test2D(char *file) { gStyle->SetPalette(1, 0); const Int_t npar = 5; Double_t f2params[npar] = {-500, 0, 0.2, 0, 0.2}; TF2 *f2 = new TF2("f2", fun2, -1.75, 1.75, -1.75, 1.75, npar); f2->SetParameters(f2params); ifstream data(file); TH2F *h2 = new TH2F("h2", "Test", 8, -1.75, 1.75, 8, -1.75, 1.75); Float_t x, y, z, zerr, xadd, yadd; xadd = yadd = 1.75; Int_t binx, biny; while ( !data.eof() ) { if ( data.eof() ) break; data >> x >> y >> z >> zerr; binx = 1 + Int_t((x + xadd)*2); biny = 1 + Int_t((y + yadd)*2); h2->SetBinContent(binx, biny, z); // h2->Fill(x, y, z) } TCanvas *c1 = new TCanvas("c1", "", 10, 100, 500, 500); h2->Draw("surf2 z"); // h2->Fit("f2"); } ----------------- data ---------------- x y z zerr --------------------------------------- -1.750000 -1.750000 -177.364 88.4113 -1.750000 -1.250000 23.8819 89.5173 -1.750000 -0.750000 -169.408 90.4699 -1.750000 -0.250000 14.1323 91.6545 -1.750000 0.250000 -28.0623 92.2061 -1.750000 0.750000 2.88085 93.4896 -1.750000 1.250000 -108.494 94.5778 -1.750000 1.750000 27.6635 95.6723 -1.250000 -1.750000 -21.3866 88.2509 -1.250000 -1.250000 -57.2445 89.6165 -1.250000 -0.750000 -97.7985 90.5366 -1.250000 -0.250000 -147.786 91.3785 -1.250000 0.250000 -169.611 92.645 -1.250000 0.750000 -278.408 93.9902 -1.250000 1.250000 -210.075 94.6681 -1.250000 1.750000 75.6192 95.6346 -0.750000 -1.750000 -13.6447 88.403 -0.750000 -1.250000 -11.9387 89.2608 -0.750000 -0.750000 -196.141 90.4865 -0.750000 -0.250000 -343.435 91.0842 -0.750000 0.250000 -236.105 92.3592 -0.750000 0.750000 -191.582 93.7229 -0.750000 1.250000 -52.6134 94.4583 -0.750000 1.750000 90.6348 95.313 -0.250000 -1.750000 -207.86 88.7357 -0.250000 -1.250000 -118.233 89.4734 -0.250000 -0.750000 -332.12 90.7167 -0.250000 -0.250000 -669.193 91.4756 -0.250000 0.250000 -512.535 92.4841 -0.250000 0.750000 -385.905 93.391 -0.250000 1.250000 10.6888 94.5607 -0.250000 1.750000 18.3322 95.4434 0.250000 -1.750000 -101.211 88.3915 0.250000 -1.250000 -153.832 89.1503 0.250000 -0.750000 -225.612 90.2201 0.250000 -0.250000 -355.538 91.4372 0.250000 0.250000 -359.276 92.605 0.250000 0.750000 -101.366 93.36 0.250000 1.250000 -86.0116 94.7367 0.250000 1.750000 -126.872 95.6148 0.750000 -1.750000 18.9985 88.4382 0.750000 -1.250000 -2.56898 89.532 0.750000 -0.750000 -89.8189 90.4403 0.750000 -0.250000 -195.499 91.6973 0.750000 0.250000 -60.4349 92.6743 0.750000 0.750000 -24.0375 93.5119 0.750000 1.250000 -118.055 94.4758 0.750000 1.750000 -88.8576 95.5508 1.250000 -1.750000 -100.037 88.2104 1.250000 -1.250000 -79.9338 89.6215 1.250000 -0.750000 -10.1272 90.2623 1.250000 -0.250000 -165.224 91.7862 1.250000 0.250000 61.9772 92.4866 1.250000 0.750000 -60.333 93.8211 1.250000 1.250000 -128.538 94.4395 1.250000 1.750000 -264.961 95.4229 1.750000 -1.750000 -34.8958 88.5176 1.750000 -1.250000 2.97855 89.6195 1.750000 -0.750000 19.1471 90.4522 1.750000 -0.250000 -45.2502 91.5662 1.750000 0.250000 35.7344 92.6695 1.750000 0.750000 38.8704 93.5341 1.750000 1.250000 192.175 94.2912 1.750000 1.750000 82.0293 95.3584
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:45 MET