#include "TCanvas.h" #include "TNtuple.h" #include "TRandom3.h" #include "RooRealVar.h" #include "RooGaussian.h" #include "RooAddPdf.h" #include "RooDataSet.h" #include "RooChebychev.h" #include "RooPlot.h" #include using namespace RooFit; TRandom3 psn; TRandom3 rnd; RooRealVar mu_pBrest("mu_pBrest","mu_pBrest",2.1,3.5); //Read PDF TFile *f1 = new TFile("conbbsigPDFmom_side.root"); RooWorkspace* w1 = (RooWorkspace*) f1->Get("w"); RooAbsPdf* sig1 = w1->pdf("Momsig"); RooAbsPdf* bb1 = w1->pdf("Mombb"); RooAbsPdf* ulnu1 = w1->pdf("Momulnu"); RooAbsPdf* con1 = w1->pdf("Momcon"); TFile *f2 = new TFile("conbbsigPDFmom.root"); RooWorkspace* w2 = (RooWorkspace*) f2->Get("w"); RooAbsPdf* sig2 = w2->pdf("Momsig"); RooAbsPdf* bb2 = w2->pdf("Mombb"); RooAbsPdf* ulnu2 = w2->pdf("Momulnu"); RooAbsPdf* con2 = w2->pdf("Momcon"); //Initial values of parameters of interest const double sigScale_35 = 3.4994675552871413; const double bbScale_35 = 72.03643845412496; const double conScale_35 = 109.71811992503847; const double ulnuScale_35 = 199.66866843592646; const double sigScale1_35 = 1.5690308845937644; const double bbScale1_35 = 45.265897732556304; const double conScale1_35 = 80.17297578008359; const double u0lnuScale1_35 = 62.64556114928302; const double uplnuScale1_35 = 64.69958513979667; const double ulnuScale1_35 = 127.34514628907968; const double sigScale2_35 = 1.9304366706918128; const double bbScale2_35 = 26.770540721568807; const double conScale2_35 = 29.545144144954552; const double u0lnuScale2_35 = 34.7662783010236; const double uplnuScale2_35 = 37.55724384586087; const double ulnuScale2_35 = 72.32352214688447; const double sigScale1_35r = sigScale1_35/sigScale_35; const double bbScale1_35r = bbScale1_35/bbScale_35; const double conScale1_35r = conScale1_35/conScale_35; const double ulnuScale1_35r = ulnuScale1_35/ulnuScale_35; const double sigScale2_35r = sigScale2_35/sigScale_35; const double bbScale2_35r = bbScale2_35/bbScale_35; const double conScale2_35r = conScale2_35/conScale_35; const double ulnuScale2_35r = ulnuScale2_35/ulnuScale_35; void do_fit(float *res) { std::cout<<"START"<Fill(res); if(!(res[1]>0)) break; std::cout<<"This is the "<Divide(3,1); n_toy->SetFillColor(50); c1->cd(1); n_toy->Draw("yield"); c1->cd(2); n_toy->Draw("error"); c1->cd(3); RooPlot* frame = pull.frame(); toy->plotOn(frame,Binning(50)); gaussian.plotOn(frame,LineWidth(3)); frame->Draw(); c1->SaveAs("toy_result_35000.eps"); }