// NLL vs Chi2 fits fitgen3() { // Setup a model RooRealVar x("x","x",-10,10) ; RooRealVar mx("mx","mx",0,-0.5,0.5) ; RooRealVar sx("sx","sx",3,2.5,3.5) ; RooGaussian gx("gx","gx",x,mx,sx) ; RooRealVar y("y","y",-10,10) ; RooRealVar my("my","my",0,-0.5,0.5) ; RooRealVar sy("sy","sy",3,1,10) ; RooGaussian gy("gy","gy",y,my,sy) ; RooProdPdf f("f","f",RooArgSet(gx,gy)) ; // Generate a toy dataset RooDataSet* d = f.generate(RooArgSet(x,y),10000) ; // Bin dataset x.setFitBins(15) ; y.setFitBins(15) ; RooDataHist* db = new RooDataHist("db","db",RooArgSet(x,y),*d) ; // Construct binned likelihood RooNLLVar nll("nll","nll",f,*db) ; // Start Minuit session on NLL RooMinuit m(nll) ; m.migrad() ; m.hesse() ; RooFitResult* r1 = m.save() ; // Construct Chi2 RooChi2Var chi2("chi2","chi2",f,*db) ; // Start Minuit session on Chi2 RooMinuit m2(chi2) ; m2.migrad() ; m2.hesse() ; RooFitResult* r2 = m2.save() ; // Print results cout << "result of binned likelihood fit" << endl ; r1->Print("v") ; cout << "result of chi2 fit" << endl ; r2->Print("v") ; }