tudo-astroparticlephysics/PROPOSAL

Impementation details of Continuous Randomization in Propagator

Closed this issue · 0 comments

We already had some discussions about the current implementation of Continuous Randomization inside the Propagator::Propagate method in this PR.

However, there is another point that we might want to change. I learned about this after some discussion with a PROPOSAL user:

The user propagated muons to their rest mass (i.e. he used Propagator::Propagate(init_state)). He wondered why the particles did not read their rest mass, where I explained that this might be due to muons decaying before they reached their rest mass. We disabled the muon decay by setting the muon lifetime to infinte, however, there were still a lot of muons that did not reach their rest mass. We found out that this is due to the continuous randomization.

The final energies of (stable) muons, when continuous randomization is enabled, looks like this:

contrand

If we disable continuous randomization, as expected, all muons reached their rest mass at the end of the propagation.

What is happening here is that when we have our last continuous propagation step, i.e. the step with E_f = m_mu, Propagator::Propagate randomizes the final energy before the propagation is stopped.

The same effect can be seen if we set a minimal propagation energy, for example of 1000 MeV:

contrand_1000

I feel like this should not be the case: If we tell the Propagator that we want to propagate the particle to a certain energy (or to its rest mass), the final particle energy should be equal to this value whenever possible (exceptions are stochastic losses, which may cause the final energy to be below the fixed value, or fatal interaction such as a particle decay).

In my opinion, the energy should not be randomized for this last step in case we are propagating to a specific energy. However, in this case, the last step would not be randomized at all. I am not sure whether this is a problem for us.