'title' : 'Z/WZ+X',
    'sample' : 'Z+X',
    'variable' : 'MassFSR',
    'selection' : '',
    'category' : 'Z+X',
    'isData' : False,
    'isSignal' : False,
    }

for c,f in fBkg.iteritems():
    if len(binning) == 3:
        hBkg[c] = plotter.WrappedHist(*binning, channel=c, **bkgKWArgs)
    else:
        hBkg[c] = plotter.WrappedHist(binning, channel=c, **bkgKWArgs)
    hBkg[c].legendstyle = "F"
    plotter.formatHist(hBkg[c], background=True)

    for b in hBkg[c]:
        b.value = fBkg[c](hBkg[c].GetBinCenter(b.idx))
        b.error = b.value * errBkg['eeee']

if len(binning) == 3:
    hBkg['zz'] = plotter.WrappedHist(*binning, channel='zz', **bkgKWArgs)
else:
    hBkg['zz'] = plotter.WrappedHist(binning, channel='zz', **bkgKWArgs)
hBkg['zz'].legendstyle = "F"
plotter.formatHist(hBkg['zz'], background=True)
for b in hBkg['zz']:
    b.value = sum(fBkg[c](hBkg['zz'].GetBinCenter(b.idx)) for c in fBkg)
    b.error = sqrt(sum(errBkg[c]**2. for c in errBkg))
    "title": "Z/WZ+X",
    "sample": "Z+X",
    "variable": "MassFSR",
    "selection": "",
    "category": "Z+X",
    "isData": False,
    "isSignal": False,
}

for c, f in fBkg.iteritems():
    if len(binning) == 3:
        hBkg[c] = ntuplePlotter.WrappedHist(*binning, channel=c, **bkgKWArgs)
    else:
        hBkg[c] = ntuplePlotter.WrappedHist(binning, channel=c, **bkgKWArgs)
    hBkg[c].legendstyle = "F"
    ntuplePlotter.formatHist(hBkg[c], background=True)

    for b in hBkg[c]:
        b.value = fBkg[c](hBkg[c].GetBinCenter(b.idx))
        b.error = b.value * errBkg["eeee"]

if len(binning) == 3:
    hBkg["zz"] = ntuplePlotter.WrappedHist(*binning, channel="zz", **bkgKWArgs)
else:
    hBkg["zz"] = ntuplePlotter.WrappedHist(binning, channel="zz", **bkgKWArgs)
hBkg["zz"].legendstyle = "F"
ntuplePlotter.formatHist(hBkg["zz"], background=True)
for b in hBkg["zz"]:
    b.value = sum(fBkg[c](hBkg["zz"].GetBinCenter(b.idx)) for c in fBkg)
    b.error = sqrt(sum(errBkg[c] ** 2.0 for c in errBkg))