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.

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.
        """

        # XXX: handle chain == None case properly

        if chain is None:
            chain = -1
        chain = self.db.chains[chain]

        arr = self.db._arrays[chain, self.name]

        if slicing is not None:
            burn, stop, thin = slicing.start, slicing.stop, slicing.step

        if slicing is None or stop is None:
            stop = arr.nrows
            return np.asarray(arr.read(start=burn, stop=stop, step=thin))