#include"TF1.h" using namespace RooFit; void roomodel(){ TFile *myfile =new TFile("sel_BsToPhiMuMu_OfficialMC_signal_2016Mini_Presel_v2_mc.lite_cut_bdt_s86000000.root","READ"); TTree *mytree =(TTree*)myfile->Get("tree"); //we want to read out the tree,so we have to make a reference double Bmassi; mytree->SetBranchAddress("Bmass",&Bmassi); int entries = mytree->GetEntries(); cout<GetEntry(i); // cout<Fill(Bmassi); } RooRealVar x("x", "x", 4.6,5.7); RooDataHist dh("dh", "dh", x, Import(*hist)); RooPlot *frame = x.frame(); dh.plotOn(frame); RooRealVar mean("mean", "mean", 0, 0, 10); RooRealVar sigma1("sigma1", "sigma2", 3, 0.001, 5); RooRealVar sigma2("sigma2", "sigma2", 3, 0.001, 5); RooGaussian sig1("sig1", "gauss sig1", x, mean, sigma1); RooGaussian sig2("sig2", "gauss sig2", x, mean, sigma2); // exponential function RooRealVar a("a","coeff of x in exp",0.01,0.,0.5); RooExponential sig3("sig3","exponential sig",x,a); RooRealVar fsig1("fsig1","sig1 fraction",0.5,0.,1.) ; RooRealVar fsig2("fsig2","sig2 fraction",0.2,0.,1.) ; RooAddPdf model("model","model",RooArgList(sig1,sig2,sig3),RooArgList(fsig1,fsig2)); ; model.fitTo(dh,"R"); double chiSquare = frame->chiSquare(2); model.plotOn(frame); model.plotOn(frame, Components(sig1),LineStyle(kDashed)) ; model.plotOn(frame, Components(sig2),LineStyle(kDashed)) ; model.plotOn(frame, Components(sig3),LineStyle(kDashed)) ; frame->Draw(); frame->chiSquare() ; cout<<"Chi sq val = "<