13from __future__ 
import print_function
 
   20x = ROOT.RooRealVar(
"x", 
"x", -10, 10)
 
   23mx = ROOT.RooRealVar(
"mx", 
"mx", 0, -10, 10)
 
   24gx = ROOT.RooGaussian(
"gx", 
"gx", x, mx, ROOT.RooFit.RooConst(1))
 
   27px = ROOT.RooPolynomial(
"px", 
"px", x)
 
   30f = ROOT.RooRealVar(
"f", 
"f", 0.0, 1.0)
 
   31model = ROOT.RooAddPdf(
"model", 
"model", [gx, px], [f])
 
   34modelData = model.generate({x}, 10000)
 
   40r_full = model.fitTo(modelData, Save=
True, PrintLevel=-1)
 
   46x.setRange(
"signal", -3, 3)
 
   49r_sig = model.fitTo(modelData, Save=
True, Range=
"signal", PrintLevel=-1)
 
   55frame = x.frame(Title=
"Fitting a sub range")
 
   56modelData.plotOn(frame)
 
   57model.plotOn(frame, Range=
"Full", LineColor=
"r", LineStyle=
"--")  
 
   61print(
"result of fit on all data ")
 
   63print(
"result of fit in in signal region (note increased error on signal fraction)")
 
   67c = ROOT.TCanvas(
"rf203_ranges", 
"rf203_ranges", 600, 600)
 
   68ROOT.gPad.SetLeftMargin(0.15)
 
   69frame.GetYaxis().SetTitleOffset(1.4)
 
   72c.SaveAs(
"rf203_ranges.png")