def getPlotter(blind=True,datadriven=False,control=False):
     plotter = Plotter('Hpp4l')
     plotter.setSelectionMap(sampleCuts)
     
     if datadriven: plotter.addHistogramToStack('datadriven',datadrivenSamples)

     mcSamples = samples if datadriven else allsamples
     signalMap = sigMapDD if datadriven else sigMap
     for s in mcSamples:
         plotter.addHistogramToStack(s,signalMap[s])
     
     if not control:
         for signal in signals:
             plotter.addHistogram(signal,signalMap[signal],signal=True)
     
     if not blind: plotter.addHistogram('data',signalMap['data'])
     return plotter
Exemple #2
0
             'GluGluToContinToZZTo4e_13TeV_MCFM701_pythia8',
             'GluGluToContinToZZTo4mu_13TeV_MCFM701_pythia8',
             'GluGluToContinToZZTo4tau_13TeV_MCFM701_pythia8',
             'ZZTo2L2Nu_13TeV_powheg_pythia8',
             'ZZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8'],
    'VVV' : ['WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8'],
    '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'],
}

for s in ['TT','TTV','Z','ZG','WW','VVV','ZZ','WZ']:
    hpp4lPlotter.addHistogramToStack(s,sigMap[s])

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

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

for plot in ['hppMass']:
    hpp4lPlotter.plot(plot,plot,logy=True,numcol=2,legendpos=34)
Exemple #3
0
        "TTJets_SingleLeptFromT_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",
        "TTJets_SingleLeptFromTbar_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",
    ],
    "data": ["DoubleMuon", "DoubleEG", "MuonEG", "SingleMuon", "SingleElectron"],
    "HppHmm200GeV": ["HPlusPlusHMinusMinusHTo4L_M-200_13TeV-pythia8"],
    "HppHmm300GeV": ["HPlusPlusHMinusMinusHTo4L_M-300_13TeV-pythia8"],
    "HppHmm400GeV": ["HPlusPlusHMinusMinusHTo4L_M-400_13TeV-pythia8"],
    "HppHmm500GeV": ["HPlusPlusHMinusMinusHTo4L_M-500_13TeV-pythia8"],
    "HppHmm600GeV": ["HPlusPlusHMinusMinusHTo4L_M-600_13TeV-pythia8"],
    "HppHmm700GeV": ["HPlusPlusHMinusMinusHTo4L_M-700_13TeV-pythia8"],
    "HppHmm800GeV": ["HPlusPlusHMinusMinusHTo4L_M-800_13TeV-pythia8"],
    "HppHmm900GeV": ["HPlusPlusHMinusMinusHTo4L_M-900_13TeV-pythia8"],
    "HppHmm1.0TeV": ["HPlusPlusHMinusMinusHTo4L_M-1000_13TeV-pythia8"],
}

effPlotter.addHistogram("Z", sigMap["Z"], style={"name": "DY (prompt)"})
effPlotter.addHistogram("TT", sigMap["TT"], style={"name": "t#bar{t} (from jet)"})
effPlotter.addHistogram("QCD", sigMap["QCD"], style={"name": "QCD (unmatched)"})
effPlotter.addHistogram("HppHmm500GeV", sigMap["HppHmm500GeV"], style={"name": "#Phi^{++}#Phi^{--} (prompt)"})

sigcolors = [
    ROOT.TColor.GetColor("#000000"),
    # ROOT.TColor.GetColor('#1A0000'),
    ROOT.TColor.GetColor("#330000"),
    # ROOT.TColor.GetColor('#4C0000'),
    ROOT.TColor.GetColor("#660000"),
    ROOT.TColor.GetColor("#800000"),
    ROOT.TColor.GetColor("#990000"),
    ROOT.TColor.GetColor("#B20000"),
    ROOT.TColor.GetColor("#CC0000"),
    # ROOT.TColor.GetColor('#E60000'),
Exemple #4
0
    ROOT.TColor.GetColor('#CC0000'),
    #ROOT.TColor.GetColor('#E60000'),
    ROOT.TColor.GetColor('#FF0000'),
    #ROOT.TColor.GetColor('#FF1919'),
    ROOT.TColor.GetColor('#FF3333'),
    #ROOT.TColor.GetColor('#FF4D4D'),
    ROOT.TColor.GetColor('#FF6666'),
    ROOT.TColor.GetColor('#FF8080'),
    ROOT.TColor.GetColor('#FF9999'),
    ROOT.TColor.GetColor('#FFB2B2'),
    ROOT.TColor.GetColor('#FFCCCC'),
]

