#include "TROOT.h" #ifndef __CINT__ #include "RooGlobalFunc.h" #endif #include "TROOT.h" #include "RooRealVar.h" #include "RooAbsReal.h" #include "RooDataHist.h" #include "RooGenericPdf.h" using namespace RooFit ; void integTest() { Double_t Emin = 1.9; Double_t Emax = 8.0; RooRealVar E("E","E",Emin,Emin,Emax); RooRealVar L("L","Baseline",800,0,2e5); RooRealVar sinsq2th13("sinsq2th13","Sin^2(2theta13)",0.43); RooRealVar dms13("dms13","Delta m^2_{13}",0.00243); RooGenericPdf xsec("xsec","Cros section","0.952*(E-1.29332)*sqrt(pow((E-1.29332),2)-pow(0.511,2))",RooArgSet(E)); RooGenericPdf flux("flux","Unoscillated Flux","(50/1.4)*5.09*exp((-E/1.54)-pow(E/6.05,2)-pow(E/7.73,10))",RooArgSet(E)); RooGenericPdf surv("surv","Survival Probability","1-sinsq2th13*pow(sin(1.27*0.00243*L/E),2)",RooArgSet(E,L,sinsq2th13)); RooProdPdf clean("clean","Clean Function",RooArgList(xsec,flux,surv),0.0); RooGenericPdf messy("messy","Messy funciton","(50/1.4)*5.09*exp((-E/1.54)-pow(E/6.05,2)-pow(E/7.73,10))*0.952*(E-1.29332)*sqrt(pow((E-1.29332),2)-pow(0.511,2))*(1-sinsq2th13*pow(sin(1.27*0.00243*L/E),2))",RooArgSet(E,L,sinsq2th13)); RooAbsReal *int_clean = clean.createIntegral(E); RooAbsReal *int_messy = messy.createIntegral(E); cout << "Clean IntegralValue: " << int_clean->getVal() << endl; cout << "Messy Integral Value: " << int_messy->getVal() << endl; }