using namespace RooFit; using namespace RooStats; void fitcon2D(){ RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); TFile* f1 = new TFile("re04_cut.root"); TTree* tr = (TTree*)f1->Get("y4s"); RooRealVar Flag("Flag","Flag",0,0,13); RooRealVar Scale("Scale","Scale",0.,0.,2.); RooRealVar ROE_Mbc("ROE_Mbc","ROE_Mbc",5.1,5.3); RooRealVar mu_pBrest("mu_pBrest","mu_pBrest",2.1,3.5); RooDataSet data("data","data",RooArgSet(Flag,mu_pBrest,ROE_Mbc,Scale),Import(*tr),Cut("Flag>2&&Flag<8"),WeightVar(Scale)); Double_t Mbc_Bins[10] = {5.1,5.14,5.18,5.22,5.26,5.27,5.28,5.2897786,5.2897788,5.3}; RooBinning MbcBins(9,Mbc_Bins,"MbcBin"); mu_pBrest.setBins(10); mu_pBrest.setRange("Mom_box",2.11,3.49); ROE_Mbc.setBinning(MbcBins); ROE_Mbc.setRange("Mbc_box",5.11,5.29); RooDataHist *dh_con = new RooDataHist("dh_con","dh_con",RooArgList(ROE_Mbc,mu_pBrest),data); RooHistPdf con("conhist","conhist",RooArgList(ROE_Mbc,mu_pBrest),*dh_con,2) ; //RooFitResult *result = con.fitTo(data,Minos(true),PrintEvalErrors(10)); RooWorkspace *wcon = new RooWorkspace("wcon","workspace"); wcon->import(con); wcon->writeToFile("con2DPDF.root"); gDirectory->Add(wcon); mu_pBrest.setBins(50); ROE_Mbc.setBins(50); RooPlot* frame01 = ROE_Mbc.frame(Title("ROE_Mbccon")); data.plotOn(frame01,CutRange("Mom_box")); con.plotOn(frame01,ProjectionRange("Mom_box")); RooPlot* frame03 = mu_pBrest.frame(Title("Momcon")); data.plotOn(frame03,CutRange("Mbc_box")); con.plotOn(frame03,ProjectionRange("Mbc_box")); TCanvas *c1 = new TCanvas("c1","",1); frame01->SetTitle("ROE_Mbc;GeV;"); frame01->Draw(); c1->SaveAs("conMbc.png"); TCanvas *c3 = new TCanvas("c3","",1); frame03->SetTitle("p_B;GeV;"); frame03->Draw(); c3->SaveAs("conMom.png"); }