mPlotter.addHistogram('sig',
                      sigMap['HppHmm1000GeV'],
                      style={
                          'name': 'Match to gen',
                          'linecolor': ROOT.kBlue
                      })
mPlotter.addHistogram('fake',
                      sigMap['QCD'],
                      style={
                          'name': 'Fake',
                          'linecolor': ROOT.kBlue,
                          'linestyle': 2
                      })

idNames = [
    'isLooseMuon_looseIso',
    'isMediumMuon_looseIso',
    'isMediumMuon_tightIso',
    'isTightMuon_tightIso',
Exemple #5
0
    ROOT.TColor.GetColor('#B20000'),
    ROOT.TColor.GetColor('#CC0000'),
    #ROOT.TColor.GetColor('#E60000'),
    ROOT.TColor.GetColor('#FF0000'),
    #ROOT.TColor.GetColor('#FF1919'),
    ROOT.TColor.GetColor('#FF3333'),
    #ROOT.TColor.GetColor('#FF4D4D'),
    ROOT.TColor.GetColor('#FF6666'),
    ROOT.TColor.GetColor('#FF8080'),
    ROOT.TColor.GetColor('#FF9999'),
    ROOT.TColor.GetColor('#FFB2B2'),
    ROOT.TColor.GetColor('#FFCCCC'),
]

#ePlotter.addHistogram('HppHmm500GeV',sigMap['HppHmm500GeV'])
ePlotter.addHistogram('HppHmm500GeVBarrel',sigMap['HppHmm500GeV'],style={'name':'#Phi^{++}#Phi^{--} (Barrel)','linecolor':sigcolors[3],'fillcolor':sigcolors[3]})
ePlotter.addHistogram('HppHmm500GeVEndcap',sigMap['HppHmm500GeV'],style={'name':'#Phi^{++}#Phi^{--} (Endcap)','linecolor':sigcolors[6],'fillcolor':sigcolors[6]})

#
#ePlotter.addHistogram('HppHmm200GeV', sigMap['HppHmm200GeV'],style={'name':'#Phi^{++}#Phi^{--} (200 GeV)', 'linecolor':sigcolors[0], 'fillcolor':sigcolors[0]})
#ePlotter.addHistogram('HppHmm300GeV', sigMap['HppHmm300GeV'],style={'name':'#Phi^{++}#Phi^{--} (300 GeV)', 'linecolor':sigcolors[1], 'fillcolor':sigcolors[1]})
#ePlotter.addHistogram('HppHmm400GeV', sigMap['HppHmm400GeV'],style={'name':'#Phi^{++}#Phi^{--} (400 GeV)', 'linecolor':sigcolors[2], 'fillcolor':sigcolors[2]})
#ePlotter.addHistogram('HppHmm500GeV', sigMap['HppHmm500GeV'],style={'name':'#Phi^{++}#Phi^{--} (500 GeV)', 'linecolor':sigcolors[3], 'fillcolor':sigcolors[3]})
#ePlotter.addHistogram('HppHmm600GeV', sigMap['HppHmm600GeV'],style={'name':'#Phi^{++}#Phi^{--} (600 GeV)', 'linecolor':sigcolors[4], 'fillcolor':sigcolors[4]})
#ePlotter.addHistogram('HppHmm700GeV', sigMap['HppHmm700GeV'],style={'name':'#Phi^{++}#Phi^{--} (700 GeV)', 'linecolor':sigcolors[5], 'fillcolor':sigcolors[5]})
#ePlotter.addHistogram('HppHmm800GeV', sigMap['HppHmm800GeV'],style={'name':'#Phi^{++}#Phi^{--} (800 GeV)', 'linecolor':sigcolors[6], 'fillcolor':sigcolors[6]})
#ePlotter.addHistogram('HppHmm900GeV', sigMap['HppHmm900GeV'],style={'name':'#Phi^{++}#Phi^{--} (900 GeV)', 'linecolor':sigcolors[7], 'fillcolor':sigcolors[7]})
#ePlotter.addHistogram('HppHmm1.0TeV', sigMap['HppHmm1.0TeV'],style={'name':'#Phi^{++}#Phi^{--} (1 TeV)',   'linecolor':sigcolors[8], 'fillcolor':sigcolors[8]})

