code: def run(self, N=1, trace_sort=False):
          '''Run the sampler, store the history of visited points into
          the member variable ``self.samples`` and the importance weights
          into ``self.weights``.
          .. seealso::
              :py:class:`pypmc.tools.History`
          :param N:
              Integer; the number of samples to be drawn.
          :param trace_sort:
              Bool; if True, return an array containing the responsible
              component of ``self.proposal`` for each sample generated
              during this run.
              .. note::
                  This option only works for proposals of type
                  :py:class:`pypmc.density.mixture.MixtureDensity`
              .. note::
                  If True, the samples will be ordered by the components.
          '''
          if N == 0:
              return 0
          if trace_sort:
              this_samples, origin = self._get_samples(N, trace_sort=True)
              self._calculate_weights(this_samples, N)
              return origin
          else:
              this_samples = self._get_samples(N, trace_sort=False)
              self._calculate_weights(this_samples, N)