Exemplo n.º 1
0
#'BulkGravToZZToZlepZinv_narrow_2000',
#'BulkGravToZZToZlepZinv_narrow_2500',
#'BulkGravToZZToZlepZinv_narrow_3000',
#'BulkGravToZZToZlepZinv_narrow_3500', 
#'BulkGravToZZToZlepZinv_narrow_4000', 
#'BulkGravToZZToZlepZinv_narrow_4500', 
#]

allPlotters = {}


wwPlotters=[]
wwSamples = ['WWTo2L2Nu','WWToLNuQQ','WZTo1L1Nu2Q']

for sample in wwSamples:
    wwPlotters.append(TreePlotter(indir+'/'+sample+'.root','tree'))
    wwPlotters[-1].addCorrectionFactor('1./SumWeights','tree')
    wwPlotters[-1].addCorrectionFactor('xsec','tree')
    wwPlotters[-1].addCorrectionFactor('genWeight','genWeight')
    wwPlotters[-1].addCorrectionFactor(puWeight,'tree')
    wwPlotters[-1].addCorrectionFactor('(llnunu_l1_l1_lepsf*llnunu_l1_l2_lepsf)','tree')
    wwPlotters[-1].addCorrectionFactor('triggersf','tree')
    allPlotters[sample] = wwPlotters[-1]

WW = MergedPlotter(wwPlotters)
WW.setFillProperties(1001,ROOT.kOrange)


vvPlotters=[]
vvSamples = ['WZTo2L2Q','WZTo3LNu',
'ZZTo2L2Nu',
Exemplo n.º 2
0
    'BulkGravToZZToZlepZinv_narrow_800': [60, 400, 1000],
    'BulkGravToZZToZlepZinv_narrow_1000': [80, 400, 1200],
    'BulkGravToZZToZlepZinv_narrow_1200': [100, 400, 1400],
    'BulkGravToZZToZlepZinv_narrow_1400': [120, 400, 1600],
    'BulkGravToZZToZlepZinv_narrow_1600': [140, 400, 1800],
    'BulkGravToZZToZlepZinv_narrow_1800': [160, 400, 2000],
    'BulkGravToZZToZlepZinv_narrow_2000': [180, 400, 2200],
    'BulkGravToZZToZlepZinv_narrow_2500': [200, 400, 2800],
    'BulkGravToZZToZlepZinv_narrow_3000': [200, 400, 3500],
    'BulkGravToZZToZlepZinv_narrow_3500': [200, 400, 4000],
    'BulkGravToZZToZlepZinv_narrow_4000': [200, 400, 4500],
    'BulkGravToZZToZlepZinv_narrow_4500': [200, 400, 5000],
}
for sample in sigSamples:
    sigPlotters.append(
        TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                    'tree'))
    sigPlotters[-1].setupFromFile(indir + '/' + sample +
                                  '/skimAnalyzerCount/SkimReport.pck')
    sigPlotters[-1].addCorrectionFactor(str(sigXsec[sample]), 'tree')
    sigPlotters[-1].addCorrectionFactor('genWeight', 'tree')
    sigPlotters[-1].addCorrectionFactor('puWeight', 'tree')
    sigPlotters[-1].setFillProperties(0, ROOT.kWhite)

fout = ROOT.TFile("study_mt.root", 'recreate')

c1 = ROOT.TCanvas("c1", "c1")
c1.SetBottomMargin(0.15)
c1.SetLeftMargin(0.15)
c1.Print("study_mt.ps[")

h1 = []
Exemplo n.º 3
0
import ROOT

from CMGTools.XZZ2l2nu.plotting.TreePlotter import TreePlotter
from CMGTools.XZZ2l2nu.plotting.MergedPlotter import MergedPlotter
from CMGTools.XZZ2l2nu.plotting.StackPlotter import StackPlotter

ROOT.gROOT.ProcessLine('.x tdrstyle.C')
vvPlotters = []
vvSamples = ['WW', 'WZ', 'ZZ']
tag = 'bkg_'
cuts = '(nllnunu)'
lumi = 2.1

for sample in vvSamples:
    vvPlotters.append(TreePlotter(sample + '.root', 'tree'))
    vvPlotters[-1].setupFromFile(sample + '.pck')
    vvPlotters[-1].addCorrectionFactor('xsec', 'tree')
    vvPlotters[-1].addCorrectionFactor('genWeight', 'tree')
    vvPlotters[-1].addCorrectionFactor('puWeight', 'tree')

VV = MergedPlotter(vvPlotters)
VV.setFillProperties(1001, ROOT.kAzure - 9)

zjetsPlotters = []
zjetsSamples = [
    'DYJetsToLL_M50_HT100to200', 'DYJetsToLL_M50_HT200to400',
    'DYJetsToLL_M50_HT400to600', 'DYJetsToLL_M50_HT600toInf'
]
zjetsSampleNames = ['ZJets1', 'ZJets2', 'ZJets3', 'ZJets4']

