#include "RooAbsReal.h" #include "RooGaussian.h" #include "RooMinuit.h" #include "RooRealVar.h" #include "RooWorkspace.h" RooWorkspace *GetWorkspace() { RooWorkspace *ws = new RooWorkspace("ws"); RooRealVar x("x","x",-5,5); RooRealVar m("m","m",0,-2,2); RooRealVar s("s","s",1,0,3); RooGaussian g("g","g",x,m,s); ws->import(g); return ws; } int testTVF() { RooWorkspace *ws = GetWorkspace(); RooDataSet *data = (RooDataSet*)ws->pdf("g")->generate(RooArgSet(*ws->var("x")),10000); ws->pdf("g")->fitTo(*data); RooAbsReal* nll = ws->pdf("g")->createNLL(*data) ; //double nll0= nll->getVal(nll->getVariables()); // RooFormulaVar nll2("nll2",("@0-"+std::to_string(nll0)).c_str(),*nll) ; RooMinuit m(*nll) ; m.migrad() ; m.hesse() ; m.save(); return 0; }