#ifndef __CINT__ #include "RooGlobalFunc.h" #endif #include "RooRealVar.h" #include "RooDataSet.h" #include "RooGaussian.h" #include "RooGaussModel.h" #include "RooExponential.h" #include "RooFFTConvPdf.h" #include "RooProdPdf.h" #include "RooDecay.h" #include "RooMCStudy.h" #include "RooPlot.h" #include "TCanvas.h" #include "TH2.h" #include "RooFitResult.h" #include "TStyle.h" #include "TDirectory.h" using namespace RooFit ; void macro() { // variables RooRealVar dectime("dectime","dectime",50,0.,12.) ; RooRealVar errdectime("errdectime","errdectime",50,0.,0.7) ; RooRealVar bsmass("bsmass","bs mass",50,5.2,5.7) ; // parameters RooRealVar g("g","",1.52,1.3,1.7); RooRealVar mean("mean","",1.,0.,2.); RooRealVar sigma("sigma","",0.2,0.,1.); RooRealVar mass("mass","",5.369,5.2,5.7); RooRealVar width("width","",0.014,0.,0.05); RooRealVar mean_err("mean_err","",9.74637e-02); RooRealVar sigma_err("sigma_err","",1.70627e-02); RooRealVar slope("slope","",-30.); // generation of protodata RooGaussian sigerr("sigerr","error on dectime",errdectime,mean_err,sigma_err); RooExponential sigerr2("sigerr2","error on dectime",errdectime,slope); RooFFTConvPdf ErrDt("ErrDt"," theory (x) resolution",errdectime,sigerr2,sigerr,0); RooDataSet* protodata = ErrDt.generate(RooArgSet(errdectime),100); // end of the generation RooGaussian bmass("bmass","mass of the Bs",bsmass,mass,width); RooGaussModel resolution("gauss","dectime resolution",dectime,mean,sigma,errdectime,errdectime); RooDecay modelC("modelC","theory (x) resolution",dectime,g,resolution,RooDecay::Flipped); RooProdPdf model("model","decay rate * bsmass",RooArgList(modelC,bmass)); RooMCStudy *mgr = new RooMCStudy(model,model,RooArgSet(dectime,bsmass),"","",protodata,RooArgSet(errdectime)); }