List of all members | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Attributes
utl::NucleusProperties Class Reference

Class to hold properties of nuclei. More...

#include "utl/NucleusProperties.h"

Inheritance diagram for utl::NucleusProperties:
Inheritance graph
[legend]

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
 

Detailed Description

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)

Author
Lukas Nellen
Date
01 Jun 2005

Definition at line 33 of file NucleusProperties.h.

Constructor & Destructor Documentation

utl::NucleusProperties::NucleusProperties ( const int  type)
inline

Definition at line 43 of file NucleusProperties.h.

Member Function Documentation

double utl::NucleusProperties::GetAtomicNumber ( ) const
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().

double utl::NucleusProperties::GetMass ( ) const
overridevirtual

Get particle mass (in Auger units)

A very simple calculation of the mass: $ m = m_p * A $.

Todo:
Replace this with a more precise expression

Implements utl::VParticleProperties.

Definition at line 78 of file NucleusProperties.cc.

References GetAtomicNumber(), and utl::kProtonMass.

std::string utl::NucleusProperties::GetName ( ) const
overridevirtual

Get particle name.

Implements utl::VParticleProperties.

Definition at line 51 of file NucleusProperties.cc.

References RdGeoCeLDFFitter::a, fType, kAtomicNumberFactor, kAtomicNumberMask, kChargeFactor, and kChargeMask.

virtual int utl::NucleusProperties::GetType ( ) const
inlineoverridevirtual

Get particle type (using PDG particle codes)

Implements utl::VParticleProperties.

Definition at line 46 of file NucleusProperties.h.

References fType.

bool utl::NucleusProperties::IsNucleus ( const int  type)
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().

int utl::NucleusProperties::TypeCode ( const unsigned int  charge,
const unsigned int  atomicNumber 
)
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().

Member Data Documentation

int utl::NucleusProperties::fType = 0
private

Definition at line 64 of file NucleusProperties.h.

Referenced by GetAtomicNumber(), GetName(), and GetType().

const int utl::NucleusProperties::kAtomicNumberFactor = 1
static

Definition at line 38 of file NucleusProperties.h.

Referenced by GetAtomicNumber(), GetName(), and TypeCode().

const int utl::NucleusProperties::kAtomicNumberMask = 1000
static

Definition at line 39 of file NucleusProperties.h.

Referenced by GetAtomicNumber(), and GetName().

const int utl::NucleusProperties::kChargeFactor = 1000
static

Definition at line 40 of file NucleusProperties.h.

Referenced by GetName(), and TypeCode().

const int utl::NucleusProperties::kChargeMask = 1000000
static

Definition at line 41 of file NucleusProperties.h.

Referenced by GetName().

const int utl::NucleusProperties::kNucleusBase = 1000000000
static

Definition at line 36 of file NucleusProperties.h.

Referenced by IsNucleus(), and TypeCode().

const int utl::NucleusProperties::kNucleusMax = 1000100300
static

Definition at line 37 of file NucleusProperties.h.

Referenced by IsNucleus().


The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.