This modernizes the
MaterialEval particle gun and prepares it for Gauss-on-Gaussino from the thread-safety point of view. One
of the biggest changes is the removal of multiple counters (x_counter, phi_counter... etc.) in favour of having just one, main counter. Having introduced just one counter, there is no need to insert locking mechanisms anymore.
The test will be provided in another MR with the new functionality.
The changes included in this MR will ported to Gaussino in a separate MR where the constness of the inherited methods will also be guaranteed.