plots = {
    'dxy'     : {'legendpos':34,'numcol':3,'invert':True},
    #'hppDeltaR'             : {'yaxis': '#DeltaR(l^{+}l^{+})',          'xaxis': 'm_{#Phi^{#pm#pm}} (GeV)', 'legendpos':13, 'numcol': 1},
    #'met'                   : {'yaxis': 'E_{T}^{miss} (GeV)',           'xaxis': 'm_{#Phi^{#pm#pm}} (GeV)', 'legendpos':13, 'numcol': 1},
    #'mllMinusZ'             : {'yaxis': '|m_{l^{+}l^{-}}-m_{Z}| (GeV)', 'xaxis': 'm_{#Phi^{#pm#pm}} (GeV)', 'legendpos':13, 'numcol': 1},
}



############################
### MC based BG estimate ###
############################
if plotMC:
    for s in allsamples:
        hpp4lPlotter.addHistogramToStack(s,sigMap[s])
    
    for signal in signals:
        hpp4lPlotter.addHistogram(signal,sigMap[signal],signal=True)
    
    if not blind: hpp4lPlotter.addHistogram('data',sigMap['data'])
    
    if plotCount: plotCounts(hpp4lPlotter,baseDir='default',saveDir='mc')
    
    for plot in plots:
        kwargs = deepcopy(plots[plot])
        plotWithCategories(hpp4lPlotter,plot,baseDir='default',saveDir='mc',perCatBins=True,**kwargs)
        if plot=='hppMass' or plotAllChannels: plotChannels(hpp4lPlotter,plot,baseDir='default',saveDir='mc',**kwargs)
    
    # selection assuming 500
    if plotSig500:
        if plotCount: plotCounts(hpp4lPlotter,baseDir='nMinusOne/massWindow/500/hpp2hmm2',saveDir='sig500')
        
        for plot in plots:
    'metPhi'                : {'xaxis': '#phi(E_{T}^{miss})', 'yaxis': 'Events', 'rebin': 5},
    'mass'                  : {'xaxis': 'm_{4l} (GeV)', 'yaxis': 'Events / 20 GeV', 'rebin': 2, 'rangex': [0,1000]},
    'st'                    : {'xaxis': '#Sigma p_{T}^{l} (GeV)', 'yaxis': 'Events / 20 GeV', 'rebin': 2, 'rangex': [0,1000]},
    'nJets'                 : {'xaxis': 'Number of jets (p_{T} > 30 GeV)', 'yaxis': 'Events'},
}



############################
### MC based BG estimate ###
############################
if plotMC:
    for s in allsamples:
        zzPlotter.addHistogramToStack(s,sigMap[s])
    
    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()
    
Exemple #8
0
             'GluGluToContinToZZTo4e_13TeV_MCFM701_pythia8',
             'GluGluToContinToZZTo4mu_13TeV_MCFM701_pythia8',
             'GluGluToContinToZZTo4tau_13TeV_MCFM701_pythia8',
             'ZZTo2L2Nu_13TeV_powheg_pythia8',
             'ZZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8'],
    'VVV' : ['WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8'],
    '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'],
}

for s in ['TT','TTV','Z','ZG','WW','VVV','ZZ','WZ']:
    wzPlotter.addHistogramToStack(s,sigMap[s])

wzPlotter.addHistogram('data',sigMap['data'])

plotStyles = {
    'zMass': {'xaxis': 'm_{l^{+}l^{#font[122]{\55}}}', 'yaxis': 'Events/1 GeV'},
}

for plot in ['zMass']:
    wzPlotter.plot(plot,plot,**plotStyles[plot])
