Particles
Basic concepts
There are three levels of classes to describe particles in Geant4.
G4ParticleDefinition
defines a particle
G4DynamicParticle
describes a particle interacting with materials
G4Track
describes a particle traveling in space and time
G4ParticleDefinition aggregates information to
characterize a particle's properties, such as name, mass, spin,
life time, and decay modes. G4DynamicParticle aggregates
information to describe the dynamics of particles, such as energy,
momentum, polarization, and proper time, as well as ``particle
definition'' information. G4Track includes all information
necessary for tracking in a detector simulation, such as time,
position, and step, as well as ``dynamic particle''
information.
G4Track has all the information necessary for tracking in
Geant4. It includes position, time, and step, as well as
kinematics. Details of G4Track will be described in
.
Definition of a particle
There are a large number of elementary particles and nuclei. Geant4
provides the G4ParticleDefinition class to represent
particles, and various particles, such as the electron, proton, and
gamma have their own classes derived from
G4ParticleDefinition.
We do not need to make a class in Geant4 for every kind of
particle in the world. There are more than 100 types of particles
defined in Geant4 by default. Which particles should be included,
and how to implement them, is determined according to the following
criteria. (Of course, the user can define any particles he wants.
Please see the User's Guide: For ToolKit
Developers).
Particle List in Geant4
This list includes all particles in Geant4 and you can see
properties of particles such as
PDG encoding
mass and width
electric charge
spin, isospin and parity
magnetic moment
quark contents
life time and decay modes
Here is a list of particles in Geant4. This list is generated
automatically by using Geant4 functionality, so listed values are
same as those in your Geant4 application (as far as you do not
change source codes).
Categories
gluon / quarks / di-quarks
leptons
mesons
baryons
ions
others
Classification of particles
elementary particles which should be tracked in Geant4 volumes
All particles that can fly a finite length and interact with
materials in detectors are included in this category. In addition,
some particles with a very short lifetime are included
for user's convenience.
stable particles
Stable means that the particle can not decay, or has a very small
possibility to decay in detectors, e.g., gamma, electron, proton,
and neutron.
long life (>10-14sec) particles
Particles which may travel a finite length, e.g., muon, charged
pions.
short life particles that decay immediately in Geant4
For example, pi0, eta
K0 system
K0 "decays" immediately into
K0S
or K0L, and then
K0S/
K0L decays
according to its life time and decay modes.
optical photon
Gamma and optical photon are distinguished in the simulation
view, though both are the same particle (photons with different
energies). For example, optical photon is used for Cerenkov light
and scintillation light.
geantino/charged geantino
Geantino and charged geantino are virtual particles for
simulation which do not interact with materials and undertake
transportation processes only.
nuclei
Any kinds of nucleus can be used in Geant4, such as alpha(He-4),
uranium-238 and excited states of carbon-14. In addition,
Geant4 provides hyper-nuclei. Nuclei in Geant4 are
divided into two groups from the viewpoint of implementation.
light nuclei
Light nuclei frequently used in simulation, e.g., alpha, deuteron,
He3, triton.
heavy nuclei (including hyper-nuclei)
Nuclei other than those defined in the previous category.
Note that G4ParticleDefinition represents nucleus state and
G4DynamicParticle represents atomic state with some nucleus. Both
alpha particle with charge of +2e and helium atom with no charge
aggregates the same "particle definition" of G4Alpha, but different
G4DynamicParticle objects should be assigned to them. (Details can
be found below)
short-lived particles
Particles with very short life time decay immediately and are never
tracked in the detector geometry. These particles are usually used
only inside physics processes to implement some models of
interactions. G4VShortLivedParticle is provided as
the base class for these particles. All classes related to particles in
this category can be found in shortlived sub-directory
under the particles directory.
quarks/di-quarks
For example, all 6 quarks.
gluon
baryon excited states with very short life
For example, spin 3/2 baryons and anti-baryons
meson excited states with very short life
For example, spin 1 vector bosons
Implementation of particles
Single object created in the initialization :
Categories a, b-1
These particles are frequently used for tracking in
Geant4. An individual class is defined for each particle in these
categories. The object in each class is unique.
The user can get pointers to these objects by using static methods
in their own classes. The unique object for each class is created
when its static method is called in the ``initialization phase''.
On-the-fly creation: Category b-2
Ions will travel in a detector geometry and should
be tracked, however, the number of ions which may be used for
hadronic processes is so huge that ions are dynamically
created by requests from processes (and users).
Each ion corresponds to one object of the G4Ions
class.
G4IonTable class is a dictionary for ions.
G4ParticleTable::GetIon() method invokes
G4IonTable::GetIon() method to create ions
on the fly.
Users can register a G4IsotopeTable to the
G4IonTable. G4IsotopeTable
describes properties of ions (exited energy, decay modes, life time
and magnetic moments), which are used to create ions.
Processes attached to heavy ions are same as those for
G4GenericIon class. In other words, you need to
create G4GenericIon and attach processes to it
if you want to use heavy ions.
G4ParticleGun can shoot any heavy ions
with /gun/ions command after ``ion'' is selected by /gun/particle command.
Dynamic creation by processes: Category c
Particle types in this category are are not created
by default, but will only be created by request from processes or
directly by users. Each shortlived particle corresponds to one
object of a class derived from G4VshortLivedParticle,
and it will be created dynamically during the ``initialization
phase''.
G4ParticleDefinition
The G4ParticleDefinition class has ``read-only'' properties
to characterize individual particles, such as name, mass, charge,
spin, and so on. These properties are set during initialization of
each particle. Methods to get these properties are listed in
.
Methods to get particle properties.
G4String GetParticleName()
particle name
G4double GetPDGMass()
mass
G4double GetPDGWidth()
decay width
G4double GetPDGCharge()
electric charge
G4double GetPDGSpin()
spin
G4double GetPDGMagneticMoment()
magnetic moment (0: not defined or no magnetic moment)
G4int GetPDGiParity()
parity (0:not defined)
G4int GetPDGiConjugation()
charge conjugation (0:not defined)
G4double GetPDGIsospin()
iso-spin
G4double GetPDGIsospin3()
3rd-component of iso-spin
G4int GetPDGiGParity()
G-parity (0:not defined)
G4String GetParticleType()
particle type
G4String GetParticleSubType()
particle sub-type
G4int GetLeptonNumber()
lepton number
G4int GetBaryonNumber()
baryon number
G4int GetPDGEncoding()
particle encoding number by PDG
G4int GetAntiPDGEncoding()
encoding for anti-particle of this particle
shows the methods of
G4ParticleDefinition for
getting information about decay modes and the life time of the
particle.
Methods to get particle decay modes and life time.
G4bool GetPDGStable()
stable flag
G4double GetPDGLifeTime()
life time
G4DecayTable* GetDecayTable()
decay table
Users can modify these properties, though the other properties
listed above can not be change without rebuilding the
libraries.
Each particle has its own G4ProcessManger
object that manages a list of processes applicable to the
particle.(see )
Dynamic particle
The G4DynamicParticle class has kinematics information for
the particle and is used for describing the dynamics of physics
processes. The properties in G4DynamicParticle are listed in
.
Methods to set/get cut off values.
G4double theDynamicalMass
dynamical mass
G4ThreeVector theMomentumDirection
normalized momentum vector
G4ParticleDefinition* theParticleDefinition
definition of particle
G4double theDynamicalSpin
dynamical spin
(i.e. total angular momentum as a ion/atom )
G4ThreeVector thePolarization
polarization vector
G4double theMagneticMoment
dynamical magnetic moment
(i.e. total magnetic moment as a ion/atom )
G4double theKineticEnergy
kinetic energy
G4double theProperTime
proper time
G4double theDynamicalCharge
dynamical electric charge
(i.e. total electric charge as a ion/atom )
G4ElectronOccupancy* theElectronOccupancy
electron orbits for ions
Here, the dynamical mass is defined as the mass for the dynamic
particle. For most cases, it is same as the mass defined in
G4ParticleDefinition class ( i.e. mass value given by
GetPDGMass() method). However, there are two
exceptions.
resonance particle
ions
Resonance particles have large mass width and the total energy of
decay products at the center of mass system can be different event
by event.
As for ions, G4ParticleDefintion defines a nucleus and
G4DynamicParticle defines an atom.
G4ElectronOccupancy describes state of orbital electrons.
So, the dynamic mass can be different from the PDG mass by the mass
of electrons (and their binding energy). In addition, the dynamical
charge, spin and magnetic moment are those of the atom/ion
(i.e. including nucleus and orbit electrons).
Decay products of heavy flavor particles are given in many event
generators. In such cases, G4VPrimaryGenerator sets this
information in *thePreAssignedDecayProducts. In addition,
decay time of the particle can be set arbitrarily time by using
PreAssignedDecayProperTime.