Dear all,
I am trying to perform the 2-dimensional simultaneous fits to extract the signal yield using the data of the Mbc signal and sideband regions. But, I am getting following error messages:
[#0] WARNING:Minization -- RooMinuit::RooMinuit: removing parameter sample from list because it is not of type RooRealVar
[#1] INFO:Minization -- RooMinuit::optimizeConst: activating const optimization
[#0] ERROR:InputArguments -- RooTreeData::split(data) ERROR category sample doesn't depend on any variable in this dataset
[#0] ERROR:Fitting -- RooAbsTestStatistic::initSimMode(nll_simPdf_data) ERROR: index category of simultaneous pdf is missing in dataset, aborting
Exception: RooAbsTestStatistic::initSimMode() ERROR, index category of simultaneous pdf is missing in dataset, aborting
Any idea how to fix it? Please see below code snippet.
Thanks,
V. Prasad
#ifdef __CINT__
gROOT->ProcessLineSync(".L RooRevArgusBG.cxx+") ;
#endif
RooRealVar Dikmass("Dikmass","m_{K^{+}K^{-}} (GeV/c^{2})",0.987354,1.05);
RooRealVar Omegamass("Omegamass","m_{#pi^{+}#pi^{-}#pi^{0}} (GeV/c^{2})", 0.65, 0.85);
RooRealVar mBC("mBC","m_{#pi^{+}#pi^{-}#gamma #gamma} (GeV/c^{2})",1.84, 1.8865);
TFile f2("../D0omegaphitrans_.root");
TTree* truth = (TTree*) gDirectory->Get("truth") ;
RooDataSet hist1("hist1","data",Dikmass,Import(*truth));
RooKeysPdf signal("signal","kest1",Dikmass,hist1,RooKeysPdf::MirrorBoth) ;
RooDataSet hist2("hist2","data",Omegamass,Import(*truth));
RooKeysPdf etasignal("etasignal","kest1",Omegamass,hist2,RooKeysPdf::MirrorBoth) ;
RooRealVar c0("c0","c0",1.05);
RooRealVar c1("c1","c1", -3.39594e+01,-40.0,40.0);
RooRealVar c2("c2","c2",1.61023e+00,-8.0,8.0);
RooRevArgusBG bkg("bkg","bkg", Dikmass, c0, c1, c2);
RooRealVar p0("p0","p0",0.8453);
RooRealVar p1("p1","p1", 8.87520e-01,-100.0,100.0);
RooRealVar p2("p2","p2",1.99977e+00,-2.0,2.0);
RooArgusBG back("back","Argus1",Omegamass,p0, p1, p2);
RooProdPdf fx0("fx0", "final signal pdf", RooArgList(signal,etasignal));
RooProdPdf fx1("fx1", "final signal pdf", RooArgList(signal,back));
RooProdPdf fx2("fx2", "final signal pdf", RooArgList(bkg,etasignal));
RooProdPdf fx3("fx3", "final back pdf", RooArgList(bkg, back));
RooRealVar nsig("nsig","number of signal events",0,0,1e6) ;
RooRealVar npeakKK("npeakKK","number of background events",36.225,0,1e6) ;
RooRealVar npeaketa("npeaketa","number of background events",16.356,0,1e6) ;
RooRealVar nbkg("nbkg","number of background events",89,0,1e6) ;
RooAddPdf sum("sum","sig +back",RooArgList(fx0, fx1, fx2, fx3),RooArgList(nsig, npeakKK, npeaketa, nbkg)) ;
RooRealVar nsigsb("nsigsb","number of signal events",0,0,1e6) ;
RooRealVar npeakKKsb("npeakKKsb","number of background events",36.225,0,1e6) ;
RooRealVar npeaketasb("npeaketasb","number of background events",16.356,0,1e6) ;
RooRealVar nbkgsb("nbkgsb","number of background events",89,0,1e6) ;
RooAddPdf sumsb("sumsb","sig +back",RooArgList(fx0, fx1, fx2, fx3),RooArgList(nsigsb, npeakKKsb, npeaketasb, nbkgsb)) ;
TFile f("../data.root");
TTree* tree = (TTree*) gDirectory->Get("tree") ;
RooDataSet data("data","data",RooArgSet(Dikmass, Omegamass, mBC),Import(*tree),Cut("mBC > 1.859 && mBC < 1.871"));
RooDataSet dataSB("dataSB","data",RooArgSet(Dikmass, Omegamass, mBC),Import(*tree),Cut("mBC < 1.857 || mBC > 1.873"));
RooCategory sample("sample", "sample");
sample.defineType("mbcSG");
sample.defineType("mbcSB");
RooDataSet combData("combData", "combined data", RooArgSet(Dikmass, Omegamass, mBC),
Index(sample), Import("mbcSG", data),
Import("mbcSB", dataSB));
RooSimultaneous simPdf("simPdf", "simultaneous pdf", sample);
simPdf.addPdf(sum, "mbcSG");
simPdf.addPdf(sumsb, "mbcSB");
simPdf.fitTo(data);