28 using namespace RooFit;
29 using namespace RooStats;
31 void rs801_HypoTestInverterOriginal()
34 RooRealVar lumi(
"lumi",
"luminosity", 1);
35 RooRealVar r(
"r",
"cross-section ratio", 3.74, 0, 50);
36 RooFormulaVar ns(
"ns",
"1*r*lumi", RooArgList(lumi, r));
37 RooRealVar nb(
"nb",
"background yield", 1);
38 RooRealVar x(
"x",
"dummy observable", 0, 1);
39 RooConstVar p0(RooFit::RooConst(0));
40 RooPolynomial flatPdf(
"flatPdf",
"flat PDF", x, p0);
41 RooAddPdf totPdf(
"totPdf",
"S+B model", RooArgList(flatPdf, flatPdf), RooArgList(ns, nb));
42 RooExtendPdf bkgPdf(
"bkgPdf",
"B-only model", flatPdf, nb);
43 RooDataSet *data = totPdf.generate(x, 1);
46 HybridCalculatorOriginal myhc(*data, totPdf, bkgPdf, 0, 0);
47 myhc.SetTestStatistic(2);
48 myhc.SetNumberOfToys(1000);
49 myhc.UseNuisance(
false);
52 HypoTestInverterOriginal myInverter(myhc, r);
53 myInverter.SetTestSize(0.10);
54 myInverter.UseCLs(
true);
57 myInverter.RunAutoScan(3., 5, myInverter.Size() / 2, 0.005);
62 HypoTestInverterResult *results = myInverter.GetInterval();
64 HypoTestInverterPlot myInverterPlot(
"myInverterPlot",
"", results);
65 TGraphErrors *gr1 = myInverterPlot.MakePlot();
68 double ulError = results->UpperLimitEstimatedError();
70 double upperLimit = results->UpperLimit();
71 std::cout <<
"The computed upper limit is: " << upperLimit << std::endl;
72 std::cout <<
"an estimated error on this upper limit is: " << ulError << std::endl;
77 rs801_HypoTestInverterOriginal();