Exemple #9
0
    ROOT.TColor.GetColor('#FF0000'),
    #ROOT.TColor.GetColor('#FF1919'),
    ROOT.TColor.GetColor('#FF3333'),
    #ROOT.TColor.GetColor('#FF4D4D'),
    ROOT.TColor.GetColor('#FF6666'),
    ROOT.TColor.GetColor('#FF8080'),
    ROOT.TColor.GetColor('#FF9999'),
    ROOT.TColor.GetColor('#FFB2B2'),
    ROOT.TColor.GetColor('#FFCCCC'),
]

#tPlotter.addHistogram('signew',sigMap['HppHmm1000GeV'],style={'name': 'New DMs (match tau gen jet)','linecolor':ROOT.kRed})
#tPlotter.addHistogram('sigold',sigMap['HppHmm1000GeV'],style={'name': 'Old DMs (match tau gen jet)','linecolor':ROOT.kBlue})
tPlotter.addHistogram('sigold',
                      sigMap['Z'],
                      style={
                          'name': 'Old DMs (match tau gen jet)',
                          'linecolor': ROOT.kBlue
                      })
#tPlotter.addHistogram('fakenew',sigMap['QCD'],style={'name':'New DMs (fake)','linecolor':ROOT.kRed,'linestyle':2})
#tPlotter.addHistogram('fakeold',sigMap['QCD'],style={'name':'Old DMs (fake)','linecolor':ROOT.kRed,'linestyle':2})
tPlotter.addHistogram('fakeold',
                      sigMap['TT'],
                      style={
                          'name': 'Old DMs (fake)',
                          'linecolor': ROOT.kRed,
                          'linestyle': 2
                      })

idNames = [
    #'{0}_vlooseElectron_looseMuon_vvlooseIsolation',
    '{0}_vlooseElectron_looseMuon_neg0p8Isolation',
########################
### plot definitions ###
########################
plots = {
    'Pt'    : {'xaxis': 'p_{T} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10, 'numcol': 3, 'legendpos':34, 'rangex': [10,250]},
}


############################
### MC based BG estimate ###
############################
for s in allsamples:
    plotter.addHistogramToStack(s,sigMap[s])

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

lepChan = {
    'e1': ['3e0m','2e1m','1e2m'],
    'e2': ['3e0m','2e1m'],
    'm1': ['2e1m','1e2m','0e3m'],
    'm2': ['1e2m','0e3m'],
}
for lep in lepChan:
    for plot in plots:
        kwargs = deepcopy(plots[plot])
        plotname = ['{0}/{1}{2}'.format(chan,lep,plot) for chan in lepChan[lep]]
        savename = 'mc/{0}{1}'.format(lep,plot)
        plotter.plot(plotname,savename,**kwargs)

Exemple #11
0
        'GluGluToContinToZZTo4e_13TeV_MCFM701_pythia8',
        'GluGluToContinToZZTo4mu_13TeV_MCFM701_pythia8',
        'GluGluToContinToZZTo4tau_13TeV_MCFM701_pythia8',
        'ZZTo2L2Nu_13TeV_powheg_pythia8',
        'ZZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8'
    ],
    'VVV': ['WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8'],
    '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'],
}

for s in ['TT', 'TTV', 'Z', 'ZG', 'WW', 'VVV', 'ZZ', 'WZ']:
    hpp3lPlotter.addHistogramToStack(s, sigMap[s])

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

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

for plot in ['hppMass']:
    hpp3lPlotter.plot(plot, plot, logy=True, numcol=2, legendpos=34)
        'SingleElectron',
    ],
}

sigMap['BG'] = []
for s in ['WZ', 'ZZ', 'VVV', 'TTV']:
    sigMap['BG'] += sigMap[s]

samples = ['TT', 'TTV', 'WZ', 'VVV', 'ZZ', 'Z']

selections = ['default', 'tight']

channels = ['e', 'm']
channelMap = {'e': ['eee', 'mme'], 'm': ['eem', 'mmmm']}

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'
                     })

denom = 'default'
Exemple #13
0
    ],
    'data': [
        'DoubleMuon',
        'DoubleEG',
        'SingleMuon',
        'SingleElectron',
    ],
}

