old_contents: r"""
  
  Definition
  ----------
  
  This model describes a Gaussian shaped peak on a flat background
  
  .. math::
  
      I(q) = (\text{scale}) \exp\left[ -\tfrac12 (q-q_0)^2 / \sigma^2 \right]
          + \text{background}
  
  with the peak having height of *scale* centered at $q_0$ and having a standard
  deviation of $\sigma$. The FWHM (full-width half-maximum) is $2.354 \sigma$.
  
  For 2D data, scattering intensity is calculated in the same way as 1D,
  where the $q$ vector is defined as
  
  .. math::
  
      q = \sqrt{q_x^2 + q_y^2}
  
  
  References
  ----------
  
  None.
  
  Authorship and Verification
  ----------------------------
  
  * **Author:**
  * **Last Modified by:**
  * **Last Reviewed by:**
  """
  
  import numpy as np
  from numpy import inf
  
  name = "gaussian_peak"
  title = "Gaussian shaped peak"
  description = """
      Model describes a Gaussian shaped peak including a flat background
      Provide F(q) = scale*exp( -1/2 *[(q-peak_pos)/sigma]^2 )+ background
  """
  category = "shape-independent"
  
  #             ["name", "units", default, [lower, upper], "type","description"],
  parameters = [["peak_pos", "1/Ang", 0.05, [-inf, inf], "", "Peak position"],
                ["sigma", "1/Ang", 0.005, [0, inf], "",
                 "Peak width (standard deviation)"],
               ]
  
  Iq = """
      double scaled_dq = (q - peak_pos)/sigma;
      return exp(-0.5*scaled_dq*scaled_dq); //sqrt(2*M_PI*sigma*sigma);
      """
  
  def random():
      """Return a random parameter set for the model."""
      peak_pos = 10**np.random.uniform(-3, -1)
      sigma = 10**np.random.uniform(-1.3, -0.3)*peak_pos
      scale = 10**np.random.uniform(0, 4)
      pars = dict(
          #background=1e-8,
          scale=scale,
          peak_pos=peak_pos,
          sigam=sigma,
      )
      return pars
  
new_contents: r"""
  
  Definition
  ----------
  
  This model describes a Gaussian shaped peak on a flat background
  
  .. math::
  
      I(q) = (\text{scale}) \exp\left[ -\tfrac12 (q-q_0)^2 / \sigma^2 \right]
          + \text{background}
  
  with the peak having height of *scale* centered at $q_0$ and having a standard
  deviation of $\sigma$. The FWHM (full-width half-maximum) is $2.354 \sigma$.
  
  For 2D data, scattering intensity is calculated in the same way as 1D,
  where the $q$ vector is defined as
  
  .. math::
  
      q = \sqrt{q_x^2 + q_y^2}
  
  
  References
  ----------
  
  None.
  
  Authorship and Verification
  ----------------------------
  
  * **Author:**
  * **Last Modified by:**
  * **Last Reviewed by:**
  """
  
  import numpy as np
  from numpy import inf
  
  name = "gaussian_peak"
  title = "Gaussian shaped peak"
  description = """
      Model describes a Gaussian shaped peak including a flat background
      Provide F(q) = scale*exp( -1/2 *[(q-peak_pos)/sigma]^2 )+ background
  """
  category = "shape-independent"
  
  #             ["name", "units", default, [lower, upper], "type","description"],
  parameters = [["peak_pos", "1/Ang", 0.05, [-inf, inf], "", "Peak position"],
                ["sigma", "1/Ang", 0.005, [0, inf], "",
                 "Peak width (standard deviation)"],
               ]
  
  Iq = """
      double scaled_dq = (q - peak_pos)/sigma;
      return exp(-0.5*scaled_dq*scaled_dq); //sqrt(2*M_PI*sigma*sigma);
      """
  
  def random():
      """Return a random parameter set for the model."""
      peak_pos = 10**np.random.uniform(-3, -1)
      sigma = 10**np.random.uniform(-1.3, -0.3)*peak_pos
      scale = 10**np.random.uniform(0, 4)
      pars = dict(
          #background=1e-8,
          scale=scale,
          peak_pos=peak_pos,
          sigma=sigma,
      )
      return pars
  
subject: fix gaussian peak random model generator