for sample in zjetsSamples:
Exemplo n.º 4
0
    def __init__(self,
                 indir="/afs/cern.ch/work/m/mewu/public/76X_new",
                 outdir='./NtuplePlots',
                 lumi=2.169126704526,
                 sepSig=True,
                 LogY=True,
                 doRatio=True):
        if not os.path.exists(outdir): os.system('mkdir ' + outdir)

        #self.Channel=raw_input("Please choose a channel (el or mu): \n")
        self.outdir = outdir
        self.lumi = lumi
        self.sepSig = sepSig
        #self.whichregion=raw_input("Please choose a benchmarck Region (SR or VR): \n")
        #self.cuts = python.SetCuts.Cuts(self.Channel, self.whichregion)
        #self.preCuts = python.SetCuts.Cuts(self.Channel, self.whichregion, True)

        #######----------- Prepare samples to plot:
        wwPlotters = []
        wwSamples = ['WWTo2L2Nu', 'WWToLNuQQ', 'WZTo1L1Nu2Q']

        for sample in wwSamples:
            wwPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))
            wwPlotters[-1].setupFromFile(indir + '/' + sample +
                                         '/skimAnalyzerCount/SkimReport.pck')
            wwPlotters[-1].addCorrectionFactor('xsec', 'tree')
            wwPlotters[-1].addCorrectionFactor('genWeight', 'tree')
            wwPlotters[-1].addCorrectionFactor('puWeight', 'tree')

        WW = MergedPlotter(wwPlotters)
        WW.setFillProperties(1001, ROOT.kOrange)

        vvPlotters = []
        vvSamples = ['WZTo2L2Q', 'WZTo3LNu', 'ZZTo2L2Nu', 'ZZTo2L2Q', 'ZZTo4L']

        for sample in vvSamples:
            vvPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))
            vvPlotters[-1].setupFromFile(indir + '/' + sample +
                                         '/skimAnalyzerCount/SkimReport.pck')
            vvPlotters[-1].addCorrectionFactor('xsec', 'tree')
            vvPlotters[-1].addCorrectionFactor('genWeight', 'tree')
            vvPlotters[-1].addCorrectionFactor('puWeight', 'tree')

        VV = MergedPlotter(vvPlotters)
        VV.setFillProperties(1001, ROOT.kMagenta)

        wjetsPlotters = []
        wjetsSamples = ['WJetsToLNu']

        for sample in wjetsSamples:
            wjetsPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))
            wjetsPlotters[-1].setupFromFile(
                indir + '/' + sample + '/skimAnalyzerCount/SkimReport.pck')
            wjetsPlotters[-1].addCorrectionFactor('xsec', 'tree')
            wjetsPlotters[-1].addCorrectionFactor('genWeight', 'tree')
            wjetsPlotters[-1].addCorrectionFactor('puWeight', 'tree')

        WJets = MergedPlotter(wjetsPlotters)
        WJets.setFillProperties(1001, ROOT.kBlue - 6)

        zjetsPlotters = []
        #zjetsSamples = ['DYJetsToLL_M50_HT100to200','DYJetsToLL_M50_HT200to400','DYJetsToLL_M50_HT400to600','DYJetsToLL_M50_HT600toInf']
        #zjetsSamples = ['DYJetsToLL_M50','DYJetsToLL_M50_Ext']
        zjetsSamples = ['DYJetsToLL_M50_BIG']  # M50_BIG = M50 + M50_Ext

        for sample in zjetsSamples:
            zjetsPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))
            zjetsPlotters[-1].setupFromFile(
                indir + '/' + sample + '/skimAnalyzerCount/SkimReport.pck')
            zjetsPlotters[-1].addCorrectionFactor('xsec', 'tree')
            zjetsPlotters[-1].addCorrectionFactor('genWeight', 'tree')
            zjetsPlotters[-1].addCorrectionFactor('puWeight', 'tree')

        self.ZJets = MergedPlotter(zjetsPlotters)
        self.ZJets.setFillProperties(1001, ROOT.kGreen + 2)

        ttPlotters = []
        ttSamples = ['TTTo2L2Nu']  #,'TTZToLLNuNu','TTWJetsToLNu']

        for sample in ttSamples:
            ttPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))
            ttPlotters[-1].setupFromFile(indir + '/' + sample +
                                         '/skimAnalyzerCount/SkimReport.pck')
            ttPlotters[-1].addCorrectionFactor('xsec', 'tree')
            ttPlotters[-1].addCorrectionFactor('genWeight', 'tree')
            ttPlotters[-1].addCorrectionFactor('puWeight', 'tree')

        TT = MergedPlotter(ttPlotters)
        TT.setFillProperties(1001, ROOT.kAzure - 9)

        sigPlotters = []
        sigSamples = [
            'BulkGravToZZToZlepZinv_narrow_800',
            'BulkGravToZZToZlepZinv_narrow_1000',
            'BulkGravToZZToZlepZinv_narrow_1200',
        ]
        k = 1000
        sigSampleNames = [
            str(k) + ' x BulkG-800',
            str(k) + ' x BulkG-1000',
            str(k) + ' x BulkG-1200',
        ]
        sigXsec = {
            'BulkGravToZZToZlepZinv_narrow_800': 4.42472e-04 * k,
            'BulkGravToZZToZlepZinv_narrow_1000': 1.33926e-04 * k,
            'BulkGravToZZToZlepZinv_narrow_1200': 4.76544e-05 * k,
        }

        for sample in sigSamples:
            sigPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))
            sigPlotters[-1].setupFromFile(indir + '/' + sample +
                                          '/skimAnalyzerCount/SkimReport.pck')
            sigPlotters[-1].addCorrectionFactor(str(sigXsec[sample]), 'tree')
            sigPlotters[-1].addCorrectionFactor('genWeight', 'tree')
            sigPlotters[-1].addCorrectionFactor('puWeight', 'tree')
            sigPlotters[-1].setFillProperties(0, ROOT.kWhite)

        dataPlotters = []
        dataSamples = [
            'SingleElectron_Run2015C_25ns_16Dec',
            'SingleElectron_Run2015D_16Dec', 'SingleMuon_Run2015C_25ns_16Dec',
            'SingleMuon_Run2015D_16Dec'
        ]
        for sample in dataSamples:
            dataPlotters.append(
                TreePlotter(indir + '/' + sample + '/vvTreeProducer/tree.root',
                            'tree'))

        self.Data = MergedPlotter(dataPlotters)

        self.Stack = StackPlotter()
        self.Stack.addPlotter(self.Data, "data_obs", "Data", "data")
        #Stack.addPlotter(WJets, "WJets","W+Jets", "background")
        self.Stack.addPlotter(WW, "WW", "WW, WZ non-reson.", "background")
        self.Stack.addPlotter(TT, "TT", "TT", "background")
        self.Stack.addPlotter(VV, "ZZ", "ZZ, WZ reson.", "background")
        self.Stack.addPlotter(self.ZJets, "ZJets", "Z+Jets", "background")

        for i in range(len(sigSamples)):
            sigPlotters[i].setLineProperties(2, ROOT.kRed + i, 2)
            self.Stack.addPlotter(sigPlotters[i], sigSamples[i],
                                  sigSampleNames[i], 'signal')

        self.Stack.setLog(LogY)
        self.Stack.doRatio(doRatio)
        ROOT.gROOT.ProcessLine('.x tdrstyle.C')
