#'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',
'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 = []
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:
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')
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]),
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'))