title: Defining a custom PyMC distribution
body: <p>This is perhaps a silly question.</p>
  
  <p>I'm trying to fit data to a very strange PDF using MCMC evaluation in PyMC. For this example I just want to figure out how to fit to a normal distribution where I manually input the normal PDF. My code is:</p>
  
  <pre><code>data = []; 
  for count in range(1000): data.append(random.gauss(-200,15));
  
  mean = mc.Uniform('mean', lower=min(data), upper=max(data))
  std_dev = mc.Uniform('std_dev', lower=0, upper=50)
  
  # @mc.potential
  # def density(x = data, mu = mean, sigma = std_dev):
  #   return (1./(sigma*np.sqrt(2*np.pi))*np.exp(-((x-mu)**2/(2*sigma**2))))
  
  mc.Normal('process', mu=mean, tau=1./std_dev**2, value=data, observed=True)
  
  model = mc.MCMC([mean,std_dev])
  model.sample(iter=5000)
  
  print "!"
  print(model.stats()['mean']['mean'])
  print(model.stats()['std_dev']['mean'])
  </code></pre>
  
  <p>The examples I've found all use something like mc.Normal, or mc.Poisson or whatnot, but I want to fit to the commented out density function.</p>
  
  <p>Any help would be appreciated.</p>