|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
Charged pion decay: pi -> mu + nu_mu (two-body). More...
#include <PionDecay.h>


Public Member Functions | |
| PionDecay (double restLifetimeSeconds, std::size_t containerIndex, double parentMassGeV, int parentChargeSign) | |
| void | createDaughterParticles (std::size_t localDestroyNum, std::size_t oldDaughterLocal, const Kokkos::View< ippl::Vector< double, 3 > * > &parentR, const Kokkos::View< ippl::Vector< double, 3 > * > &parentP, const Kokkos::View< double * > &parentDt, const Kokkos::View< ippl::Vector< float, 3 > * > &parentPol) override |
| Create daughter particles from collected parent data. | |
| void | setDaughterContainer (std::shared_ptr< ParticleContainer< double, 3 > > daughterPC, double daughterMassGeV) |
| Set the daughter particle container and its rest mass. | |
| size_t | apply (ParticleContainer< double, 3 > &pc, double dt, long long globalTrackStep, size_t containerIdx) override |
| ippl::detail::size_type | markDecayedParticles (ippl::detail::size_type nLocal, double dt, Kokkos::View< ippl::Vector< double, 3 > * > Pview, Kokkos::View< bool * > decayed) |
| Mark particles for decay using the relativistic exponential law. | |
| DecayedParentViews | collectDecayedParents (ippl::detail::size_type nLocal, ippl::detail::size_type localDestroyNum, Kokkos::View< bool * > decayed, Kokkos::View< ippl::Vector< double, 3 > * > Rview, Kokkos::View< ippl::Vector< double, 3 > * > Pview, Kokkos::View< double * > dtView, Kokkos::View< ippl::Vector< float, 3 > * > PolView) |
| Gather R/P/dt of parents marked for decay into compact views. | |
Protected Attributes | |
| double | tau0_m |
| Mean lifetime at rest [s]. | |
| Kokkos::Random_XorShift64_Pool | randPool_m |
| Random pool for decay sampling. | |
| std::shared_ptr< ParticleContainer< double, 3 > > | daughterPC_m |
| Daughter container for decay products (nullptr = destroy-only mode). | |
| short | allowedDaughterSpecies_m = -1 |
| double | daughterMassGeV_m = 0.0 |
| Rest mass of the daughter particle [GeV]. | |
| double | parentMassGeV_m |
| Rest mass of the parent particle [GeV]. | |
| int | parentChargeSign_m |
Charged pion decay: pi -> mu + nu_mu (two-body).
Definition at line 14 of file PionDecay.h.
|
inline |
Definition at line 16 of file PionDecay.h.
References Decay::allowedDaughterSpecies_m, and ParticleProperties::getParticleType().

|
overridevirtualinherited |
Implements GlobalProcess.
Definition at line 33 of file Decay.cpp.
References Decay::collectDecayedParents(), Decay::createDaughterParticles(), Decay::daughterPC_m, ParticleContainer< T, Dim >::dt, Decay::DecayedParentViews::dt, ParticleContainer< T, Dim >::hasSpin(), ParticleContainer< T, Dim >::InvalidMask, Decay::markDecayedParticles(), ParticleContainer< T, Dim >::P, Decay::DecayedParentViews::P, ParticleContainer< T, Dim >::Pol, Decay::DecayedParentViews::Pol, Decay::DecayedParentViews::R, and Decay::tau0_m.

|
inherited |
Gather R/P/dt of parents marked for decay into compact views.
Definition at line 115 of file Decay.cpp.
Referenced by Decay::apply().
|
overridevirtual |
Create daughter particles from collected parent data.
Implements Decay.
Definition at line 6 of file PionDecay.cpp.
References Decay::daughterMassGeV_m, Decay::daughterPC_m, Decay::parentChargeSign_m, Decay::parentMassGeV_m, Physics::pi, and Decay::randPool_m.
|
inherited |
Mark particles for decay using the relativistic exponential law.
tau0_m and randPool_m are copied into locals before the device kernel so the KOKKOS_LAMBDA captures values — never this. Definition at line 86 of file Decay.cpp.
References Decay::randPool_m, and Decay::tau0_m.
Referenced by Decay::apply().
|
inherited |
Set the daughter particle container and its rest mass.
| daughterPC | Container that receives decay products. |
| daughterMassGeV | Rest mass of the daughter particle [GeV]. |
daughterPC. When not set (default), decayed particles are marked for deletion. Definition at line 161 of file Decay.cpp.
References Decay::allowedDaughterSpecies_m, Decay::daughterMassGeV_m, Decay::daughterPC_m, and ParticleProperties::getParticleTypeString().

|
protectedinherited |
Physically allowed daughter species (short value of ParticleType enum). Subclasses should set this in their constructor; default = ParticleType::UNNAMED (-1).
Definition at line 108 of file Decay.h.
Referenced by MuonDecay::MuonDecay(), PionDecay(), and Decay::setDaughterContainer().
|
protectedinherited |
Rest mass of the daughter particle [GeV].
Definition at line 111 of file Decay.h.
Referenced by MuonDecay::createDaughterParticles(), createDaughterParticles(), and Decay::setDaughterContainer().
|
protectedinherited |
Daughter container for decay products (nullptr = destroy-only mode).
Definition at line 104 of file Decay.h.
Referenced by Decay::apply(), MuonDecay::createDaughterParticles(), createDaughterParticles(), and Decay::setDaughterContainer().
|
protectedinherited |
Sign of parent particle. Either +1, 0, -1. Necessary because the Muon decay is charge dependent.
Definition at line 118 of file Decay.h.
Referenced by MuonDecay::createDaughterParticles(), and createDaughterParticles().
|
protectedinherited |
Rest mass of the parent particle [GeV].
Definition at line 114 of file Decay.h.
Referenced by MuonDecay::createDaughterParticles(), and createDaughterParticles().
|
protectedinherited |
Random pool for decay sampling.
Definition at line 101 of file Decay.h.
Referenced by MuonDecay::createDaughterParticles(), createDaughterParticles(), and Decay::markDecayedParticles().
|
protectedinherited |
Mean lifetime at rest [s].
Definition at line 98 of file Decay.h.
Referenced by Decay::apply(), and Decay::markDecayedParticles().