def METHOD_NAME(self):
    p = QtGui.QPainterPath()
    x, y = self.opts['x'], self.opts['y']
    if x is None or y is None:
        self.path = p
        return
    beam = self.opts['beam']
    height, top, bottom = self.opts['height'], self.opts['top'], self.opts['bottom']
    if height is not None or top is not None or bottom is not None:
        ## draw vertical error bars
        if height is not None:
            y1 = y - height/2.
            y2 = y + height/2.
        else:
            if bottom is None:
                y1 = y
            else:
                y1 = y - bottom
            if top is None:
                y2 = y
            else:
                y2 = y + top
        xs = fn.interweaveArrays(x, x)
        y1_y2 = fn.interweaveArrays(y1, y2)
        verticalLines = fn.arrayToQPath(xs, y1_y2, connect="pairs")
        p.addPath(verticalLines)
        if beam is not None and beam > 0:
            x1 = x - beam/2.
            x2 = x + beam/2.
            x1_x2 = fn.interweaveArrays(x1, x2)
            if height is not None or top is not None:
                y2s = fn.interweaveArrays(y2, y2)
                topEnds = fn.arrayToQPath(x1_x2, y2s, connect="pairs")
                p.addPath(topEnds)
            if height is not None or bottom is not None:
                y1s = fn.interweaveArrays(y1, y1)
                bottomEnds = fn.arrayToQPath(x1_x2, y1s, connect="pairs")
                p.addPath(bottomEnds)
    width, right, left = self.opts['width'], self.opts['right'], self.opts['left']
    if width is not None or right is not None or left is not None:
        ## draw vertical error bars
        if width is not None:
            x1 = x - width/2.
            x2 = x + width/2.
        else:
            if left is None:
                x1 = x
            else:
                x1 = x - left
            if right is None:
                x2 = x
            else:
                x2 = x + right
        ys = fn.interweaveArrays(y, y)
        x1_x2 = fn.interweaveArrays(x1, x2)
        ends = fn.arrayToQPath(x1_x2, ys, connect='pairs')
        p.addPath(ends)
        if beam is not None and beam > 0:
            y1 = y - beam/2.
            y2 = y + beam/2.
            y1_y2 = fn.interweaveArrays(y1, y2)
            if width is not None or right is not None:
                x2s = fn.interweaveArrays(x2, x2)
                rightEnds = fn.arrayToQPath(x2s, y1_y2, connect="pairs")
                p.addPath(rightEnds)
            if width is not None or left is not None:
                x1s = fn.interweaveArrays(x1, x1)
                leftEnds = fn.arrayToQPath(x1s, y1_y2, connect="pairs")
                p.addPath(leftEnds)
    self.path = p
    self.prepareGeometryChange()