Celeritas  0.5.0-86+4a8eea4
Public Member Functions | List of all members
celeritas::MuDecayInteractor Class Reference

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.
 

Detailed Description

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

Constructor & Destructor Documentation

◆ MuDecayInteractor()

CELER_FUNCTION celeritas::MuDecayInteractor::MuDecayInteractor ( MuDecayData const &  shared,
ParticleTrackView const &  particle,
Real3 const &  inc_direction,
StackAllocator< Secondary > &  allocate 
)
inline

Construct with shared and state data.

Note
Geant4 physics manual defines \( E_{max} = m_\mu / 2 \), while the source code (since v10.2.0 at least) defines \( E_{max} = m_\mu / 2 - m_e \) . The source code implementation leads to a total CM energy of ~104.6 MeV instead of the expected 105.7 MeV (muon mass), which is achieved by using the physics manual definition.

The documentation for this class was generated from the following file: