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
(see Tracking) includes all information
necessary for tracking in a detector simulation, such as time, position,
and step, as well as “dynamic particle” information.
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
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.
light anti-nuclei
Light anti-nuclei, for example, anti-alpha.
light hyper-nuclei
Light hyper-nuclei and anti-hyper-nuclei, for example hyper-alpha and anti-hyper-alpha
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 inshortlived
sub-directory under theparticles
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. G4IonTable::GetIon()
method to create ions on the fly. (G4IonTable::FIndIon()
method
returns pointer to the specified ion. If the ion does not exists, it
returns zero without creating any ion.
G4NucleiPropertiesTableAME03
contains a table of measured mass
values of about 3100 stable nuclei (ground states).
G4NucleiPropertiesTheoreticalTable
theoretical mass values of about
8000 nuclei (ground states). G4IsotopeTable
describes properties of
ions (exited energy, decay modes, life time and magnetic moments), which
are used to create ions. G4NuclideTable
is provided as a list of
nuclei in Geant4. It contains about 2900 ground states and 4000 excited
states. Users can register his/her G4IsotopeTable
to the
G4IonTable
.
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
Table 18.
|
particle name |
|
mass |
|
decay width |
|
electric charge |
|
spin |
|
magnetic moment (0: not defined or no magnetic moment) |
|
parity (0:not defined) |
|
charge conjugation (0:not defined) |
|
iso-spin |
|
3rd-component of iso-spin |
|
G-parity (0:not defined) |
|
particle type |
|
particle sub-type |
|
lepton number |
|
baryon number |
|
particle encoding number by PDG |
|
encoding for anti-particle of this particle |
Table 19 shows the methods of
G4ParticleDefinition
for getting information about decay modes and
the life time of the particle.
|
stable flag |
|
life time |
|
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
Managing Processes)
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 the
Table 20.
|
dynamical mass |
|
normalized momentum vector |
|
definition of particle |
|
dynamical spin (i.e. total angular momentum as a ion/atom) |
|
polarization vector |
|
dynamical magnetic moment (i.e. total magnetic moment as a ion/atom ) |
|
kinetic energy |
|
proper time |
|
dynamical electric charge (i.e. total electric charge as a ion/atom ) |
|
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
.