using namespace RooFit; void GaussPlot() { RooRealVar x("x", "x", -10, 10); RooRealVar mean("mean", "mean of Gaussian", 0, -10, 10); RooRealVar sigma("sigma", "width of Gaussian", 3, -10, 10); RooGaussian gauss("gauss", "Gaussian PDF", x, mean, sigma); TCanvas * c1 = new TCanvas("c1", "Curva Gaussiana"); TCanvas * c2 = new TCanvas("c2", "Hist Gaussiana"); TCanvas * c3 = new TCanvas("c3", "Dati-Gaussiana"); c1-> cd(); // Plot PDF RooPlot * xframe1 = x.frame(Title("Gaussian PDF")); gauss.plotOn(xframe1); xframe1-> Draw(); //Generate a toy MC sample and Plot PDF RooDataSet * data = gauss.generate(x, 10000); c2-> cd(); RooPlot * xframe2 = x.frame(Title("MC Gaussian data")); data-> plotOn (xframe2); xframe2->Draw(); //ML fit of gauss to data c3-> cd(); gauss.fitTo(*data); mean.Print(); sigma.Print(); RooPlot * xframe3 = x.frame(Title("ML Fit to a MC Gaussian sample")); data->plotOn(xframe3, Name("myHist1")); gauss.plotOn(xframe3, Name("myCurve1")); gauss.paramOn(xframe3); xframe3->Draw(); Double_t chi2_1 = xframe3->chiSquare("myCurve1", "myHist1"); cout<<"chi2 = " << chi2_1 << endl; }