void draw(){ Double_t masses[3] = { 3.686, 0.139, 0.139} ; double x_min = (masses[0]+masses[1])*(masses[0]+masses[1]); double x_max = (4.4-masses[1])*(4.4-masses[1]); // the range change from 4.42 to 4,2; RooRealVar x("X1", "Y1", x_min, x_max); RooRealVar y("X2", "Y2", x_min, x_max); TFile *f_phsppi0pi0 = new TFile("toymc.root"); TH2F *h2 = (TH2F*)f_phsppi0pi0->Get("h2"); RooDataHist sig2d_hist("sig2d_hist", "sig2d_hist", RooArgSet(x,y), h2); RooHistPdf sig2d_shape("sig2d_shape", "sig2d_shape", RooArgSet(x,y), sig2d_hist , 1); RooDataSet* data2 = sig2d_shape.generate(RooArgSet(x,y),1000000); TH2F * hist=data2->createHistogram(x,y,200,200); hist->Draw(); }