bkgmodel=RooAddPdf("bkgmodel"+name,"bkg",RooArgList(bkg),RooArgList(nbkg)) bkgmodel.fitTo(data,RooFit.SumW2Error(True)) bkgmodel.fitTo(data,RooFit.SumW2Error(True)) bkgmodel.fitTo(data,RooFit.SumW2Error(True)) chi2=RooChi2Var("chi2","chi2",bkgmodel,data,RooFit.DataError(RooAbsData.SumW2)) nbins=data.numEntries() nfree=bkgmodel.getParameters(data).selectByAttrib("Constant",False).getSize() xframe=mass.frame(RooFit.Title(" #chi^{2}/N="+str(int((chi2.getVal()/(nbins-nfree))*10.)/10.))) data.plotOn(xframe,RooFit.DataError(RooAbsData.SumW2),RooFit.MarkerSize(1)) bkgmodel.plotOn(xframe,RooFit.Normalization(1.0,RooAbsReal.RelativeExpected)) canvas=TCanvas("c4","c4",0,0,600,600) xframe.GetYaxis().SetTitle("Events") xframe.Draw() canvas.SaveAs(prefix+"_"+plot[0]+name+"_bkgfit.pdf") print "generating pseudodata", nbkg.getValV()+nsigref.getValV() pseudodata[name]=model.generateBinned(RooArgSet(mass),nbkg.getValV()+nsigref.getValV()) datalist[name]=data modellist[name]=model if fit=="data": model.fitTo(data) model.fitTo(data) model.fitTo(data) chi2=RooChi2Var("chi2","chi2",model,data) else: model.fitTo(data,RooFit.SumW2Error(True)) model.fitTo(data,RooFit.SumW2Error(True)) model.fitTo(data,RooFit.SumW2Error(True)) chi2=RooChi2Var("chi2","chi2",model,data,RooFit.DataError(RooAbsData.SumW2)) nbins=data.numEntries() nfree=model.getParameters(data).selectByAttrib("Constant",False).getSize()