for bin in range(1, hist.GetNbinsX() + 1): hist.SetBinContent(bin, flats[syst]) #yp.prepKappaHist(hist) #yp.prepRatio(hist) # normalize to central value #hist.Divide(hCentral) hists.append(hist) #for hist in hists: print hist.GetName() # make stack/total syst hists #total = yp.getTotal(hists) stack = yp.getStack(hists) #sqHist = yp.getSquaredSum(hists) sqHist = yp.getSquaredSum(hists[::-1]) hCentralUncert = yp.getHistWithError(hCentral, sqHist) hCentral.GetYaxis().SetRangeUser(0, 5.9) hCentral.GetYaxis().SetTitleSize(0.15) hCentral.GetYaxis().SetTitleOffset(0.17) # save hists allhists += hists + [hCentral, hCentralUncert, stack, sqHist] canv = yp.plotHists(var + "_" + signame, [stack, sqHist], [hCentral, hCentralUncert], "TLC",
# set error for i in xrange(1,hPredUnc.GetNbinsX()+1): try: hPredUnc.SetBinError(i,hDataPred.GetBinError(i)/hDataPred.GetBinContent(i)) except ZeroDivisionError: hPredUnc.SetBinError(i, 0.) # MC samps samps = [(samp,cat) for samp in mcSamps] mcHists = yp.makeSampHists(yds,samps) # Scale MC hists to Prediction scaleToHist(mcHists,hDataPred) mcStack = yp.getStack(mcHists) hUncert = hDataPred.Clone("uncert") hUncert.SetTitle("Statistical Uncertainty only") yp.setUnc(hUncert) #canv = plotHists("DataNJ45_"+cat,[stack,hMCpred,hDataPred,hData,total],ratio) width = 1200 height = 600 legPos = "TM" if doSquare == True: width = 600 height = 600 legPos = "Square" if doPoisErr: canv = yp.plotHists("SR_MB_Prediction",[mcStack,hUncert,hDataPois],[hPredUnc,ratioPois],legPos, width, height, logY = True)
hist.GetYaxis().SetTitle("Relative uncertainty") hist.GetYaxis().SetTitleSize(0.04) hist.GetYaxis().SetTitleOffset(0.8) #yp.prepKappaHist(hist) #yp.prepRatio(hist) # normalize to central value #hist.Divide(hCentral) hists.append(hist) # make stack/total syst hists #total = yp.getTotal(hists) stack = yp.getStack(hists) sqHist = yp.getSquaredSum(hists) hCentralUncert = yp.getHistWithError(hCentral, sqHist) canv = yp.plotHists(var+"_"+samp+"_Syst",[stack,sqHist],[hCentral,hCentralUncert],"TM", 1200, 600) # canv = yp.plotHists(var+"_"+samp+"_Syst",[sqHist]+hists,[hCentral,hCentralUncert],"TM", 1200, 600) # canv = yp.plotHists(var+"_"+samp+"_Stat",[stack,sqHist],hCentral,"TM", 1200, 600) canvs.append(canv) if not yp._batchMode: raw_input("Enter any key to exit") # Save canvases exts = [".pdf",".png",".root"] #exts = [".pdf"] #odir = "BinPlots/Syst/Combine/test/allSF_noPU_Wpol/Method1A/"
mcSamps = ['DY','TTV','SingleT','WJets','TT'] #mcSamps = ['EWK'] # update colors yp.colorDict["MC_prediction"] = yp.kRed yp.colorDict["Data_prediction"] = yp.kRed # Category cat = "SR_MB_predict" # MC samps samps = [(samp,cat) for samp in mcSamps] mcHists = yp.makeSampHists(yds,samps) mcStack = yp.getStack(mcHists) hTotal = yp.getTotal(mcHists) # for MC closure mcsamp = "EWK_poisson" mcsamp = "background_poisson_QCDsubtr" hMCpred = yp.makeSampHisto(yds,mcsamp,cat,"MC_prediction"); hMCpred.SetTitle("MC (Pred)") # DATA hDataPred = yp.makeSampHisto(yds,"data_QCDsubtr",cat,"Data_prediction"); hDataPred.SetTitle("Data (Pred)") hData = yp.makeSampHisto(yds,"data_QCDsubtr","SR_MB","Data"); hData.SetTitle("Data") ## Append Systematics to prediction print "Appending syst. unc. to prediction and total MC" hDataPred = yp.getHistWithError(hDataPred, hKappaSysts, new = False) hTotal = yp.getHistWithError(hTotal, hMCSysts, new = False)
#samps = ["TTJets","WJets","TTV","DY","SingleTop"] # mcSamps = ["EWK","TTJets","WJets","SingleTop","DY","TTV"] #mcSamps = ['TTdiLep','TTsemiLep','WJets','TTV','SingleT','DY'] mcSamps = ['DY', 'TTV', 'SingleT', 'WJets', 'TTdiLep', 'TTsemiLep'] cat = "SR_MB" #logY = True logY = False print "Making plot for", cat # MC samps samps = [(samp, cat) for samp in mcSamps] mcHists = yp.makeSampHists(ydsMC, samps) hMC = yp.getStack(mcHists) hTotal = yp.getTotal(mcHists) # Signals sighists = [] masses = [] mass = "mGo1500_mLSP100" massName = "(1500,100)" masses.append((mass, massName, yp.kMagenta)) mass = "mGo1200_mLSP800" massName = "(1200,800)" masses.append((mass, massName, yp.kBlack)) for (mass, massName, col) in masses: