3 #include "RooWorkspace.h" 4 #include "RooPoisson.h" 5 #include "RooDataSet.h" 6 #include "RooRealVar.h" 8 #include "RooStats/ModelConfig.h" 23 double rx1 = (
b+
e)/(
a+
d);
24 double rx2 = (
c+
f)/(
a+
d);
25 double ry1 = (
d+
e+
f)/(
a+
b+
c);
28 w.factory((
"N["+to_string(N)+
",0.001,"+to_string(max(10.*N,20.))+
"]").c_str());
29 w.factory((
"rx1["+to_string(rx1)+
",0.001,10.]").c_str());
30 w.factory((
"rx2["+to_string(rx2)+
",0.001,10.]").c_str());
31 w.factory((
"ry1["+to_string(ry1)+
",0.001,10.]").c_str());
32 w.factory(
"s1_1[0.,-10.,10.]");
33 w.factory(
"s2_1[0.,-10.,10.]");
34 w.factory(
"sum::rxnorm(1.,rx1,rx2)");
35 w.factory(
"sum::rynorm(1.,ry1)");
36 w.factory(
"prod::rnorm(rxnorm,rynorm)");
37 w.factory(
"expr::rscale('N/rnorm',N,rnorm)");
38 w.factory(
"prod::bkg_a(rscale)");
39 w.factory(
"prod::bkg_b(rscale,rx1)");
40 w.factory(
"prod::bkg_c(rscale,rx2)");
41 w.factory(
"prod::bkg_d(rscale,ry1)");
42 w.factory(
"prod::bkg_e(rscale,rx1,ry1)");
43 w.factory(
"prod::bkg_f(rscale,rx2,ry1)");
44 w.factory(
"prod::sig_a(bkg_a)");
45 w.factory(
"prod::sig_b(bkg_b)");
46 w.factory(
"prod::sig_c(bkg_c)");
47 w.factory(
"prod::sig_d(bkg_d)");
48 w.factory(
"expr::ms1_1('exp(s1_1)',s1_1)");
49 w.factory(
"expr::ms2_1('exp(s2_1)',s2_1)");
50 w.factory(
"prod::sig_e(bkg_e,ms1_1)");
51 w.factory(
"prod::sig_f(bkg_f,ms2_1)");
52 w.factory((
"obsa["+to_string(
a)+
"]").c_str());
53 w.factory((
"obsb["+to_string(
b)+
"]").c_str());
54 w.factory((
"obsc["+to_string(
c)+
"]").c_str());
55 w.factory((
"obsd["+to_string(
d)+
"]").c_str());
56 w.factory((
"obse["+to_string(
e)+
"]").c_str());
57 w.factory((
"obsf["+to_string(f)+
"]").c_str());
58 w.factory(
"RooPoisson::nulla(obsa,bkg_a)");
59 (
static_cast<RooPoisson*
>(w.pdf(
"nulla")))->setNoRounding();
60 w.factory(
"RooPoisson::nullb(obsb,bkg_b)");
61 (
static_cast<RooPoisson*
>(w.pdf(
"nullb")))->setNoRounding();
62 w.factory(
"RooPoisson::nullc(obsc,bkg_c)");
63 (
static_cast<RooPoisson*
>(w.pdf(
"nullc")))->setNoRounding();
64 w.factory(
"RooPoisson::nulld(obsd,bkg_d)");
65 (
static_cast<RooPoisson*
>(w.pdf(
"nulld")))->setNoRounding();
66 w.factory(
"RooPoisson::nulle(obse,bkg_e)");
67 (
static_cast<RooPoisson*
>(w.pdf(
"nulle")))->setNoRounding();
68 w.factory(
"RooPoisson::nullf(obsf,bkg_f)");
69 (
static_cast<RooPoisson*
>(w.pdf(
"nullf")))->setNoRounding();
70 w.factory(
"RooPoisson::alta(obsa,sig_a)");
71 (
static_cast<RooPoisson*
>(w.pdf(
"alta")))->setNoRounding();
72 w.factory(
"RooPoisson::altb(obsb,sig_b)");
73 (
static_cast<RooPoisson*
>(w.pdf(
"altb")))->setNoRounding();
74 w.factory(
"RooPoisson::altc(obsc,sig_c)");
75 (
static_cast<RooPoisson*
>(w.pdf(
"altc")))->setNoRounding();
76 w.factory(
"RooPoisson::altd(obsd,sig_d)");
77 (
static_cast<RooPoisson*
>(w.pdf(
"altd")))->setNoRounding();
78 w.factory(
"RooPoisson::alte(obse,sig_e)");
79 (
static_cast<RooPoisson*
>(w.pdf(
"alte")))->setNoRounding();
80 w.factory(
"RooPoisson::altf(obsf,sig_f)");
81 (
static_cast<RooPoisson*
>(w.pdf(
"altf")))->setNoRounding();
82 w.factory(
"RooGaussian::pdfx(x[0.,-10.,10.],0.,1.)");
83 w.factory(
"PROD::model_b(nulla,nullb,nullc,nulld,nulle,nullf,pdfx)");
84 w.factory(
"PROD::model_s(alta,altb,altc,altd,alte,altf,pdfx)");
85 w.defineSet(
"POI",
"s1_1,s2_1");
86 w.defineSet(
"nuisances",
"N,rx1,rx2,ry1,x");
87 w.defineSet(
"observables",
"obsa,obsb,obsc,obsd,obse,obsf");
88 w.defineSet(
"globalObservables",
"");
89 RooDataSet data(
"data_obs",
"data_obs", *w.set(
"observables"));
90 data.add(*w.set(
"observables"));
93 RooStats::ModelConfig model_config(
"ModelConfig", &w);
94 model_config.SetPdf(*w.pdf(
"model_s"));
95 model_config.SetParametersOfInterest(*w.set(
"POI"));
96 model_config.SetObservables(*w.set(
"observables"));
97 model_config.SetNuisanceParameters(*w.set(
"nuisances"));
98 model_config.SetGlobalObservables(*w.set(
"globalObservables"));
100 RooStats::ModelConfig model_config_bonly(
"ModelConfig_bonly", &w);
101 model_config_bonly.SetPdf(*w.pdf(
"model_b"));
102 model_config_bonly.SetParametersOfInterest(*w.set(
"POI"));
103 model_config_bonly.SetObservables(*w.set(
"observables"));
104 model_config_bonly.SetNuisanceParameters(*w.set(
"nuisances"));
105 model_config_bonly.SetGlobalObservables(*w.set(
"globalObservables"));
107 w.import(model_config);
108 w.import(model_config_bonly);
110 w.writeToFile(
"agnostic.root");