for z in channels: d = plotter.Drawing('{}GenMassRes_m-{}'.format(z, int(massCut)), plotter.style, 1000, 1000, False, False) if isinstance(sels[z], str): if sels[z]: sel = [' && '.join([sels[z], mc.format(massCut)]) for mc in massCuts[z]] else: sel = [mc.format(massCut) for mc in massCuts[z]] else: sel = [' && '.join([s, mc.format(massCut)]) if s else mc.format(massCut) for s, mc in zip(sels[z], massCuts[z])] s = plotter.makeCategoryStack('mc', channels[z], var[z], sel, [11, -.1, .1], 1., wts[z]) d.addObject(s) d.draw({}, os.path.join(plotter.outdir, '{}GenMassRes_m-{}.png'.format(z, int(massCut)) ), False, 'm_{\\ell\\ell} \\text{ resolution}', '', 'Events', '', True, {}, True, plotter.intLumi, True, widthInYTitle=True) selOverTemp = '({0}_{1}_MassDREtFSR < 10. && ({0}GenPt < 0. || {1}GenPt < 0.))' selOverE = [selOverTemp.format('e1', 'e2'), selOverTemp.format('e3', 'e4'), selOverTemp.format('e1', 'e2')] selOverM = [selOverTemp.format('m1', 'm2'), selOverTemp.format('m3', 'm4'), selOverTemp.format('m1', 'm2')]
'Iso' : '\\text{Rel. PF Iso. (PU corrected)} (%s)', 'SIP' : '%s \\text{ SIP}_\\text{3D}', } objectTextL = { 'z' : '\\ell', 'ze' : 'e\\,', 'zm' : '\\mu', } for z, objects in objectsZ.iteritems(): channel = [channels[lep] for lep in objectsZ[z]] weight = [mcWeight[lep] for lep in objectsZ[z]] s = plotter.makeCategoryStack('mc', channel, '1.', '', [1,0.,2.], 1., weight) h = plotter.makeHist('data', 'data', channel, '1.', '', [1,0.,2.]) mcScale = h.GetEntries() / s.GetStack().Last().Integral() # print z, mcScale # continue for var, bins in binningZ.iteritems(): variables = [varTempsZ[lep]%var for lep in objectsZ[z]] weight = [('%f*'%mcScale)+mcWeight[lep] for lep in objectsZ[z]] plotter.fullPlot('%s%s'%(z, var), channel, variables, '', bins, 'mc', 'data', canvasX=1000, logy=False, xTitle=xTitlesZ[var]%objectTextZ[z], xUnits=units[var], outFile='%s%s.png'%(z,var),