'eta'     : {'xaxis': '#eta', 'yaxis': 'Events', 'rebin': 5, 'rangex': [-2.5,2.5]},
    #'met'     : {'xaxis': 'E_{T}^{miss} (GeV)', 'yaxis': 'Events/0.2 GeV', 'rebin': 2, 'rangex': [0,200]},
    'wMass'   : {'xaxis': 'm_{T}^{l^{+},MET} (GeV)', 'yaxis': 'Events/0.5 GeV', 'rebin': 5, 'rangex': [0,200]},
}

# signal region
for plot in plots:
    for lepton in ['loose','medium','tight']:
        for chan in chans:
            plotname = '{0}/{1}/{2}'.format(lepton,chan,plot)
            savename = '{0}/{1}/{2}'.format(lepton,chan,plot)
            dijetFakeRatePlotter.plot(plotname,savename,**plots[plot])


# plots of multiple ptcuts on same plot
dijetFakeRatePlotter.clearHistograms()
jetPts = [20,25,30,35,40,45,50]
jetPts = [20,30,40,50]
dRs = [0.5,0.75,1.,1.25,1.5]
jetPtColors = {
    10 : ROOT.TColor.GetColor('#000000'),
    15 : ROOT.TColor.GetColor('#330000'),
    20 : ROOT.TColor.GetColor('#660000'),
    25 : ROOT.TColor.GetColor('#800000'),
    30 : ROOT.TColor.GetColor('#990000'),
    35 : ROOT.TColor.GetColor('#B20000'),
    40 : ROOT.TColor.GetColor('#CC0000'),
    45 : ROOT.TColor.GetColor('#FF0000'),
    50 : ROOT.TColor.GetColor('#FF3333'),
}
for jetPt in jetPts:
Exemple #2
0
### MC based BG estimate ###
############################
for s in samples:
    plotter.addHistogramToStack(s, sigMap[s])

if not blind: plotter.addHistogram('data', sigMap['data'])

for plot in plots:
    for sel in sels:
        kwargs = deepcopy(plots[plot])
        plotname = '{0}/{1}'.format(sel, plot)
        savename = '{0}/mc/{1}'.format(sel, plot)
        plotter.plot(plotname, savename, **kwargs)

# ratios of tight/loose as func of pt/eta
plotter.clearHistograms()
plotter.addHistogram('MC', sigMap['BG'])
plotter.addHistogram('Z', sigMap['Z'])
plotter.addHistogram('data',
                     sigMap['data'],
                     style={
                         'linecolor': ROOT.kBlack,
                         'name': 'Data'
                     })
plotter.addHistogram('data_uncorrected',
                     sigMap['data'],
                     style={
                         'linecolor': ROOT.kRed,
                         'name': 'Uncorrected'
                     })
Exemple #3
0
    # partially blinded plots
    if blind:
        hpp3lPlotter.addHistogram('data',sigMap['data'])

        for plot in blind_cust:
            kwargs = deepcopy(plots[plot])
            kwargs.update(blind_cust[plot])
            plotWithCategories(hpp3lPlotter,plot,saveDir='mc',baseDir='default',postfix='blinder',perCatBins=True,**kwargs)


##############################
### datadriven backgrounds ###
##############################
if plotDatadriven:
    hpp3lPlotter.clearHistograms()

    hpp3lPlotter.addHistogramToStack('datadriven',datadrivenSamples)

    for s in samples:
        hpp3lPlotter.addHistogramToStack(s,sigMapDD[s])

    for signal in signals:
        hpp3lPlotter.addHistogram(signal,sigMapDD[signal],signal=True)

    if not blind: hpp3lPlotter.addHistogram('data',sigMapDD['data'])

    if plotCount: plotCounts(hpp3lPlotter,baseDir='default',saveDir='datadriven',datadriven=True)

    for plot in plots:
        kwargs = deepcopy(plots[plot])
#    #hpp4lPlotter.plot(plotvars,savename,**kwargs)
#    for cat in cats:
#        plotvars = {}
#        for mode in ['default','zveto']:
#            plotvars[mode] = []
#            for subcat in subCatChannels[cat]:
#                plotvars[mode] += ['{0}/{1}/{2}'.format(mode,chan,plot) for chan in subCatChannels[cat][subcat]]
#        savename = 'zVeto/{0}/{1}'.format(cat,plot)
#        if doCat: hpp4lPlotter.plotNormalized(plotnames,savename,**kwargs)
#        #if doCat: hpp4lPlotter.plot(plotnames,savename,**kwargs)

