Particle Properties¶
- group Particles
The properties of all particles are saved in static and flat arrays.
There is a enum corsika::Code to identify each particles, and each individual particles has its own static class, which can be used to retrieve its physical properties.
The properties of all elementary particles are accessible here. The data are taken from the Pythia ParticleData.xml file.
Particle data can be accessed via global function in namespace corsika, or via static classes for each particle type. These classes all have the interface (example for the class corsika::Electron):
static constexpr Code code{Code::Electron}; static constexpr Code anti_code{Code::Positron}; static constexpr HEPMassType mass{corsika::get_mass(code)}; static constexpr ElectricChargeType charge{corsika::get_charge(code)}; static constexpr int charge_number{corsika::get_charge_number(code)}; static constexpr std::string_view name{corsika::get_name(code)}; static constexpr bool is_nucleus{corsika::is_nucleus(code)};
The names, relations and properties of all particles known to CORSIKA 8 are listed below.
Typedefs
- CodeIntType = int32_t std::underlying_type< Code >::type
The Code enum is the actual place to define CORSIKA 8 particle codes.
Specifically for PDG ids
-
using PDGCodeType = std::underlying_type<PDGCode>::type¶
Functions
-
int16_t constexpr get_charge_number(Code const)¶
electric charge in units of e
-
ElectricChargeType constexpr get_charge(Code const)¶
electric charge
-
HEPMassType constexpr get_mass(Code const)¶
mass
-
HEPEnergyType constexpr get_kinetic_energy_threshold(Code const)¶
get kinetic energy threshold below which the particle is discarded, by default set to zero
-
void constexpr set_kinetic_energy_threshold(Code const, HEPEnergyType const)¶
set kinetic energy threshold below which the particle is discarded
-
inline void set_kinetic_energy_threshold(std::pair<Code const, HEPEnergyType const> p)¶
-
inline void set_kinetic_energy_thresholds(std::unordered_map<Code const, HEPEnergyType const> const &eCuts)¶
-
PDGCode constexpr get_PDG(Code const)¶
Particle code according to PDG, “Monte Carlo Particle Numbering Scheme”.
-
PDGCode constexpr get_PDG(unsigned int A, unsigned int Z)¶
-
std::string_view constexpr get_name(Code const)¶
name of the particle as string
-
TimeType constexpr get_lifetime(Code const)¶
lifetime
-
bool constexpr is_nucleus(Code const)¶
true iff the particle is a hard-coded nucleus or Code::Nucleus
-
bool constexpr is_hadron(Code const)¶
true iff particle is hadron
-
bool constexpr is_em(Code const)¶
true iff particle is electron, positron or photon
-
bool constexpr is_muon(Code const)¶
true iff particle is mu+ or mu-
-
bool constexpr is_neutrino(Code const)¶
true iff particle is (anti-) neutrino
-
int constexpr get_nucleus_A(Code const)¶
returns A for hard-coded nucleus, otherwise 0
-
int constexpr get_nucleus_Z(Code const)¶
returns Z for hard-coded nucleus, otherwise 0
-
HEPMassType get_nucleus_mass(unsigned int const, unsigned int const)¶
returns mass of (A,Z) nucleus, disregarding binding energy
-
Code convert_from_PDG(PDGCode const)¶
convert PDG code to CORSIKA 8 internal code
-
std::initializer_list<Code> constexpr get_all_particles()¶
-
std::ostream &operator<<(std::ostream&, corsika::Code)¶
the output stream operator for human-readable particle codes