Exemple #1
0
########################
### 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 = []
Exemple #2
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)
########################
### 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:
Exemple #5
0
########################
### 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'])
Exemple #6
0
        "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)