##############################
### datadriven backgrounds ###
##############################
if plotDatadriven:
    hpp4lPlotter.clearHistograms()
    
    hpp4lPlotter.addHistogramToStack('datadriven',datadrivenSamples)
    
    for s in samples:
        hpp4lPlotter.addHistogramToStack(s,sigMapDD[s])
    
    for signal in signals:
        hpp4lPlotter.addHistogram(signal,sigMapDD[signal],signal=True)

    if not blind: hpp4lPlotter.addHistogram('data',sigMapDD['data'])
    
    if plotCount: plotCounts(hpp4lPlotter,baseDir='default',saveDir='datadriven',datadriven=True)
    
    for plot in plots:
        kwargs = deepcopy(plots[plot])
            savename = '{0}/{1}/{2}'.format(sign,chan,plot)
            chargePlotter.plot(plotname,savename,**plots[plot])

# sum gen matched
for plot in plots:
    for chan in chans:
        plotnames = {}
        for sample in samples:
            plotnames[sample] = ['{0}/{1}/{2}'.format('SS1',chan,plot), '{0}/{1}/{2}'.format('SS2',chan,plot)]
        plotnames['data'] = ['{0}/{1}/{2}'.format('SS',chan,plot)]
        savename = '{0}/{1}/{2}'.format('SS12',chan,plot)
        chargePlotter.plot(plotnames,savename,**plots[plot])


# ratios of SS/OS as func of pt/eta
chargePlotter.clearHistograms()

allSamplesDict = {'MC':[]}

for s in samples:
    allSamplesDict['MC'] += sigMap[s]

chargePlotter.addHistogram('MC',allSamplesDict['MC'],style={'linecolor': ROOT.kRed})
chargePlotter.addHistogram('data',sigMap['data'],style={'linecolor':ROOT.kBlack})

ptbins = [10,20,30,40,50,60,80,100,200,1000]
etabins = [-2.5,-2.0,-1.479,-1.0,-0.5,0.,0.5,1.0,1.479,2.0,2.5]

