using namespace RooFit; void polynomial(){ TFile * f = new TFile("first.root", "Read"); TTree * t = (TTree*)f -> Get("t1"); TCanvas * c1 = new TCanvas("c1", "c1", 1); t->Draw("var1"); RooRealVar var1("var1","var1",-2,2); //DICHIARO IL DATASET RooDataSet data("data","data", t, RooArgSet(var1)); //DICHIARO IL RooPlot e DSEGNO IL RooDataSet RooPlot * frame = var1.frame(); data.plotOn(frame); TCanvas * c2 = new TCanvas("c2","c2",1); frame->Draw(); RooRealVar par1("par1","par1",0.7,-10., 10.); RooRealVar par2("par2","par2",0.5,-10., 10.); //DICHIARO LA pdf RooPolynomial pol("pol", "pol pdf", var1, RooArgList(par1,par2)); pol.fitTo(data,Minos(kFALSE)); //DISEGNO IL DATASET E LE pdf sul RooPlot data.plotOn(frame, Name("Hist")); pol.plotOn(frame, Name("FitCurve")); pol.paramOn(frame); frame->Draw(); Double_t chi2 = frame->chiSquare("FitCurve", "Hist"); cout<<"chi2 = " << chi2 << endl; }