#include #include #include #include void problemDemo() { RooRealVar x ("x", "invariant mass", 1100, 1800, "MeV^c{2}"); RooRealVar E ("E", "center-of-mass energy", 2000, 2050, "MeV^c{2}"); RooRealVar a ("a", "composition parameter a", 1, 1, 1); RooRealVar b ("b", "composition parameter b", 1, 1, 1); RooGenericPdf demo ("demo", "problem demo", "a*x^2*E + b*x^3/E", RooArgList(x, E, a, b)); // Fit function to data... // Integrate complete function, i.e. x^2*E + x^3/E RooRealVar* intTotal = demo.createIntegral(RooArgSet(x, E)); a.setRange(0.0, 1.0); b.setRange(0.0, 1.0); b.setVal(0.0); // Integrate only x^2*E RooRealVar* intA = demo.createIntegral(RooArgSet(x, E)); a.setVal(0.0); b.setVal(1.0); // Integrate only x^3/E RooRealVar* intB = demo.createIntegral(RooArgSet(x, E)); a.setVal(1.0); std::cout << "Total Integral: " << intTotal->getVal() << std::endl; std::cout << "A Integral: " << intA->getVal() << std::endl; std::cout << "B Integral: " << intB->getVal() << std::endl; }