ratio_cust = {
    'zLeadingLeptonPt'     : {'yaxis': 'N_{SS}/N', 'rebin': ptbins},
    'zLeadingLeptonEta'    : {'yaxis': 'N_{SS}/N', 'rebin': etabins},
Exemple #6
0
    
    zzPlotter.addHistogram('data',sigMap['data'])
    
    if plotCount: plotCounts(zzPlotter,baseDir='default',saveDir='mc')
    if plotCount: plotCounts(zzPlotter,baseDir='zWindow',saveDir='mc-zWindow')
    
    for plot in plots:
        kwargs = deepcopy(plots[plot])
        plotWithChannels(zzPlotter,plot,baseDir='default',saveDir='mc',**kwargs)
        plotWithChannels(zzPlotter,plot,baseDir='zWindow',saveDir='mc-zWindow',**kwargs)
    
##############################
### datadriven backgrounds ###
##############################
if plotDatadriven:
    zzPlotter.clearHistograms()
    
    zzPlotter.addHistogramToStack('datadriven',datadrivenSamples)
    
    for s in samples:
        zzPlotter.addHistogramToStack(s,sigMapDD[s])
    
    zzPlotter.addHistogram('data',sigMapDD['data'])
    
    if plotCount: plotCounts(zzPlotter,baseDir='',saveDir='datadriven',datadriven=True)
    if plotCount: plotCounts(zzPlotter,baseDir='zWindow',saveDir='datadriven-zWindow',datadriven=True)
    
    for plot in plots:
        kwargs = deepcopy(plots[plot])
        plotWithChannels(zzPlotter,plot,baseDir='',saveDir='datadriven',datadriven=True,**kwargs)
        plotWithChannels(zzPlotter,plot,baseDir='zWindow',saveDir='datadriven-zWindow',datadriven=True,**kwargs)
for s in samples:
    plotter.addHistogramToStack(s,sigMap[s])

if not blind: plotter.addHistogram('data',sigMap['data'])


for plot in plots:
    for sel in sels:
        kwargs = deepcopy(plots[plot])
        plotname = '{0}/{1}'.format(sel,plot)
        savename = '{0}/mc/{1}'.format(sel,plot)
        plotter.plot(plotname,savename,**kwargs)


# ratios of tight/loose as func of pt/eta
plotter.clearHistograms()
plotter.addHistogram('MC',sigMap['BG'])
plotter.addHistogram('Z',sigMap['Z'])
plotter.addHistogram('data',sigMap['data'],style={'linecolor':ROOT.kBlack,'name':'Data'})
plotter.addHistogram('data_uncorrected',sigMap['data'],style={'linecolor':ROOT.kRed,'name':'Uncorrected'})

ptbins = [3,5,10,15,20,25,30,50,100]
etabins = [-2.4,-1.5,-1.0,0.,1.0,1.5,2.4]

cust = {
    'mPt'     : {'rebin': ptbins, 'overflow': False, 'logy': False},
    #'mEta'    : {'rebin': etabins},
}

numDenoms = [('iso0.15','default'),('iso0.25','default'),('iso0.40','default'),('iso0.15','iso0.40'),]
numDenoms += [('iso0.15trig','defaulttrig'),('iso0.25trig','defaulttrig'),('iso0.40trig','defaulttrig'),('iso0.15trig','iso0.40trig'),]
Exemple #8
0
            plotname = '{0}/{1}/{2}'.format(region,chan,plot)
            savename = '{0}/{1}/{2}'.format(region,chan,plot)
            fakeratePlotter.plot(plotname,savename,**plots[plot])
            #for sel in ['SS','ZVeto','WMt','full']:
            for sel in ['WVeto','WMt','ZVeto','full']:
                plotname = '{0}/{1}/{2}/{3}'.format(region,sel,chan,plot)
                savename = '{0}/{1}/{2}/{3}'.format(region,sel,chan,plot)
                fakeratePlotter.plot(plotname,savename,**plots[plot])



# ratios of tight/loose as func of pt/eta
sigMap['MC'] = []
for sample in ['TTsub','Z','WWsub']:
    sigMap['MC'] += sigMap[sample]
fakeratePlotter.clearHistograms()
fakeratePlotter.addHistogram('MC',sigMap['MC'])
fakeratePlotter.addHistogram('W',sigMap['W'])
fakeratePlotter.addHistogram('data',sigMap['data'],style={'linecolor':ROOT.kBlack,'name':'Corrected'})
fakeratePlotter.addHistogram('data_uncorrected',sigMap['data'],style={'linecolor':ROOT.kRed,'name':'Uncorrected'})

ptbins = [0,10,15,20,25,30,50,100]#,200,1000]
etabins = [-2.5,-2.0,-1.479,-1.0,-0.5,0.,0.5,1.0,1.479,2.0,2.5]

cust = {
    'lPt'     : {'yaxis': 'N_{{{num}}} / N_{{{denom}}}', 'rebin': ptbins, 'xrange': [0,100]},
    'lEta'    : {'yaxis': 'N_{{{num}}} / N_{{{denom}}}', 'rebin': etabins},
}

numDenom = [('medium','loose'),('tight','loose'),('tight','medium')]
    'TTV' : ['TTWJetsToLNu_TuneCUETP8M1_13TeV-amcatnloFXFX-madspin-pythia8'],
    'ZG'  : ['ZGTo2LG_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'WW'  : ['WWTo2L2Nu_13TeV-powheg'],
    'Z'   : ['DYJetsToLL_M-50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8',
             'DYJetsToLL_M-10to50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'TT'  : ['TTJets_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'data': ['DoubleMuon',
             'DoubleEG',
             'MuonEG',
             'SingleMuon',
             'SingleElectron'],
    'HppHmm500GeV' : ['HPlusPlusHMinusMinusHTo4L_M-500_13TeV-pythia8'],
}

mPlotter.addHistogram('HppHmm500GeV',sigMap['HppHmm500GeV'])

plots = {
    'pt_v_dxy': {'xaxis':'p_{T} (GeV)', 'yaxis': '|#Delta_{xy}|'},
    'pt_v_dz' : {'xaxis':'p_{T} (GeV)', 'yaxis': '|#Delta_{z}|'},
}

for plot,kwargs in plots.iteritems():
    mPlotter.plot2D(plot,'hpp_{0}'.format(plot),logz=0,**kwargs)

mPlotter.clearHistograms()

mPlotter.addHistogram('Z',sigMap['Z'])

for plot,kwargs in plots.iteritems():
    mPlotter.plot2D(plot,'dy_{0}'.format(plot),logz=1,**kwargs)
    'TTV' : ['TTWJetsToLNu_TuneCUETP8M1_13TeV-amcatnloFXFX-madspin-pythia8'],
    'ZG'  : ['ZGTo2LG_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'WW'  : ['WWTo2L2Nu_13TeV-powheg'],
    'Z'   : ['DYJetsToLL_M-50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8',
             'DYJetsToLL_M-10to50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'TT'  : ['TTJets_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'data': ['DoubleMuon',
             'DoubleEG',
             'MuonEG',
             'SingleMuon',
             'SingleElectron'],
    'HppHmm500GeV' : ['HPlusPlusHMinusMinusHTo4L_M-500_13TeV-pythia8'],
}

ePlotter.addHistogram('HppHmm500GeV',sigMap['HppHmm500GeV'])

plots = {
    'pt_v_dxy': {'xaxis':'p_{T} (GeV)', 'yaxis': '|#Delta_{xy}|'},
    'pt_v_dz' : {'xaxis':'p_{T} (GeV)', 'yaxis': '|#Delta_{z}|'},
}

for plot,kwargs in plots.iteritems():
    ePlotter.plot2D(plot,'hpp_{0}'.format(plot),logz=0,**kwargs)

ePlotter.clearHistograms()

ePlotter.addHistogram('Z',sigMap['Z'])

for plot,kwargs in plots.iteritems():
    ePlotter.plot2D(plot,'dy_{0}'.format(plot),logz=1,**kwargs)
        'DYJetsToLL_M-10to50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'
    ],
    'TT': ['TTJets_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8'],
    'data':
    ['DoubleMuon', 'DoubleEG', 'MuonEG', 'SingleMuon', 'SingleElectron'],
    'HppHmm500GeV': ['HPlusPlusHMinusMinusHTo4L_M-500_13TeV-pythia8'],
}

ePlotter.addHistogram('HppHmm500GeV', sigMap['HppHmm500GeV'])

plots = {
    'pt_v_dxy': {
        'xaxis': 'p_{T} (GeV)',
        'yaxis': '|#Delta_{xy}|'
    },
    'pt_v_dz': {
        'xaxis': 'p_{T} (GeV)',
        'yaxis': '|#Delta_{z}|'
    },
}

for plot, kwargs in plots.iteritems():
    ePlotter.plot2D(plot, 'hpp_{0}'.format(plot), logz=0, **kwargs)

ePlotter.clearHistograms()

ePlotter.addHistogram('Z', sigMap['Z'])

for plot, kwargs in plots.iteritems():
    ePlotter.plot2D(plot, 'dy_{0}'.format(plot), logz=1, **kwargs)
Exemple #12
0
# sum gen matched
for plot in plots:
    for chan in chans:
        plotnames = {}
        for sample in samples:
            plotnames[sample] = [
                '{0}/{1}/{2}'.format('SS1', chan, plot),
                '{0}/{1}/{2}'.format('SS2', chan, plot)
            ]
        plotnames['data'] = ['{0}/{1}/{2}'.format('SS', chan, plot)]
        savename = '{0}/{1}/{2}'.format('SS12', chan, plot)
        chargePlotter.plot(plotnames, savename, **plots[plot])

# ratios of SS/OS as func of pt/eta
chargePlotter.clearHistograms()

allSamplesDict = {'MC': []}

for s in samples:
    allSamplesDict['MC'] += sigMap[s]

chargePlotter.addHistogram('MC',
                           allSamplesDict['MC'],
                           style={'linecolor': ROOT.kRed})
chargePlotter.addHistogram('data',
                           sigMap['data'],
                           style={'linecolor': ROOT.kBlack})

ptbins = [10, 20, 30, 40, 50, 60, 80, 100, 200, 1000]
etabins = [-2.5, -2.0, -1.479, -1.0, -0.5, 0., 0.5, 1.0, 1.479, 2.0, 2.5]