def gettrace(self, burn=0, thin=1, chain=-1, slicing=None):
        """Return the trace (last by default).

        :Parameters:
        burn : integer
          The number of transient steps to skip.
        thin : integer
          Keep one in thin.
        chain : integer
          The index of the chain to fetch. If None, return all chains. The
          default is to return the last chain.
        slicing : slice object
          A slice overriding burn and thin assignement.
        """

        if chain is not None:
            vlarrays = [self._vlarrays[chain]]
        else:
            vlarrays = self._vlarrays

        for i, vlarray in enumerate(vlarrays):
            if slicing is not None:
                burn, stop, thin = slicing.start, slicing.stop, slicing.step
            if slicing is None or stop is None:
                stop = len(vlarray)
            col = vlarray[burn:stop:thin]
            if i == 0:
                data = np.asarray(col)
            else:
                data = hstack((data, col))

        return data