#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "generateSimulation.h" using namespace std; using namespace RooFit; RooRealVar *x; double BKG=250000; // Parameters RooRealVar *a0_gen; RooRealVar *a1_gen; RooRealVar *a2_gen; RooRealVar *a3_gen; RooRealVar *a4_gen; RooRealVar *a0_fit; RooRealVar *a1_fit; RooRealVar *a2_fit; RooRealVar *a3_fit; RooRealVar *a4_fit; RooRealVar *n_bkg; RooRealVar *n_s; void inizializeParameters(); int main(){ RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); RooRandom::randomGenerator()->SetSeed(0); x=new RooRealVar("x","m_{bb} [GeV]",60,300); a0_gen=new RooRealVar("a0_gen","a0_gen",27.7044,0.,500.); a1_gen=new RooRealVar("a1_gen","a1_gen",10.9279,0.,500.); a2_gen=new RooRealVar("a2_gen","a2_gen",7.2648,0.,500.); a3_gen=new RooRealVar("a3_gen","a3_gen",2.09955,0.,500.); a4_gen=new RooRealVar("a4_gen","a4_gen",1.42476,0.,500.); RooBernstein Bern_gen("Bern_gen","Bern_gen",*x,RooArgList(*a0_gen,*a1_gen,*a2_gen,*a3_gen,*a4_gen)); RooRealVar mean_gen("mean_gen","mean_gen",160,60,260); RooRealVar sigma_gen("sigma_gen","sigma_gen",15,0.,260.); RooGaussian gauss_gen("gauss_gen","gauss_gen",*x,mean_gen,sigma_gen); a0_fit=new RooRealVar("a0_fit","a0_fit",27.7044,0.,500.); a1_fit=new RooRealVar("a1_fit","a1_fit",10.9279,0.,500.); a2_fit=new RooRealVar("a2_fit","a2_fit",7.2648,0.,500.); a3_fit=new RooRealVar("a3_fit","a3_fit",2.09955,0.,500.); a4_fit=new RooRealVar("a4_fit","a4_fit",1.42476,0.,500.); RooBernstein Bern_fit("Bern_fit","Bern_fit",*x,RooArgList(*a0_fit,*a1_fit,*a2_fit,*a3_fit,*a4_fit)); RooRealVar mean_fit("mean_fit","mean_fit",160,60,260); RooRealVar sigma_fit("sigma_fit","sigma_fit",15,0.,260.); RooGaussian gauss_fit("gauss_fit","gauss_fit",*x,mean_fit,sigma_fit); n_bkg=new RooRealVar("n_bkg","n_bkg",BKG,0.,3*BKG); n_s=new RooRealVar("n_s","n_s",5000,-10000,10000); RooAddPdf *pdf_fit=new RooAddPdf("pdf_fit","pdf_fit",RooArgList(Bern_fit,gauss_fit),RooArgList(*n_bkg,*n_s)); cout<setPrintLevel(-1); int status_migrad=minuit_chi2->migrad(); int status_hesse=minuit_chi2->hesse(); int status_minos=minuit_chi2->minos(); if(status_migrad!=0 || status_hesse!=0 || status_minos!=0)cout<<"### FIT FAILED ###"<