Exemple #1
0
    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),