void rf510_wsnamedsets()
{
fillWorkspace(*w);
std::unique_ptr<RooDataSet> data{model->generate(*w->set("observables"), 1000)};
data->plotOn(frame);
model->plotOn(frame);
w->loadSnapshot("reference_fit");
w->loadSnapshot("reference_fit_bkgonly");
new TCanvas(
"rf510_wsnamedsets",
"rf503_wsnamedsets", 600, 600);
gPad->SetLeftMargin(0.15);
w->Print();
}
{
RooRealVar mean(
"mean",
"mean of gaussians", 5, 0, 10);
RooRealVar sigma1(
"sigma1",
"width of gaussians", 0.5);
RooRealVar sigma2(
"sigma2",
"width of gaussians", 1);
RooGaussian sig1(
"sig1",
"Signal component 1",
x, mean, sigma1);
RooGaussian sig2(
"sig2",
"Signal component 2",
x, mean, sigma2);
RooRealVar sig1frac(
"sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.);
RooRealVar bkgfrac(
"bkgfrac",
"fraction of background", 0.5, 0., 1.);
w.import(model);
std::unique_ptr<RooArgSet> params{model.getParameters(
x)};
w.defineSet("parameters", *params);
w.defineSet(
"observables",
x);
std::unique_ptr<RooDataSet> refData{model.generate(
x, 10000)};
w.saveSnapshot("reference_fit", *params, true);
bkgfrac.setVal(1);
bkgfrac.setConstant(true);
bkgfrac.removeError();
w.saveSnapshot("reference_fit_bkgonly", *params, true);
}
Abstract interface for all probability density functions.
Efficient implementation of a sum of PDFs of the form.
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Chebychev polynomial p.d.f.
Plot frame and a container for graphics objects within that frame.
static RooPlot * frame(const RooAbsRealLValue &var, double xmin, double xmax, Int_t nBins)
Create a new frame for a given variable in x.
void Draw(Option_t *options=nullptr) override
Draw this plot and all of the elements it contains.
Variable that can be changed from the outside.
Persistable container for RooFit projects.
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title.
RooCmdArg PrintLevel(Int_t code)
RooCmdArg LineColor(TColorNumber color)
RooCmdArg LineStyle(Style_t style)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
[#0] WARNING:InputArguments -- The parameter 'sigma1' with range [-inf, inf] of the RooGaussian 'sig1' exceeds the safe range of (0, inf). Advise to limit its range.
[#0] WARNING:InputArguments -- The parameter 'sigma2' with range [-inf, inf] of the RooGaussian 'sig2' exceeds the safe range of (0, inf). Advise to limit its range.
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooAddPdf::model
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooChebychev::bkg
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::x
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::a0
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::a1
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::bkgfrac
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooAddPdf::sig
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooGaussian::sig1
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::mean
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::sigma1
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::sig1frac
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooGaussian::sig2
[#1] INFO:ObjectHandling -- RooWorkspace::import(w) importing RooRealVar::sigma2
[#1] INFO:Fitting -- RooAbsPdf::fitTo(model) fixing normalization set for coefficient determination to observables in data
[#1] INFO:Fitting -- using generic CPU library compiled with no vectorizations
[#1] INFO:Fitting -- Creation of NLL object took 1.00131 ms
[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_model_modelData) Summation contains a RooNLLVar, using its error level
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: activating const optimization
[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: deactivating const optimization
[#1] INFO:Fitting -- RooAbsPdf::fitTo(model) fixing normalization set for coefficient determination to observables in data
[#1] INFO:Fitting -- Creation of NLL object took 647.95 μs
[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_model_modelData) Summation contains a RooNLLVar, using its error level
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: activating const optimization
[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
[#0] ERROR:Minimization -- RooMinimizer::calculateHessErrors() Error when calculating Hessian
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: deactivating const optimization
[#1] INFO:Fitting -- RooAbsPdf::fitTo(model) fixing normalization set for coefficient determination to observables in data
[#1] INFO:Fitting -- Creation of NLL object took 538.986 μs
[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_model_modelData) Summation contains a RooNLLVar, using its error level
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: activating const optimization
[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: deactivating const optimization
RooWorkspace(w) w contents
variables
---------
(a0,a1,bkgfrac,mean,sig1frac,sigma1,sigma2,x)
p.d.f.s
-------
RooChebychev::bkg[ x=x coefList=(a0,a1) ] = 1
RooAddPdf::model[ bkgfrac * bkg + [%] * sig ] = 1/1
RooAddPdf::sig[ sig1frac * sig1 + [%] * sig2 ] = 0.999388/1
RooGaussian::sig1[ x=x mean=mean sigma=sigma1 ] = 0.999291
RooGaussian::sig2[ x=x mean=mean sigma=sigma2 ] = 0.999823
parameter snapshots
-------------------
reference_fit = (a0=0.500613 +/- 0.023199,a1=0.160315 +/- 0.0373121,bkgfrac=0.504699 +/- 0.0113933,mean=5.01883 +/- 0.0101222,sigma1=0.5[C],sig1frac=0.8179 +/- 0.0374037,sigma2=1[C])
reference_fit_bkgonly = (a0=0.474264 +/- 0,a1=6.8252e-12 +/- 0,bkgfrac=1[C],mean=5.01883 +/- 0,sigma1=0.5[C],sig1frac=0.8179 +/- 0,sigma2=1[C])
named sets
----------
observables:(x)
parameters:(a0,a1,bkgfrac,mean,sig1frac,sigma1,sigma2)