Decay physics

Similar to EM physics, the particle decay processes in Celeritas are implemented following Geant4’s reference manual and source code.

Decay processes

The table lists all available particles that undergo any decay type, along with their decay channels branching ratios, and associated Interactor.

Particle decays available in Celeritas.

Particle

Decay channel(s)

Fraction (\(\Gamma_i/\Gamma\))

Celeritas Implementation

\(\mu^-\)

\(e^- \bar{\nu}_e \nu_\mu\)

1

celeritas::MuDecayInteractor

\(\mu^+\)

\(e^+ \nu_e \bar{\nu}_\mu\)

1

Muon decay

class MuDecayInteractor

Perform muon decay.

Only one decay channel is implemented, with muons decaying to

\[ \mu^- \longrightarrow e^- \bar{\nu}_e \nu_\mu \]
or
\[ \mu^+ \longrightarrow e^+ \nu_e \bar{\nu}_\mu \]
.

This interactor follows G4MuonDecayChannel::DecayIt and the Physics Reference Manual, Release 11.2, section 4.2.3. The sampling happens at the muon’s rest frame, with the result being uniformly rotated and finally boosted to the lab frame.

As it is a three-body decay, the energy sampling happens for \( e^\pm \) and \( \nu_e(\bar{\nu}_e) \), with the \( \nu_\mu(\bar{\nu}_\mu) \) final energy directly calculated from energy conservation. The sampling loop selects fractional energies \([0,1)\) for the first two particles. A fraction of 1 yields the maximum possible kinetic energy for said particle, defined as \( E_\text{max} = \frac{m_\mu}{2} - m_e \). For the electron neutrino, its energy fraction \( f_{E_{\nu_e}} \) is sampled from the PDF \( f(x) = 6x(1-x), \ x \in [0,1) \), using the rejection method, with proposal distribution PDF \( g(x) = U(0,1) \) and bounding constant \( M = 1.5 \). The charged lepton’s fractional energy \( f_{E_e} \) is then selected uniformly obeying \( f_{E_{\nu_e}} + f_{E_e} >= 1 \) . The remaining fractional energy for the muon neutrino is \( f_{E_{\nu_\mu}} = 2 - f_{E_e} - f_{E_{\nu_e}} \).

Note

Neutrinos are currently not returned by this interactor as they are not tracked down or transported and would significantly increase secondary memory allocation usage. See discussion and commit history at https://github.com/celeritas-project/celeritas/pull/1456