Class to hold properties of nuclei. More...
#include "utl/NucleusProperties.h"
Public Member Functions | |
virtual double | GetAtomicNumber () const |
Get atomic mass number A of particle. More... | |
virtual double | GetMass () const override |
Get particle mass (in Auger units) More... | |
virtual std::string | GetName () const override |
Get particle name. More... | |
virtual int | GetType () const override |
Get particle type (using PDG particle codes) More... | |
NucleusProperties (const int type) | |
Static Public Member Functions | |
static bool | IsNucleus (const int type) |
Check if type code is a valid nucleus. More... | |
static int | TypeCode (const unsigned int charge, const unsigned int atomicNumber) |
Calculate the particle type code from Z and A. More... | |
Static Public Attributes | |
static const int | kAtomicNumberFactor = 1 |
static const int | kAtomicNumberMask = 1000 |
static const int | kChargeFactor = 1000 |
static const int | kChargeMask = 1000000 |
static const int | kNucleusBase = 1000000000 |
static const int | kNucleusMax = 1000100300 |
Private Attributes | |
int | fType = 0 |
Class to hold properties of nuclei.
Nuclei are coded using an extension of the PDG particle codes for Monte Carlo. The scheme uses 7 digit codes. Therefore, we code nuclei with a type code 1000ZZZAAA.
(N.B.: original PDG code is +/-10LZZZAAAI)
Definition at line 33 of file NucleusProperties.h.
|
inline |
Definition at line 43 of file NucleusProperties.h.
|
virtual |
Get atomic mass number A of particle.
Definition at line 64 of file NucleusProperties.cc.
References fType, kAtomicNumberFactor, and kAtomicNumberMask.
Referenced by ConexParticleNumber(), and GetMass().
|
overridevirtual |
Get particle mass (in Auger units)
A very simple calculation of the mass: .
Implements utl::VParticleProperties.
Definition at line 78 of file NucleusProperties.cc.
References GetAtomicNumber(), and utl::kProtonMass.
|
overridevirtual |
Get particle name.
Implements utl::VParticleProperties.
Definition at line 51 of file NucleusProperties.cc.
References RdGeoCeLDFFitter::a, fType, kAtomicNumberFactor, kAtomicNumberMask, kChargeFactor, and kChargeMask.
|
inlineoverridevirtual |
Get particle type (using PDG particle codes)
Implements utl::VParticleProperties.
Definition at line 46 of file NucleusProperties.h.
References fType.
|
static |
Check if type code is a valid nucleus.
Definition at line 98 of file NucleusProperties.cc.
References kNucleusBase, and kNucleusMax.
Referenced by ParticleInjectorNEU::ParticleInjector::InjectParticles(), and utl::UnregisteredParticlePropertyPolicy::Unregistered().
|
static |
Calculate the particle type code from Z and A.
Definition at line 86 of file NucleusProperties.cc.
References kAtomicNumberFactor, kChargeFactor, and kNucleusBase.
Referenced by io::FillShowerSimDataFromConex(), utl::Particle::NucleusCode(), and testParticlePropertiesFactory::testCreate().
|
private |
Definition at line 64 of file NucleusProperties.h.
Referenced by GetAtomicNumber(), GetName(), and GetType().
|
static |
Definition at line 38 of file NucleusProperties.h.
Referenced by GetAtomicNumber(), GetName(), and TypeCode().
|
static |
Definition at line 39 of file NucleusProperties.h.
Referenced by GetAtomicNumber(), and GetName().
|
static |
Definition at line 40 of file NucleusProperties.h.
Referenced by GetName(), and TypeCode().
|
static |
Definition at line 41 of file NucleusProperties.h.
Referenced by GetName().
|
static |
Definition at line 36 of file NucleusProperties.h.
Referenced by IsNucleus(), and TypeCode().
|
static |
Definition at line 37 of file NucleusProperties.h.
Referenced by IsNucleus().