Celeritas
0.5.0-86+4a8eea4
|
Perform muon decay. More...
#include <MuDecayInteractor.hh>
Public Member Functions | |
CELER_FUNCTION | MuDecayInteractor (MuDecayData const &shared, ParticleTrackView const &particle, Real3 const &inc_direction, StackAllocator< Secondary > &allocate) |
Construct with shared and state data. More... | |
template<class Engine > | |
CELER_FUNCTION Interaction | operator() (Engine &rng) |
Sample the muon decay. | |
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}} \).
|
inline |
Construct with shared and state data.