for b,bNew in zip(h, hNew):
        bNew.value = b.value
        bNew.error = b.error
    if len(binning) == 3:
        temp = Hist(*binning)
        sigShapeHists[m] = plotter.WrappedHist(hNew.rebinned([e for e in temp._edges(0)]), **sigKWArgs)
    else:
        sigShapeHists[m] = plotter.WrappedHist(hNew.rebinned(binning), **sigKWArgs)
    sigShapeHists[m].fillstyle = 'hollow'
    sigShapeHists[m].linestyle = 'dashed'
    sigShapeHists[m].linecolor = sigColors[m]
    sigShapeHists[m].legendstyle = 'L'
    sigShapeHists[m].drawstyle = 'HIST'
    sigShapeHists[m].SetLineWidth(3 * sigShapeHists[m].GetLineWidth())
    if len(binning) != 3:
        plotter.scaleHist(sigShapeHists[m], -1., True)

    # overflow bin going to zero looks weird
    sigShapeHists[m][0].value = sigShapeHists[m][1].value
    sigShapeHists[m][-1].value = sigShapeHists[m][-2].value


    

xTitle = 'm_{__PARTICLES__}'

def formatDataHZZ(h):
    h.drawstyle = 'PEX0'
    h.legendstyle = 'P'

var = 'MassFSR'
    for b, bNew in zip(h, hNew):
        bNew.value = b.value
        bNew.error = b.error
    if len(binning) == 3:
        temp = Hist(*binning)
        sigShapeHists[m] = ntuplePlotter.WrappedHist(hNew.rebinned([e for e in temp._edges(0)]), **sigKWArgs)
    else:
        sigShapeHists[m] = ntuplePlotter.WrappedHist(hNew.rebinned(binning), **sigKWArgs)
    sigShapeHists[m].fillstyle = "hollow"
    sigShapeHists[m].linestyle = "dashed"
    sigShapeHists[m].linecolor = sigColors[m]
    sigShapeHists[m].legendstyle = "L"
    sigShapeHists[m].drawstyle = "HIST"
    sigShapeHists[m].SetLineWidth(3 * sigShapeHists[m].GetLineWidth())
    if len(binning) != 3:
        ntuplePlotter.scaleHist(sigShapeHists[m], -1.0, True)

    # overflow bin going to zero looks weird
    sigShapeHists[m][0].value = sigShapeHists[m][1].value
    sigShapeHists[m][-1].value = sigShapeHists[m][-2].value


def makePlot(
    plotter,
    name,
    channel,
    variable,
    selection,
    binning,
    mcCategory="mc",
    dataCategory="data",