#samples = ['WW','TT','Z']
samples = ['TT', 'Z']

for s in samples:
    chargePlotter.addHistogramToStack(s, sigMap[s])

chargePlotter.addHistogram('data', sigMap['data'])

# plot definitions
plots = {
    # z cand
    'zMass': {
        'xaxis': 'm_{l^{+}l^{-}} (GeV)',
        'yaxis': 'Events / 1 GeV',
        'rebin': range(81, 101, 1)
    },
    'zLeadingLeptonPt': {
        'xaxis': 'p_{T}^{Z_{lead}} (GeV)',
        'yaxis': 'Events / 1 GeV',
        'rebin': range(0, 150, 1)
    },
    'zLeadingLeptonEta': {
            ],
    'data': [
             'SingleMuon',
             'DoubleMuon',
             'SingleElectron',
             'DoubleEG',
            ],
}

samples = ['W','T','TT','Z','WW','WZ','ZZ','TTV']
subsamples = ['WZ','ZZ','TTV']

for s in samples:
    fakeratePlotter.addHistogramToStack(s,sigMap[s])

fakeratePlotter.addHistogram('data',sigMap['data'])

plots = {
    # z cand
    'zMass'                 : {'xaxis': 'm_{l^{+}l^{-}} (GeV)', 'yaxis': 'Events / 1 GeV', 'rebin': 1},
    'zLeadingLeptonPt'      : {'xaxis': 'p_{T}^{Z leading} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    'zLeadingLeptonEta'     : {'xaxis': '#eta^{Z leading}', 'yaxis': 'Events', 'rebin': 10},
    'zSubLeadingLeptonPt'   : {'xaxis': 'p_{T}^{Z subleading} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    'zSubLeadingLeptonEta'  : {'xaxis': '#eta^{Z subleading}', 'yaxis': 'Events', 'rebin': 10},
    # t cand
    'wtMt'                  : {'xaxis': 'm_{T}^{#tau} (GeV)', 'yaxis': 'Events / 5 GeV', 'rebin': 5},
    'tPt'                   : {'xaxis': 'p_{T}^{#tau} (GeV)', 'yaxis': 'Events / 5 GeV', 'rebin': 5},
    'tEta'                  : {'xaxis': '#eta^{#tau}', 'yaxis': 'Events', 'rebin': 5},
    'tDM'                   : {'xaxis': '#tau Decay Mode', 'yaxis': 'Events',},
    # event
    'numVertices'           : {'xaxis': 'Reconstructed Vertices', 'yaxis': 'Events'},
    #ROOT.TColor.GetColor('#E60000'),
    ROOT.TColor.GetColor('#FF0000'),
    #ROOT.TColor.GetColor('#FF1919'),
    ROOT.TColor.GetColor('#FF3333'),
    #ROOT.TColor.GetColor('#FF4D4D'),
    ROOT.TColor.GetColor('#FF6666'),
    ROOT.TColor.GetColor('#FF8080'),
    ROOT.TColor.GetColor('#FF9999'),
    ROOT.TColor.GetColor('#FFB2B2'),
    ROOT.TColor.GetColor('#FFCCCC'),
]


#tPlotter.addHistogram('signew',sigMap['HppHmm1000GeV'],style={'name': 'New DMs (match tau gen jet)','linecolor':ROOT.kRed})
#tPlotter.addHistogram('sigold',sigMap['HppHmm1000GeV'],style={'name': 'Old DMs (match tau gen jet)','linecolor':ROOT.kBlue})
tPlotter.addHistogram('sigold',sigMap['Z'],style={'name': 'Old DMs (match tau gen jet)','linecolor':ROOT.kBlue})
#tPlotter.addHistogram('fakenew',sigMap['QCD'],style={'name':'New DMs (fake)','linecolor':ROOT.kRed,'linestyle':2})
#tPlotter.addHistogram('fakeold',sigMap['QCD'],style={'name':'Old DMs (fake)','linecolor':ROOT.kRed,'linestyle':2})
tPlotter.addHistogram('fakeold',sigMap['TT'],style={'name':'Old DMs (fake)','linecolor':ROOT.kRed,'linestyle':2})

idNames = [
    #'{0}_vlooseElectron_looseMuon_vvlooseIsolation',
    '{0}_vlooseElectron_looseMuon_neg0p8Isolation',
    '{0}_vlooseElectron_looseMuon_neg0p6Isolation',
    '{0}_vlooseElectron_looseMuon_neg0p4Isolation',
    '{0}_vlooseElectron_looseMuon_neg0p2Isolation',
    '{0}_vlooseElectron_looseMuon_neg0p0Isolation',
    '{0}_vlooseElectron_looseMuon_looseIsolation',
    '{0}_vlooseElectron_looseMuon_tightIsolation',
    '{0}_vlooseElectron_looseMuon_vtightIsolation',
    #'{0}_tightElectron_tightMuon_vvlooseIsolation',
Exemple #16
0
    ],
    'VVV': ['WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8'],
    '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)
Exemple #17
0
    'VVV' : ['WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8'],
    '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)
             'ST_tW_top_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M1',
            ],
    'data': [
             'DoubleMuon',
             'DoubleEG',
            ],
}

