NucleusProperties.h
Go to the documentation of this file.
1 
9 #ifndef _utl_NucleusProperties_h_
10 #define _utl_NucleusProperties_h_
11 
12 #include <utl/VParticleProperties.h>
13 
14 
15 namespace utl {
16 
34 
35  public:
36  static const int kNucleusBase = 1000000000;
37  static const int kNucleusMax = 1000100300;
38  static const int kAtomicNumberFactor = 1;
39  static const int kAtomicNumberMask = 1000;
40  static const int kChargeFactor = 1000;
41  static const int kChargeMask = 1000000;
42 
43  NucleusProperties(const int type) : fType(type) { }
44 
46  virtual int GetType() const override { return fType; }
47 
49  virtual std::string GetName() const override;
50 
52  virtual double GetAtomicNumber() const;
53 
55  virtual double GetMass() const override;
56 
58  static int TypeCode(const unsigned int charge, const unsigned int atomicNumber);
59 
61  static bool IsNucleus(const int type);
62 
63  private:
64  int fType = 0;
65 
66  };
67 
68 }
69 
70 
71 #endif
virtual double GetAtomicNumber() const
Get atomic mass number A of particle.
NucleusProperties(const int type)
Class to hold properties of nuclei.
static const int kChargeFactor
virtual double GetMass() const override
Get particle mass (in Auger units)
Internal interface for particle properties. This is intended to be implemented for elementary particl...
static const int kAtomicNumberMask
static const int kNucleusBase
static const int kAtomicNumberFactor
virtual int GetType() const override
Get particle type (using PDG particle codes)
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.

, generated on Tue Sep 26 2023.