tudo-astroparticlephysics / PROPOSAL

Monte Carlo Simulation propagating charged Leptons through Media as C++ Library
GNU Lesser General Public License v3.0
35 stars 21 forks source link

No `InteractionType::Decay` type added to Secondaries if particle decays at rest mass #323

Closed Jean1995 closed 1 year ago

Jean1995 commented 2 years ago

If we have a particle with a finite lifetime which decays at its rest mass, we expect the last InteractionType of the particle track to be a Decay. However, this is currently not the case.

This means that calling Secondaries::GetDecayProducts() for a muon that reached its rest mass at the end of propagation (and should therefore decay) will return an empty list, which implicates that the muon did not decay.

Particles that decay with an energy higher than their rest mass (which should be the more relevant use case for most appliactions) are not affected from this bug.

The reason is probably that within the Propagator::Propagate method, when evaluating the next type of interaction (i.e. Decay, Stochastic Interaction, or reaching the end of propagation), but more than one of these values is equal, the Decay is just ignored.

https://github.com/tudo-astroparticlephysics/PROPOSAL/blob/75fd120efb1b760bca2bd6cee42a7b723dec1d6b/src/PROPOSAL/detail/PROPOSAL/Propagator.cxx#L85