######################## ### normalized plots ### ######################## if plotNormalization: hpp3lPlotter.clearHistograms() hpp3lPlotter.addHistogram('BG',allSamplesDict['BG']) for signal in signals: hpp3lPlotter.addHistogram(signal,sigMap[signal],signal=True) for plot in plots: plotname = 'default/{0}'.format(plot) savename = 'normalized/{0}'.format(plot) kwargs = deepcopy(plots[plot]) if plot in norm_cust: kwargs.update(norm_cust[plot]) hpp3lPlotter.plotNormalized(plotname,savename,**kwargs) for cat in cats: plotnames = [] for subcat in subCatChannels[cat]: plotnames += ['default/{0}/{1}'.format(chan,plot) for chan in subCatChannels[cat][subcat]] savename = 'normalized/{0}/{1}'.format(cat,plot) if doCat: hpp3lPlotter.plotNormalized(plotnames,savename,**kwargs) #################################### ### Signal over background plots ### #################################### if plotSOverB: hpp3lPlotter.clearHistograms() hpp3lPlotter.addHistogram('BG',allSamplesDict['BG']) sigOrder = []
for varname in ['wzLoose','wzMedium','wzTight','heepV60','mvaTrigWP80','mvaTrigWP90','mvaNonTrigWP80','mvaNonTrigWP90']: plotname = 'electron_{0}'.format(varname) num = 'h_{0}_numerator'.format(plotname) numFake = 'h_{0}_fake_numerator'.format(plotname) numJet = 'h_{0}_jet_numerator'.format(plotname) denom = 'h_{0}_denominator'.format(plotname) denomJet = 'h_{0}_jet_denominator'.format(plotname) denomFake = 'h_{0}_fake_denominator'.format(plotname) numMap = {'Z':num, 'TT':numJet, 'QCD': numFake, 'HppHmm500GeV':num} denomMap = {'Z':denom, 'TT':denomJet, 'QCD': denomFake, 'HppHmm500GeV':denom} effPlotter.plotRatio(numMap,denomMap,plotname,numcol=2,legendpos=34,ymax=1.3,ymin=0.,yaxis='Efficiency',xaxis='p^{e}_{T} (GeV)',rebin=5) sigPlotter.plotRatio(num,denom,plotname,numcol=2,legendpos=34,ymax=1.3,ymin=0.,yaxis='Efficiency',xaxis='p^{e}_{T} (GeV)',rebin=5) for region in ['barrel','endcap']: for var in ['pt','sigmaIEtaIEta','absDEtaIn','absDPhiIn','hOverE','relIsoEA','ooEmooP','absDxy','absDz','conversionVeto']: varname = 'h_electron_{0}_{1}'.format(var,region) effPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],customOrder=['Z','HppHmm500GeV'],logy=0) sigPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],logy=0) for var in ['eta']: varname = 'h_electron_{0}'.format(var) effPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],customOrder=['Z','HppHmm500GeV'],logy=0) sigPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],logy=0) # muons for varname in ['wzLoose','wzMedium','highPt_tightiso','tight_tightiso']: plotname = 'muon_{0}'.format(varname) num = 'h_{0}_numerator'.format(plotname) numFake = 'h_{0}_fake_numerator'.format(plotname) numJet = 'h_{0}_jet_numerator'.format(plotname) denom = 'h_{0}_denominator'.format(plotname) denomFake = 'h_{0}_fake_denominator'.format(plotname)
######################## ### normalized plots ### ######################## if plotNormalization: hpp4lPlotter.clearHistograms() hpp4lPlotter.addHistogram('BG',allSamplesDict['BG']) for signal in signals: hpp4lPlotter.addHistogram(signal,sigMap[signal],signal=True) for plot in plots: plotname = 'default/{0}'.format(plot) savename = 'normalized/{0}'.format(plot) kwargs = deepcopy(plots[plot]) if plot in norm_cust: kwargs.update(norm_cust[plot]) hpp4lPlotter.plotNormalized(plotname,savename,**kwargs) for cat in cats: plotnames = [] for subcat in subCatChannels[cat]: plotnames += ['default/{0}/{1}'.format(chan,plot) for chan in subCatChannels[cat][subcat]] savename = 'normalized/{0}/{1}'.format(cat,plot) if doCat: hpp4lPlotter.plotNormalized(plotnames,savename,**kwargs) if plotSOverB: hpp4lPlotter.clearHistograms() hpp4lPlotter.addHistogram('BG',allSamplesDict['BG']) sigOrder = [] bgOrder = [] for mass in masses: name = 'HppHmm{0}GeV'.format(mass)
'name': 'Region {}'.format(region), 'linecolor': colors[region], 'fillcolor': colors[region] }) for plot in plots: kwargs = deepcopy(plots[plot]) plotname = { 'region{}'.format(region): 'lowmass/region{}/{}'.format(region, plot) for region in regions } savename = 'lowmass/regions/{}'.format(plot) plotter.plot(plotname, savename, **kwargs) savename = 'lowmass/regions_normalized/{}'.format(plot) plotter.plotNormalized(plotname, savename, **kwargs) for s in special: for plot in special[s]: kwargs = deepcopy(special[s][plot]) plotname = { 'region{}'.format(region): 'lowmass/region{}/{}'.format(region, plot) for region in regions } savename = 'lowmass/regions/{}_{}'.format(plot, s) plotter.plot(plotname, savename, **kwargs) savename = 'lowmass/regions_normalized/{}_{}'.format(plot, s) plotter.plotNormalized(plotname, savename, **kwargs) for plot in plots:
######################## ### normalized plots ### ######################## if plotNormalization: hpp4lPlotter.clearHistograms() hpp4lPlotter.addHistogram('BG', allSamplesDict['BG']) for signal in signals: hpp4lPlotter.addHistogram(signal, sigMap[signal], signal=True) for plot in plots: plotname = 'default/{0}'.format(plot) savename = 'normalized/{0}'.format(plot) kwargs = deepcopy(plots[plot]) if plot in norm_cust: kwargs.update(norm_cust[plot]) hpp4lPlotter.plotNormalized(plotname, savename, **kwargs) for cat in cats: plotnames = [] for subcat in subCatChannels[cat]: plotnames += [ 'default/{0}/{1}'.format(chan, plot) for chan in subCatChannels[cat][subcat] ] savename = 'normalized/{0}/{1}'.format(cat, plot) if doCat: hpp4lPlotter.plotNormalized(plotnames, savename, **kwargs) if plotSOverB: hpp4lPlotter.clearHistograms() hpp4lPlotter.addHistogram('BG', allSamplesDict['BG'])
"sigmaIEtaIEta", "absDEtaIn", "absDPhiIn", "hOverE", "relIsoEA", "ooEmooP", "absDxy", "absDz", "conversionVeto", ]: varname = "h_electron_{0}_{1}".format(var, region) effPlotter.plotNormalized( varname, varname, legendps=34, yaxis="Unit Normalized", xaxis=xaxisMap[var], customOrder=["Z", "HppHmm500GeV"], logy=0, ) sigPlotter.plotNormalized(varname, varname, legendps=34, yaxis="Unit Normalized", xaxis=xaxisMap[var], logy=0) for var in ["eta"]: varname = "h_electron_{0}".format(var) effPlotter.plotNormalized( varname, varname, legendps=34, yaxis="Unit Normalized", xaxis=xaxisMap[var], customOrder=["Z", "HppHmm500GeV"], logy=0,
for varname in ['wzLoose','wzMedium','wzTight','heepV60','mvaTrigWP80','mvaTrigWP90','mvaNonTrigWP80','mvaNonTrigWP90']: plotname = 'electron_{0}'.format(varname) num = 'h_{0}_numerator'.format(plotname) numFake = 'h_{0}_fake_numerator'.format(plotname) numJet = 'h_{0}_jet_numerator'.format(plotname) denom = 'h_{0}_denominator'.format(plotname) denomJet = 'h_{0}_jet_denominator'.format(plotname) denomFake = 'h_{0}_fake_denominator'.format(plotname) numMap = {'Z':num, 'TT':numJet, 'QCD': numFake, 'HppHmm500GeV':num} denomMap = {'Z':denom, 'TT':denomJet, 'QCD': denomFake, 'HppHmm500GeV':denom} effPlotter.plotRatio(numMap,denomMap,plotname,numcol=2,legendpos=34,ymax=1.3,ymin=0.,yaxis='Efficiency',xaxis='p^{e}_{T} (GeV)',rebin=5) sigPlotter.plotRatio(num,denom,plotname,numcol=2,legendpos=34,ymax=1.3,ymin=0.,yaxis='Efficiency',xaxis='p^{e}_{T} (GeV)',rebin=5) for region in ['barrel','endcap']: for var in ['pt','sigmaIEtaIEta','absDEtaIn','absDPhiIn','hOverE','relIsoEA','ooEmooP','absDxy','absDz','conversionVeto']: varname = 'h_electron_{0}_{1}'.format(var,region) effPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],customOrder=['Z','HppHmm500GeV'],logy=0) sigPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],logy=0) for var in ['eta']: varname = 'h_electron_{0}'.format(var) effPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],customOrder=['Z','HppHmm500GeV'],logy=0) sigPlotter.plotNormalized(varname,varname,legendps=34,yaxis='Unit Normalized',xaxis=xaxisMap[var],logy=0) # muons for varname in ['wzLoose','wzMedium','highPt_tightiso','tight_tightiso']: plotname = 'muon_{0}'.format(varname) num = 'h_{0}_numerator'.format(plotname) numFake = 'h_{0}_fake_numerator'.format(plotname) numJet = 'h_{0}_jet_numerator'.format(plotname) denom = 'h_{0}_denominator'.format(plotname) denomFake = 'h_{0}_fake_denominator'.format(plotname)
plotter.clearHistograms() name = signame.format(h=h,a=a) ggname = ggsigname.format(h=h,a=a) vbfname = vbfsigname.format(h=h,a=a) plotter.addHistogram(ggname,sigMap[ggname],signal=True) plotter.addHistogram(vbfname,sigMap[vbfname],signal=True) for plot in plots: for sel in signalsels: if 'lowmass' in sel or 'highmass' in sel: continue kwargs = deepcopy(plots[plot]) if plot in plotsSignal: kwargs.update(deepcopy(plotsSignal[plot])) plotname = '{0}/{1}'.format(sel,plot) savename = '{0}/h{h}a{a}/{1}'.format(sel,plot,a=a,h=h) plotter.plotNormalized(plotname,savename,plotratio=False,**kwargs) ################## ### Datadriven ### ################## # for now, only data (no mc subtraction) def getDatadrivenPlot(*plots,**kwargs): region = kwargs.pop('region','A') source = kwargs.pop('source','D') looseMVA = kwargs.pop('looseMVA',None) tag = kwargs.pop('tag',None) histMap = {} for s in samples+signals+allsignals+['data','datadriven']: histMap[s] = [] for plot in plots: aplot = '{}region{}/{}'.format(tag+'/' if tag else '',region,plot) bplot = '{}region{}_fakeFor{}/{}'.format(tag+'/' if tag else '',source,region,plot)