Rf 5 0 5_Asciicfg

Organization and simultaneous fits: reading and writing ASCII configuration files

Author: Clemens Lange, Wouter Verkerke (C++ version)
This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Monday, January 17, 2022 at 10:04 AM.

In [ ]:
from __future__ import print_function
import ROOT

Create pdf

Construct gauss(x,m,s)

In [ ]:
x = ROOT.RooRealVar("x", "x", -10, 10)
m = ROOT.RooRealVar("m", "m", 0, -10, 10)
s = ROOT.RooRealVar("s", "s", 1, -10, 10)
gauss = ROOT.RooGaussian("g", "g", x, m, s)

Construct poly(x,p0)

In [ ]:
p0 = ROOT.RooRealVar("p0", "p0", 0.01, 0.0, 1.0)
poly = ROOT.RooPolynomial("p", "p", x, [p0])

model = fgauss(x) + (1-f)poly(x)

In [ ]:
f = ROOT.RooRealVar("f", "f", 0.5, 0.0, 1.0)
model = ROOT.RooAddPdf("model", "model", [gauss, poly], [f])

Fit model to toy data

In [ ]:
d = model.generate({x}, 1000)
model.fitTo(d)

Write parameters to ASCII file

Obtain set of parameters

In [ ]:
params = model.getParameters({x})

Write parameters to file

In [ ]:
params.writeToFile("rf505_asciicfg_example.txt")

Read parameters from ASCII file

Read parameters from file

In [ ]:
params.readFromFile("rf505_asciicfg_example.txt")
params.Print("v")

configFile = ROOT.gROOT.GetTutorialDir().Data() + "/roofit/rf505_asciicfg.txt"

Read parameters from section 'Section2' of file

In [ ]:
params.readFromFile(configFile, "", "Section2")
params.Print("v")

Read parameters from section 'Section3' of file. Mark all variables that were processed with the "READ" attribute

In [ ]:
params.readFromFile(configFile, "READ", "Section3")

Print the list of parameters that were not read from Section3

In [ ]:
print("The following parameters of the were _not_ read from Section3: ", params.selectByAttrib("READ", False))

Read parameters from section 'Section4' of file, contains 'include file' statement of rf505_asciicfg_example.txt so that we effective read the same

In [ ]:
params.readFromFile(configFile, "", "Section4")
params.Print("v")