Visualize pdf like a histogram


I am trying to visualize a pdf in the same way you would visualize a histogram. I’ve got the point where I have made a pdf from my histogram, which includes some poisson constraining terms to account for the errors. I can draw my pdf and normalize it to the original histogram’s integral, so I get my pdf drawn with the correct “central values”, but now I want to visualize the errors (basically draw the +/- 1sigma bands for the underlying constraint terms of each bin). Does anyone know how I would do that?

My (simplified) code so far is below.


  using namespace RooFit;

  TH1D* h = new TH1D("h","h",2,0,2);
  h->SetBinContent(1,2); h->SetBinContent(2,5);
  h->SetBinError(1,1.1); h->SetBinError(2,3.3);
  RooRealVar x("x","x",0,2);x.setBins(2);

  //make nominal values function
  RooDataHist d("d","d",RooArgList(x),h);
  RooHistFunc nominals("f","f",x,d);

  //create constraining terms
  RooRealVar a1("a1","a1",1,-5,5);
  RooRealVar a2("a2","a2",1,-5,5);

  ParamHistFunc alphas("s","s",x,RooArgSet(a1,a2));

  RooRealVar tau1("tau1","tau1",pow(2/1.1,2));
  RooRealVar tau2("tau2","tau2",pow(5/3.3,2));

  RooFormulaVar v1("v1","v1","a1*tau1",RooArgList(a1,tau1));
  RooFormulaVar v2("v2","v2","a2*tau2",RooArgList(a2,tau2));

  //poisson with the same relative error as the original histogram
  RooPoisson c1("c1","c1",RooConst(pow(2/1.1,2)),a1);
  RooPoisson c2("c2","c2",RooConst(pow(5/3.3,2)),a2);

  RooProduct p("p","p",RooArgList(nominals,alphas));

  //convert histfunc*constraintPars to a pdf
  RooRealSumPdf m("m","m",RooArgList(p),RooArgList(RooConst(1)));

  //form final pdf
  RooProdPdf model("model","model",RooArgList(m,c1,c2));

  RooPlot* f = x.frame();