samples = ['TT','Z','W','T','WW']

allSamplesDict = {'MC':[]}

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

dijetFakeRatePlotter.addHistogram('MC',allSamplesDict['MC'])
dijetFakeRatePlotter.addHistogram('data',sigMap['data'],style={'linecolor':ROOT.kBlack,'name':'EWK Corrected'})
dijetFakeRatePlotter.addHistogram('data_uncorrected',sigMap['data'],style={'linecolor':ROOT.kRed,'name':'Uncorrected'})



channels = ['e','m']

dirName = {
    'e': 'electron',
    'm': 'muon',
    't': 'tau'
}

labelMap = {
    'e': 'e',
             'QCD_Pt_3200toInf_TuneCUETP8M1_13TeV_pythia8',
            ],
    'data': [
             'SingleMuon',
             'SingleElectron',
            ],
}

chans = ['me','em','mm','ee']

samples = ['W','T','TT','Z','WW']

for s in samples:
    fakeratePlotter.addHistogramToStack(s,sigMap[s])

fakeratePlotter.addHistogram('data',sigMap['data'])

plots = {
    # z cand
    'zMass'                 : {'xaxis': 'm_{l^{+}l^{-}} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    # m cand
    'wtMt'                  : {'xaxis': 'm_{T}^{tag} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    'tPt'                   : {'xaxis': 'p_{T}^{tag} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    'tEta'                  : {'xaxis': '#eta^{tag}', 'yaxis': 'Events', 'rebin': 10},
    # t cand
    'wlMt'                  : {'xaxis': 'm_{T}^{l} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    'lPt'                   : {'xaxis': 'p_{T}^{l} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
    'lEta'                  : {'xaxis': '#eta^{l}', 'yaxis': 'Events', 'rebin': 10},
    # event
    #'numVertices'           : {'xaxis': 'Reconstructed Vertices', 'yaxis': 'Events'},
    'met'                   : {'xaxis': 'E_{T}^{miss} (GeV)', 'yaxis': 'Events / 10 GeV', 'rebin': 10},
            if p not in toPlot: special[s].pop(p)


############################
### MC based BG estimate ###
############################
if doMC:
    for sel in sels:
        plotter.clearHistograms()

        for s in samples:
            plotter.addHistogramToStack(s,sigMap[s])
        
        if 'lowmass' not in sel and 'highmass' not in sel:
            for signal in signals:
                plotter.addHistogram(signal,sigMap[signal],signal=True)
        
        if not blind or 'regionA' not in sel or 'lowmass' in sel or 'highmass' in sel: plotter.addHistogram('data',sigMap['data'])
        
        for plot in plots:
            kwargs = deepcopy(plots[plot])
            plotname = '{0}/{1}'.format(sel,plot)
            savename = '{0}/mc/{1}'.format(sel,plot)
            plotter.plot(plotname,savename,**kwargs)
        
        if blind and 'regionA' in sel and 'lowmass' not in sel and 'highmass' not in sel: plotter.addHistogram('data',sigMap['data'])
        
        for s in special:
            for plot in special[s]:
                kwargs = deepcopy(special[s][plot])
                plotname = '{0}/{1}'.format(sel,plot)
    'z1Pt'                  : {'xaxis': 'm^{#mu#mu} #mu_{1} p_{T} (GeV)', 'yaxis': 'Events / 5 GeV', 'numcol': 2, 'lumipos': 11, 'legendpos':34, 'rebin': range(0,150,5), 'logy': False, 'overflow': True},
    'z2Pt'                  : {'xaxis': 'm^{#mu#mu} #mu_{2} p_{T} (GeV)', 'yaxis': 'Events / 5 GeV', 'numcol': 2, 'lumipos': 11, 'legendpos':34, 'rebin': range(0,150,5), 'logy': False, 'overflow': True},
    # t
    'mPt'                   : {'xaxis': '#mu p_{T} (GeV)', 'yaxis': 'Events / 5 GeV', 'numcol': 2, 'lumipos': 11, 'legendpos':34, 'rebin': range(0,150,5), 'logy': True, 'overflow': True},
    # event
    #'numVertices'           : {'xaxis': 'Reconstructed Vertices', 'yaxis': 'Events'},
    #'met'                   : {'xaxis': 'E_{T}^{miss} (GeV)', 'yaxis': 'Events / 20 GeV', 'rebin': range(0,320,20), 'numcol': 2, 'logy': False, 'overflow': True},
}

############################
### 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'})
             'MuonEG',
             'SingleMuon',
             'SingleElectron',
            ],
    'HppHmm200GeV' : ['HPlusPlusHMinusMinusHTo4L_M-200_13TeV-pythia8'],
    'HppHmm300GeV' : ['HPlusPlusHMinusMinusHTo4L_M-300_13TeV-pythia8'],
    'HppHmm400GeV' : ['HPlusPlusHMinusMinusHTo4L_M-400_13TeV-pythia8'],
    'HppHmm500GeV' : ['HPlusPlusHMinusMinusHTo4L_M-500_13TeV-pythia8'],
    'HppHmm600GeV' : ['HPlusPlusHMinusMinusHTo4L_M-600_13TeV-pythia8'],
    'HppHmm700GeV' : ['HPlusPlusHMinusMinusHTo4L_M-700_13TeV-pythia8'],
    'HppHmm800GeV' : ['HPlusPlusHMinusMinusHTo4L_M-800_13TeV-pythia8'],
    'HppHmm900GeV' : ['HPlusPlusHMinusMinusHTo4L_M-900_13TeV-pythia8'],
    'HppHmm1.0TeV' : ['HPlusPlusHMinusMinusHTo4L_M-1000_13TeV-pythia8'],
}

effPlotter.addHistogram('Z',sigMap['Z'],style={'name':'DY (prompt)'})
effPlotter.addHistogram('TT',sigMap['TT'],style={'name':'t#bar{t} (from jet)'})
effPlotter.addHistogram('QCD',sigMap['QCD'],style={'name':'QCD (unmatched)'})
effPlotter.addHistogram('HppHmm500GeV',sigMap['HppHmm500GeV'],style={'name':'#Phi^{++}#Phi^{--} (prompt)'})

sigcolors = [
    ROOT.TColor.GetColor('#000000'),
    #ROOT.TColor.GetColor('#1A0000'),
    ROOT.TColor.GetColor('#330000'),
    #ROOT.TColor.GetColor('#4C0000'),
    ROOT.TColor.GetColor('#660000'),
    ROOT.TColor.GetColor('#800000'),
    ROOT.TColor.GetColor('#990000'),
    ROOT.TColor.GetColor('#B20000'),
    ROOT.TColor.GetColor('#CC0000'),
    #ROOT.TColor.GetColor('#E60000'),
            ],
    'data': [
             'DoubleMuon',
             'DoubleEG',
             'SingleMuon',
             'SingleElectron',
            ],
}

