Hello,
I wanted to take the minos errors for my parameter estimates that I get from my fit. I had two parameters of interest, and decided to check if I understood what it was doing correctly by seeing if the minos errors correspond to the 2.3 contour of 2*profileLL.
I made a simple model with what I believe is two degrees of freedom: two poissons multiplied together. I ran the fit and draw the RooFitResult’s errors. Then I drew the profileLL with appropriate contours. I see that the RooFitResult errors (the minos errors) correspond to the 2*profileLL = 1.0 (the case for 1 degree of freedom), but I expected for two degrees of freedom to see them correspond to the 2.3 contour.
Does somebody know if I have misunderstood the Minos option’s behaviour? Or have I made some other mistake?
Thanks!
Will
{
using namespace RooFit;
RooWorkspace w;
w.factory("PROD::model(Poisson::pois1(n_1[61,0,100],mean_1[0,100]),Poisson::pois2(n_2[20,0,100],mean_2[0,100]))");
w.defineSet("poi","mean_1,mean_2");
w.defineSet("obs","n_1,n_2");
RooDataSet data("data","data",*w.set("obs"));
data.add(*w.set("obs"));
w.import(data);
RooAbsReal* nll = w.pdf("model")->createNLL(*w.data("data"));
RooAbsReal* pll = nll->createProfile(*w->set("poi"));
RooFitResult* f = w->pdf("model")->fitTo(*w->data("data"),Minos(*w->set("poi")),Save(),Hesse(false));
RooPlot* fr = new RooPlot(30,80,0,50);
f->plotOn(fr,"mean_1","mean_2","ME12HVA");
fr->Draw();
TH1* pllHist = pll->createHistogram("pllHist",*w.var("mean_1"),Binning(50,30,80),YVar(*w.var("mean_2"),Binning(50,0,50)),Scaling(false));
double myContours[4] = {0.5,2.3/2,6.18/2,11.83/2};
pllHist->SetContour(4,myContours);
pllHist->Draw("CONT2 same");
}