Exemplo n.º 5
0
sampleTypes = options.samples.split(',')

dataPlotters = []

for filename in os.listdir(args[0]):
    for sampleType in sampleTypes:
        if filename.find(sampleType) != -1:
            print filename
            fnameParts = filename.split('.')
            fname = fnameParts[0]
            ext = fnameParts[1]
            if ext.find("root") == -1:
                continue
            dataPlotters.append(
                TreePlotter(args[0] + '/' + fname + '.root', 'tree'))
            if options.data == 0:
                dataPlotters[-1].setupFromFile(args[0] + '/' + fname + '.pck')
                dataPlotters[-1].addCorrectionFactor('xsec', 'tree')
                dataPlotters[-1].addCorrectionFactor('genWeight', 'tree')
                dataPlotters[-1].addCorrectionFactor('puWeight', 'tree')

data = MergedPlotter(dataPlotters)

pvars = options.vars.split(',')
pmins = options.mins.split(',')
pmaxes = options.maxes.split(',')
pbins = options.bins.split(',')

if len(pvars) == 1:
    histo = data.drawTH1(pvars[0], options.cut, "1", int(pbins[0]),
Exemplo n.º 6
0
from CMGTools.XZZ2l2nu.plotting.StackPlotter import StackPlotter

ROOT.gROOT.ProcessLine('.x tdrstyle.C')
tag = 'loosecut_'
cuts = '(nllnunu)'
lumi = 2.153
sepSig = True
LogY = True
TTbottom = True
if LogY: tag = tag + 'log_'

vvPlotters = []
vvSamples = ['WW', 'WZ', 'ZZ']

for sample in vvSamples:
    vvPlotters.append(TreePlotter(sample + '/vvTreeProducer/tree.root',
                                  'tree'))
    vvPlotters[-1].setupFromFile(sample + '/skimAnalyzerCount/SkimReport.pck')
    vvPlotters[-1].addCorrectionFactor('xsec', 'tree')
    vvPlotters[-1].addCorrectionFactor('genWeight', 'tree')
    vvPlotters[-1].addCorrectionFactor('puWeight', 'tree')

VV = MergedPlotter(vvPlotters)
VV.setFillProperties(1001, ROOT.kMagenta)

zjetsPlotters = []
#zjetsSamples = ['DYJetsToLL_M50_HT100to200','DYJetsToLL_M50_HT200to400','DYJetsToLL_M50_HT400to600','DYJetsToLL_M50_HT600toInf']
zjetsSamples = ['DYJetsToLL_M50']

for sample in zjetsSamples:
    zjetsPlotters.append(
        TreePlotter(sample + '/vvTreeProducer/tree.root', 'tree'))