#include #include #include "TCanvas.h" #include "RooConstVar.h" #include "RooEffProd.h" #include "RooBreitWigner.h" #include "RooNumIntConfig.h" #include "RooGaussian.h" #include "RooRealVar.h" #include "RooFFTConvPdf.h" #include "RooAddPdf.h" #include "RooDataSet.h" #include "RooPlot.h" using namespace std; int main() { double lowrange = -100; double highrange = 100; double narrowresolution = 3.7; double wideresolution = 40.2; RooRealVar dimuon_mass("Bplus_fitted_dimuon_M","m(#mu#mu)",lowrange,highrange); dimuon_mass.setBins(4e4,"cache"); RooRealVar narrow_res("narrow_res","narrow_res",narrowresolution,3,10); RooRealVar wide_res("wide_res","wide_res",wideresolution,20,100); RooGaussian narrow_resolution("narrow_resolution","narrow_resolution",dimuon_mass,RooFit::RooConst(0),RooFit::RooConst(narrowresolution)); RooGaussian wide_resolution("wide_resolution","wide_resolution",dimuon_mass,RooFit::RooConst(0),RooFit::RooConst(wideresolution)); RooRealVar resfrac("resfrac_low","resfrac_low",0.8,0.000,1.0); RooAddPdf resolution("resolution","resolution",narrow_resolution,wide_resolution,resfrac); RooRealVar jpsi_mean("jpsi_mean","jpsi_mean",0.0,lowrange,highrange); RooRealVar jpsi_width("jpsi_width","jpsi_width",0.09,0.01,0.2); RooBreitWigner physicspdf("physicspdf","physicspdf",dimuon_mass,jpsi_mean,jpsi_width) ; RooFFTConvPdf pdf("pdf","pdf",dimuon_mass,physicspdf,resolution); RooDataSet* gendata = pdf.generate(RooArgSet(dimuon_mass),1.1e5); //resfrac.setVal(0.25); RooPlot* polyplot = dimuon_mass.frame(); gendata->plotOn(polyplot); resolution.plotOn(polyplot,RooFit::LineColor(kRed)); pdf.plotOn(polyplot,RooFit::LineColor(kBlue)); // physicspdf.plotOn(polyplot,RooFit::LineColor(kGreen-2)) polyplot->SetName("polyfit"); polyplot->Draw(); gPad->SaveAs("FFT_sanity.pdf"); }