#samples = ['WW','TT','Z']
samples = ['TT','Z']

for s in samples:
    chargePlotter.addHistogramToStack(s,sigMap[s])

chargePlotter.addHistogram('data',sigMap['data'])

# plot definitions
plots = {
    # z cand
    'zMass'                 : {'xaxis': 'm_{l^{+}l^{-}} (GeV)', 'yaxis': 'Events / 1 GeV', 'rebin': range(81,101,1)},
    'zLeadingLeptonPt'      : {'xaxis': 'p_{T}^{Z_{lead}} (GeV)', 'yaxis': 'Events / 1 GeV', 'rebin': range(0,150,1)},
    'zLeadingLeptonEta'     : {'xaxis': '|#eta^{Z_{lead}}|', 'yaxis': 'Events',},
    'zSubLeadingLeptonPt'   : {'xaxis': 'p_{T}^{Z_{sublead}} (GeV)', 'yaxis': 'Events / 1 GeV', 'rebin': range(0,150,1)},
    'zSubLeadingLeptonEta'  : {'xaxis': '|#eta^{Z_{sublead}}|', 'yaxis': 'Events',},
}

# signal region
for plot in plots:
    for sign in ['SS','OS','SS1','SS2','SSEE','SSBB','OSEE','OSBB']:
        for chan in chans:
    ROOT.TColor.GetColor('#B20000'),
    ROOT.TColor.GetColor('#CC0000'),
    #ROOT.TColor.GetColor('#E60000'),
    ROOT.TColor.GetColor('#FF0000'),
    #ROOT.TColor.GetColor('#FF1919'),
    ROOT.TColor.GetColor('#FF3333'),
    #ROOT.TColor.GetColor('#FF4D4D'),
    ROOT.TColor.GetColor('#FF6666'),
    ROOT.TColor.GetColor('#FF8080'),
    ROOT.TColor.GetColor('#FF9999'),
    ROOT.TColor.GetColor('#FFB2B2'),
    ROOT.TColor.GetColor('#FFCCCC'),
]


