SingleGen: handle negative momentum values
I'm unsure if this is expected behavior or not.
Currently, when the particle gun uses a Gaussian distribution to generate momentum values there is nothing stopping this momentum being negative.
The momentum 4-vector is still physical as the square of the momentum is used but (Px, Py, Pz) are flipped which affects the angular distributions, and the overall momentum distribution is no longer Gaussian due to an excess of low momenta.
A similar issue occurs when producing theta_xz and theta_yz with a Gaussian as they should be in the range (-180, 180) and (-90, 90).
A possible solution would be to regenerate the random number if it falls outside of the allowed range.