Basic functionality: examples on normalization and integration of pdfs, construction of cumulative distribution functions from monodimensional pdfs 
  
from __future__ import print_function
import ROOT
 
 
x = ROOT.RooRealVar("x", "x", -10, 10)
 
gx = ROOT.RooGaussian("gx", "gx", x, ROOT.RooFit.RooConst(-2), ROOT.RooFit.RooConst(3))
 
 
print("gx = ", gx.getVal())
 
nset = {x}
print("gx_Norm[x] = ", gx.getVal(nset))
 
igx = gx.createIntegral({x})
print("gx_Int[x] = ", igx.getVal())
 
 
x.setRange("signal", -5, 5)
 
xset = {x}
igx_sig = gx.createIntegral(xset, NormSet=xset, Range="signal")
print("gx_Int[x|signal]_Norm[x] = ", igx_sig.getVal())
 
 
gx_cdf = gx.createCdf({x})
 
frame = x.frame(Title="cdf of Gaussian pdf")
gx_cdf.plotOn(frame)
 
c = ROOT.TCanvas("rf110_normintegration", "rf110_normintegration", 600, 600)
ROOT.gPad.SetLeftMargin(0.15)
frame.GetYaxis().SetTitleOffset(1.6)
frame.Draw()
 
c.SaveAs("rf110_normintegration.png")
  [#1] INFO:Eval -- RooRealVar::setRange(x) new range named 'signal' created with bounds [-5,5]
gx =  0.8007374029168081
gx_Norm[x] =  0.1068955044839622
gx_Int[x] =  7.490842639102233
gx_Int[x|signal]_Norm[x] =  0.8347532778470285
- Date
 - February 2018 
 
- Authors
 - Clemens Lange, Wouter Verkerke (C++ version) 
 
Definition in file rf110_normintegration.py.