mPlotter.addHistogram('sig',sigMap['HppHmm1000GeV'],style={'name': 'Match to gen','linecolor':ROOT.kBlue})
mPlotter.addHistogram('fake',sigMap['QCD'],style={'name':'Fake','linecolor':ROOT.kBlue,'linestyle':2})

idNames = [
    'isLooseMuon_looseIso',
    'isMediumMuon_looseIso',
    'isMediumMuon_tightIso',
    'isTightMuon_tightIso',
    'isHighPtMuon_tightIso',
    'wzLooseMuon',
    'wzMediumMuon',
]

binning = [0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,350,400,450,500,550,600,650,700,800,900,1000]
binning = [0,20,40,60,80,100,120,140,160,180,200,240,300,400,500,600,800,1000]
for idName in idNames:
            ],
}

#samples = ['TT','Z','W','T','WW','QCD']
samples = ['TT','Z','W','T','WW']

allSamplesDict = {'MC':[]}

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

for s in samples:
    dijetFakeRatePlotter.addHistogramToStack(s,sigMap[s])

dijetFakeRatePlotter.addHistogram('data',sigMap['data'])

# plot definitions
plots = {
    'pt'      : {'xaxis': 'p_{T} (GeV)', 'yaxis': 'Events/0.5 GeV', 'rebin': 5, 'rangex': [0,150]},
    '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)
Exemple #26
0
        'xaxis': 'p_{T} (GeV)',
        'yaxis': 'Events / 10 GeV',
        'rebin': 10,
        'numcol': 3,
        'legendpos': 34,
        'rangex': [10, 250]
    },
}

############################
### MC based BG estimate ###
############################
for s in allsamples:
    plotter.addHistogramToStack(s, sigMap[s])

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

lepChan = {
    'e1': ['3e0m', '2e1m', '1e2m'],
    'e2': ['3e0m', '2e1m'],
    'm1': ['2e1m', '1e2m', '0e3m'],
    'm2': ['1e2m', '0e3m'],
}
for lep in lepChan:
    for plot in plots:
        kwargs = deepcopy(plots[plot])
        plotname = [
            '{0}/{1}{2}'.format(chan, lep, plot) for chan in lepChan[lep]
        ]
        savename = 'mc/{0}{1}'.format(lep, plot)
        plotter.plot(plotname, savename, **kwargs)