Skip to content

Commit 6b1ad05

Browse files
authored
Merge pull request #837 from OpenGATE/nkrah-extend-user-guide-physics
only changes in user guide, no code changes
2 parents 1b6991f + 9881b52 commit 6b1ad05

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

docs/source/user_guide/user_guide_advanced.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,38 @@ Users can modify the `MeanExcitationEnergy` of a material, and therefore the mat
202202
# 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
203203
sim.physics_manager.material_ionisation_potential[material_of_interest] = 75.0 * eV
204204
205+
Background information on physics lists in Geant4 and GATE
206+
==========================================================
207+
208+
This section provides you with background information on the way GATE and Geant4 handle physics lists. To go in depth, you can also read the [guide from Geant4](https://geant4.web.cern.ch/documentation/dev/plg_html/PhysicsListGuide/physicslistguide.html).
209+
210+
Geant4 knows "processes" as the basic concept (C++ class) that handles physics interactions. It groups processes that describe logically related interactions into so-called Physics Constructors. G4EmStandardPhysics is such a constructor. It groups processes that describe electromagnetic interactions. G4OpticalPhysics is another such grouping. There are also constructors related to hadron physics, or nuclear decay, etc.
211+
212+
A physics list is a grouping at yet another logical level. It combines physics constructors, and it provides the user with functionality to combine them while attempting to keep to whole list coherent. There can only be 1 physics list per simulation. Internally, Geant4 distinguishes between physics constructors in terms of physics type and mutually excludes constructors with the same physics type. For example: a physics list can only contain physics constructor for elastic hadron physics (physics type 5). There are, however, physics constructors that can be added to a list without requiring another constructor to be removed, e.g. Optical physics, because the processes grouped in the constructor do not compete with processes from another constructor. Constructors that do not impose a compatibility check have physics type 0. Mutually exclusive constructors have physics type >0, e.g. bHadronElastic = 5, bHadronInelastic = 6, etc.
213+
214+
Now to GATE:
215+
Geant4 pre-implements reference physics lists with different hadron physics constructors, and with and without additional electronic magnetic constructors (see above). It does not, however, pre-implement pure electromagnetic physics lists. To allow users to say:
216+
217+
.. code-block:: python
218+
219+
sim.physics_manager.physics_list_name = "G4EmStandardPhysics"
220+
221+
GATE dynamically creates a physics list class around the G4EmStandardPhysics physics constructor.
222+
Additionally, GATE allows users to add other physics constructors to the physics list, e.g. "G4OpticalPhysics".
223+
So technically, when you write:
224+
225+
.. code-block:: python
226+
227+
sim.physics_manager.physics_list_name = "G4EmStandardPhysics"
228+
sim.physics_manager.special_physics_constructors = ["G4OpticalPhysics"],
229+
230+
You get a physics list created based on G4EmStandardPhysics extended by the processes from the G4OpticalPhysics constructor.
231+
232+
If you write
233+
234+
.. code-block:: python
235+
236+
sim.physics_manager.physics_list_name = "G4OpticalPhysics"
237+
238+
You get a physics list created based on G4OpticalPhysics, that's it. No process from G4EmStandardPhysics, unless also present in the G4OpticalPhysics constructor.
205239

0 commit comments

Comments
 (0)