Facing error when using HybridCalculatorOriginal class

Hi,

I am trying to use HybridCalculatorOriginal Class in order to find expected limit (sensitivity) using CLs method. However I seem to get lots of fitting errors which I don’t understand:
ignal number 510backrate 1.4668e+06
[#1] INFO:DataHandling – RooDataHist::adjustBinning(twonbb): fit range of variable x expanded to nearest bin boundaries: [0,8] --> [0,8]
[#1] INFO:DataHandling – RooDataHist::adjustBinning(zeronbb): fit range of variable x expanded to nearest bin boundaries: [0,8] --> [0,8]
two nubb rate ----1.4668e+06
Test statistics has been evaluated for data
HybridCalculatorOriginal: run 500 toy-MC experiments
with test statistics index: 1
marginalize nuisance parameters
… toy number 0 / 500
[#0] ERROR:Eval – RooAbsReal::logEvalError(sumb) evaluation error,
origin : RooExtendPdf::sumb[ pdf=twonbbpdf n=n2nbb ]
message : getLogVal() top-level p.d.f evaluates to zero
server values: pdf=twonbbpdf=0/2.9336e+06, n=n2nbb=1.4668e+06
[#0] ERROR:Eval – RooAbsReal::logEvalError(sumb) evaluation error,
origin : RooExtendPdf::sumb[ pdf=twonbbpdf n=n2nbb ]
message : getLogVal() top-level p.d.f evaluates to zero
server values: pdf=twonbbpdf=0/2.9336e+06, n=n2nbb=1.4668e+06
[#0] ERROR:Eval – RooAbsReal::logEvalError(sumb) evaluation error,
origin : RooExtendPdf::sumb[ pdf=twonbbpdf n=n2nbb ]
message : getLogVal() top-level p.d.f evaluates to zero
server values: pdf=twonbbpdf=0/2.9336e+06, n=n2nbb=1.4668e+06
[#0] ERROR:Eval – RooAbsReal::logEvalError(sumb) evaluation error,
origin : RooExtendPdf::sumb[ pdf=twonbbpdf n=n2nbb ]
message : getLogVal() top-level p.d.f evaluates to zero
server values: pdf=twonbbpdf=0/2.9336e+06, n=n2nbb=1.4668e+06
[#0] ERROR:Eval – RooAbsReal::logEvalError(sumb) evaluation error,
origin : RooExtendPdf::sumb[ pdf=twonbbpdf n=n2nbb ]
message : getLogVal() top-level p.d.f evaluates to zero

I am introducing my background and signal pdf using RooHistPDFs and here is my code:
RooRealVar x(“x”,“x”,0,8);//Energy 0 to 8 MeV
RooArgList observables(x);
RooRealVar n2nbb(“n2nbb”,“n2bb”,backRate[0]*livetime,0,backRate[0]livetime2);//bkg_yield
RooRealVar n0nbb(“n0nbb”,“0nbb”,nsig); // sig_yeild

RooDataHist twonbb(“twonbb”,“twon”,RooArgList(x),Import(*hbackpdf[0]));
RooHistPdf zeronbbpdf(“zeronbbpdf”,“zeronbbpdf”,x,zeronbb,1);

RooArgSet nuisance_parameters(n2nbb);
RooExtendPdf sumb(“sumb”,"",twonbbpdf,n2nbb); //background
RooAddPdf sum(“sum”,“backgroudns and signal pdfs”,RooArgList(twonbbpdf,zeronbbpdf),RooArgList(n2nbb,n0nbb));
RooDataSet* data = sumb.generate(observables,RooFit::Extended(kTRUE));
RooGaussian f2nbbconst(“f2nbbconst”,“2nbb constrain”,n2nbb,RooConst(twonubbrate),RooConst(twonubbrate0.15));
HybridCalculatorOriginal myHybridCalc(data,sum,sumb,&nuisance_parameters, &f2nbbconst);
myHybridCalc.UseNuisance(true);
myHybridCalc.SetTestStatistic(1);
myHybridCalc.SetNumberOfToys(500);
HybridResult
myHybridResult = myHybridCalc.GetHypoTest();
HybridPlot
myHybridPlot = myHybridResult->GetPlot(“myHybridPlot”,“Plot of results with HybridCalculatorOriginal”,100);
myHybridPlot->Draw();

Any guess what I am doing wrong here? Any hint would be really appreciated.

Many thanks,
Nasim

Hi,

You should not use that class. It will be probably be removed in a future version. Please use the HypoTestInverter with the HybridCalculator.
You can find example on using CLs on this tutorial

[twiki.cern.ch/twiki/bin/view/Ro ... mits_using](https://twiki.cern.ch/twiki/bin/view/RooStats/RooStatsTutorialsJune2013#Exercise_7_Compute_Limits_using)

Best Regards

Lorenzo