1 #include <utl/NucleusProperties.h>
2 #include <utl/Particle.h>
3 #include <utl/PhysicalConstants.h>
5 #include <boost/format.hpp>
13 const char* gNuclearNames[] = {
43 unsigned int kMaxNuclearNameIndex = utl::Length(gNuclearNames) - 1;
57 return (z <= kMaxNuclearNameIndex) ?
58 str(format(
"%1% %2%") % gNuclearNames[z] % a) :
59 str(format(
"N(%1%) %2%") % z % a);
87 const unsigned int atomicNumber)
virtual double GetAtomicNumber() const
Get atomic mass number A of particle.
constexpr double kProtonMass
static const int kChargeFactor
virtual double GetMass() const override
Get particle mass (in Auger units)
static const int kAtomicNumberMask
static const int kNucleusBase
static const int kAtomicNumberFactor
static int TypeCode(const unsigned int charge, const unsigned int atomicNumber)
Calculate the particle type code from Z and A.
static const int kChargeMask
static const int kNucleusMax
static bool IsNucleus(const int type)
Check if type code is a valid nucleus.
virtual std::string GetName() const override
Get particle name.