Skip to content

Instantly share code, notes, and snippets.

@KonstantinSchubert
Created April 28, 2016 14:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KonstantinSchubert/c7e8f8781a22e53fb14f7550fb91624c to your computer and use it in GitHub Desktop.
Save KonstantinSchubert/c7e8f8781a22e53fb14f7550fb91624c to your computer and use it in GitHub Desktop.
setNormRange does not work when doing an extended fit apparently!
## setNormRange does not work when doing an extended fit apparently!
import scipy.integrate
import numpy
import matplotlib.pyplot as plt
from ROOT import *
gErrorIgnoreLevel = kInfo;
points = [ 4630.206, 4905.73 , 5030.952, 4475.197, 4425.941, 4808.518, 4500.441, 4647.756, 4629.322, 5752.579, 4847.882, 6035.395, 4432.979, 4382.774, 4591.621]
ranges = [(4360.,5020.),(5626,6360)]
mass = RooRealVar("B_s0_MM","B_s0_MM", 4360., 6360., "MeV")
mass.setRange("fitRangeLeft", ranges[0][0] , ranges[0][1])
mass.setRange("fitRangeRight", ranges[1][0], ranges[1][1])
data = RooDataSet("data","data", RooArgSet(mass))
for point in points:
mass.setVal(point)
data.addFast(RooArgSet(mass))
## First do normal fit
exponent1 = RooRealVar("exponent","exponent", 0, -1., 1.)
data_model1 = RooExponential("data_model", "data_model", mass, exponent1);
data_model1.setNormRange("fitRangeLeft,fitRangeRight")
rooFitResult = data_model1.fitTo(data, RooFit.Save(), RooFit.Range("fitRangeLeft,fitRangeRight"), RooFit.PrintLevel(-1))
rooFitResult.Print("v")
# Then do extended fit
n_bkg = RooRealVar("Nbkg","Nbkg", 20, 0, 1000);
exponent = RooRealVar("exponent","exponent", 0, -1., 1.)
data_model = RooExponential("data_model", "data_model", mass, exponent);
data_model_extended = RooExtendPdf("data_model_extended","data_model_extended",data_model,n_bkg) ;
data_model_extended.setNormRange("fitRangeLeft,fitRangeRight")
rooFitResult = data_model_extended.fitTo(data, RooFit.Save(), RooFit.Range("fitRangeLeft,fitRangeRight"), RooFit.PrintLevel(-1) )
rooFitResult.Print("v")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment