Details: Physics#

Physics lists#

The names of the Geant4 physics lists are composed of a first part concerning hadronic physics:

FTFP_BERT
FTFP_BERT_TRV
FTFP_BERT_ATL
FTFP_BERT_HP
FTFQGSP_BERT
FTFP_INCLXX
FTFP_INCLXX_HP
FTF_BIC
LBE
QBBC
QGSP_BERT
QGSP_BERT_HP
QGSP_BIC
QGSP_BIC_HP
QGSP_BIC_AllHP
QGSP_FTFP_BERT
QGSP_INCLXX
QGSP_INCLXX_HP
QGS_BIC
Shielding
ShieldingLEND
ShieldingM
NuBeam

and a second part concerning electromagnetic interactions:

_EMV
_EMX
_EMY
_EMZ
_LIV
_PEN
__GS
__SS
_EM0
_WVI
__LE

The second part in the name instructs let’s Geant4 know which set of processes it should use for electromagnetic processes.

In GATE, you can also select the electromagnetic part of a physics list only, e.g.

sim.physics_manager.physics_list_name = "G4EmStandardPhysics_option4"

The simulation will then not consider any hadronic (nuclear) interactions. For the seasoned Geant4 users: Technically speaking, G4EmStandardPhysics_option4 is not a physics list in Geant4, but a PhysicsConstructor. GATE is implemented in a way that you can use it as if it were a phsyics list, which makes usage much easier.

Have a look at the Geant4 guide for more details. Note that the Geant4 physics lists can change according to the Geant4 version (those above are for Geant4 10.7).

Radioactive Decay#

Under the hood, the setting sim.physics_manager.enable_decay = True will add two processes to the Geant4 list of processes: G4DecayPhysics and G4RadioactiveDecayPhysics. These processes are required particularly if a decaying generic ion (such as F18) is used as a source. Additional information can be found here:

Production cuts#

Geant4 User Guide: Tracking and Physics

Cuts per Region

User limits#

User Limits

Acollinearity of Annihilation Photons (APA)#

Without modifications, most annihilation photon pairs from positron-electron annihilation will be collinear. For water between 20–30°C, the deviation of APA follows a 2D Gaussian distribution with a FWHM of 0.5° (Colombino et al. 1965).

Ion or e+ source#

To enable this behavior in a simulation, the user needs to set the MeanEnergyPerIonPair of all the materials where APA is desired to 0.5 eV (Geant4 Release note). This is done differently depending on whether the material is defined by Geant4, in GateMaterials.db or created dynamically.

Geant4 default material#

# First, get a reference to the material where APA is to be simulated.
# This is done by providing the name of the materials, e.g., "G4_WATER", to the volume manager.
mat = sim.volume_manager.find_or_build_material(material_of_interest)

# Second, get a reference to the material ionisation property.
# You can get the value of MeanEnergyPerIonPair of the materials with the command 'ionisation.GetMeanExcitationEnergy() / eV'
# By default, MeanEnergyPerIonPair of a material is 0.0 eV
ionisation = mat.GetIonisation()

# Set the value of MeanEnergyPerIonPair to the desired value. Here, we use the recommended 5.0 eV.
ionisation.SetMeanEnergyPerIonPair(5.0 * eV)

Material defined in GateMaterials.db#

# Provide the location of GateMaterials.db to the volume manager.
sim.volume_manager.add_material_database(path_to_gate_materials_db)

# Set the MeanEnergyPerIonPair of the material in the physics manager
# material_of_interest is the name of the material of interest, which should be defined in GateMaterials.db located at path_to_gate_materials_db
sim.physics_manager.mean_energy_per_ion_pair[material_of_interest] = 5.0 * eV

Material created dynamically#

# Provide a description of the material to the volume manager
# material_of_interest is the name of the material of interest
sim.volume_manager.material_database.add_material_nb_atoms(material_of_interest, ex_elems, ex_nbAtoms, ex_density)

# Set the MeanEnergyPerIonPair of the material in the physics manager
# material_of_interest is the name of the material of interest, which should be defined in GateMaterials.db located at path_to_gate_materials_db
sim.physics_manager.mean_energy_per_ion_pair[material_of_interest] = 5.0 * eV

Further considerations

The property needed to simulate APA, as expected in PET imaging, is defined at the level of materials, not at the volume level. In other words, if one needs a water volume where annihilation photons will have acollinearity and another water volume without it in the simulation, two materials (e.g., water_aco and water_colin) need to be defined, with only the former using the code previously shown.

More recently, [Shibuya et al. 2007] have shown that the deviation of APA in a human subject follows a double Gaussian distribution with a combined FWHM of 0.55°. While the double Gaussian distribution currently cannot be reproduced in GATE, setting the MeanEnergyPerIonPair of the material to 6.0 eV results in a 2D Gaussian with a FWHM of 0.55°.

WARNING: Currently, it is unknown if setting the MeanEnergyPerIonPair parameter to a non-zero value has an impact on other facets of Geant4 physics and thus on the GATE simulation.

Back-to-back source#

For a source defined as a back_to_back particle, activation of APA is straightforward: .. code-block:: python

# Assuming that ‘your_source’ is a source defined as a ‘back_to_back’ particle your_source.direction.accolinearity_flag = True

By default, the deviation of APA is defined as a 2D Gaussian distribution with a FWHM of 0.5°. If the user desire to modify the FWHM of the APA deviation, it can be done with the following: .. code-block:: python

# Assuming that ‘your_source’ is a source defined as a ‘back_to_back’ particle your_source.direction.accolinearity_flag = True # Assuming that a FWHM of 0.55 deg is desired your_source.direction.accolinearity_fwhm = 0.55 * deg

WARNING: The implementation of APA for back_to_back sources is based on assuming that its deviation follows a 2D Gaussian distribution. This is a simplification of the true physical process.