def gauss_log_likelihood(data, theta):
    """Computes log(likelihood) for a set of hypothetical modeling parameters.

    Here, the "data" are just the fixed values (beta_0, beta_1, beta_2, beta_3)
    where the Gaussian is centered.
    The theta parameters are the MCMC's trial of x,y,z.  When they match
    (x0,y0,z0), that will correspond to the maximum likelihood.  For other
    values of (x,y,z), the likelihood is smaller.
    """
    x, y, z, a = theta
    beta_0, beta_1, beta_2, beta_3, sigma = data
    # likelihood = exp(-((x-beta_0)^2 + (y-beta_1)^2 + (z-beta_2)^2) / (2 sigma^2))
    # log(likelihood) = -((x-beta_0)^2 + (y-beta_1)^2 + (z-beta_2)^2) / (2 sigma^2))
    return -((x-beta_0)**2 + (y-beta_1)**2 + (z-beta_2)**2 + (a-beta_3)**2) / (2 * sigma**2)