#ifndef __CINT__ #include "RooGlobalFunc.h" #endif #include "RooRealVar.h" #include "RooDataSet.h" #include "RooGaussian.h" #include "TCanvas.h" #include "TAxis.h" #include "RooPlot.h" #include "RooFitResult.h" #include "RooGenericPdf.h" #include "RooConstVar.h" #include "RooDataHist.h" #include "RooHistPdf.h" #include "RooFitResult.h" #include "RooArgSet.h" #include "RooAddPdf.h" #include "RooCategory.h" #include "RooSimultaneous.h" #include "RooChebychev.h" #include "RooAbsReal.h" #include "RooMCStudy.h" #include "RooMinuit.h" #include "RooNLLVar.h" #include "RooTrace.h" #include "RooAddition.h" #include "RooProdPdf.h" #include "RooGaussian.h" #include "RooFFTConvPdf.h" #include #include #include void test(){ // Define observable of interest RooRealVar signal ("signal", "signal", -10.0, 10.0); // Define/Create first Gaussian RooRealVar mean1 ("mean1", "mean1", 1.0, -10.0, 10.0); RooRealVar sig1 ("sig1", "sig1", 2.0, -10.0, 10.0); RooGaussian g1 ("g1", "g1", signal, mean1, sig1); // Define/Create second Gaussian RooRealVar mean2 ("mean2", "mean2", 5.0, -10.0, 10.0); RooRealVar sig2 ("sig2", "sig2", 2.0, -10.0, 10.0); RooGaussian g2 ("g2", "g2", signal, mean2, sig2); // Define/Create Gaussian to be use in convolution RooRealVar meanc ("meanc", "meanc", 0.0, -10.0, 10.0); RooRealVar sigc ("sigc", "sigc", 2.0, -10.0, 10.0); RooGaussian gconv ("gconv", "gconv", signal, meanc, sigc); // Vector to store g1 and g2 before convolution. // The size of the vector is used in the 'for' loop below std::vector vec_gauss; vec_gauss.push_back(g1); vec_gauss.push_back(g2); // Create RooArgList for the g1 and g2 pdfs after convolution RooArgList convlist; // Loops through vec_gauss, applying convolution to each Gaussian. // Adds them to convlist after convolution. for(int i=1;i