Class NuclearDecay

Nested Relationships

Inheritance Relationships

Base Type

Class Documentation

class NuclearDecay : public Module

Nuclear decay of unstable nuclei.

This module simulates the nuclear decay of unstable nuclei using data from NuDat2. All decay modes are considered: alpha, beta+- and gamma decay, as well as proton- and neutron dripping. The resulting non-hadronic secondary particles (e+, e-, neutrinos, gamma) can optionally be created.

For details on the preprocessing of the NuDat2 data refer to “CRPropa3-data/calc_decay.py”.

Public Functions

NuclearDecay(bool electrons = false, bool photons = false, bool neutrinos = false, double limit = 0.1)
void setLimit(double limit)
void setHaveElectrons(bool b)
void setHavePhotons(bool b)
void setHaveNeutrinos(bool b)
void process(Candidate *candidate) const
void performInteraction(Candidate *candidate, int channel) const
void gammaEmission(Candidate *candidate, int channel) const
void betaDecay(Candidate *candidate, bool isBetaPlus) const
void nucleonEmission(Candidate *candidate, int dA, int dZ) const
double meanFreePath(int id, double gamma)

Return the mean free path in [m]. This is not used in the simulation.

Parameters
  • id: PDG particle id
  • gamma: Lorentz factor of particle

std::string getDescription() const
void setDescription(const std::string &description)
void process(ref_ptr<Candidate> candidate) const
size_t addReference() const
size_t removeReference() const
int removeReferenceNoDelete() const
size_t getReferenceCount() const

Protected Attributes

size_t _referenceCount