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.
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