In [1]:
In [1]:
from ROOT import TFile, RooRealVar, RooDataSet, RooArgSet, RooGaussian, RooChebychev, RooArgList, RooAddPdf, RooFit
In [2]:
inputfile = TFile("TESHEP_Pedagogical_Data.root")
In [3]:
inputchain = inputfile.Get("DecayTree")
In [4]:
inputchain
Out[4]:
In [5]:
nameoffitvar = "D0_MM"
In [6]:
rangeoffit = (1816., 1914)
In [7]:
backgroundrange = (1890., 1914.)
In [8]:
nsigmasigbox = 2.
In [9]:
massvar = RooRealVar("D0_MM", "D0_MM", rangeoffit[0], rangeoffit[1])
In [10]:
mydataset = RooDataSet("DecayTreeDataSet","DecayTreeDataSet",RooArgSet(massvar))
In [11]:
mydataset
Out[11]:
In [12]:
for entry in range(0,inputchain.GetEntries()) :
inputchain.GetEntry(entry)
if inputchain.__getattr__(nameoffitvar) > rangeoffit[1] or \
inputchain.__getattr__(nameoffitvar) < rangeoffit[0] :
continue
massvar.setVal(inputchain.__getattr__(nameoffitvar))
mydataset.add(RooArgSet(massvar))
In [13]:
gausMean_B = RooRealVar("gausMean_B","gausMean_B",(rangeoffit[0]+rangeoffit[1])/2.,rangeoffit[0],rangeoffit[1])
gausWidth_B = RooRealVar("gausWidth_B","gausWidth_B",15.,1.,50.)
chebOne_B = RooRealVar("chebOne_B","chebOne_B",0.1,-5.,5.)
gaussian_B = RooGaussian("gaussian_B","gaussian_B",massvar,gausMean_B,gausWidth_B)
cheb_B = RooChebychev("cheb_B","cheb_B",massvar,RooArgList(chebOne_B))
In [ ]:
N_Sig_B = RooRealVar("N_Sig_B","N_Sig_B",1000,0,25000)
N_Bkg_B = RooRealVar("N_Bkg_B","N_Bkg_B",1000,0,50000)
In [ ]:
totalpdf_B = RooAddPdf("totalpdf_B","totalpdf_B", RooArgList(gaussian_B,cheb_B), RooArgList(N_Sig_B,N_Bkg_B))
totalpdf_B.fitTo(mydataset, RooFit.Extended())
In [ ]:
canv_Dmass = rootnotes.default_canvas()
frame_Dmass = massvar.frame()
mydataset.plotOn(frame_Dmass,RooFit.Binning(100))
totalpdf_B.plotOn(frame_Dmass)
frame_Dmass.Draw()
In [ ]:
canv_Dmass
In [ ]: