Introduction to GEANT4

From UCL HEP PBT Wiki

(Difference between revisions)
Jump to: navigation, search
m
m
Line 1: Line 1:
 +
GEANT4 is a software toolkit based on C++. In your code you have to define:
 +
* Your experimental setup - geometry, materials and primary particles.
 +
* Which physics process you are interested in.
 +
* You may take actions during the simulation - inspect and store results.
 +
The interaction with GEANT4 is done via base classes. There are eight base classes: 
 +
* Mandatory classes 
 +
; G4VUserDetectorConstruction: Describe the experimental setup, geometry and materials
 +
; G4VUserPhysicsList: Define particles, physics processes and range cuts
 +
; G4UserPrimaryGeneratorAction: Describe particle source, source dimensions, initial position, energy spectrum, angular distributions
 +
* Optional classes
-
There are eight base classes. 
+
; G4UserRunAction: Define and store histograms  
-
 
+
; G4UserEventAction: Event selection and analysis of simulation data
-
* Three classes are mandatory 
+
; G4UserStackingAction: Customize priority of tracks
-
 
+
; G4UserTrackingAction: Decide whether a trajectory should be stored or not
-
; G4VUserDetectorConstruction
+
; G4UserSteppingAction: Kill, suspend, postpone a track
-
: Describe the experimental setup, geometry and materials
+
-
; G4VUserPhysicsList
+
-
: Define particles, physics processes and range cuts
+
-
; G4UserPrimaryGeneratorAction
+
-
: Describe particle source, source dimensions, initial position, energy spectrum, angular distributions
+
-
 
+
-
* The rest are optional
+
-
 
+
-
; G4UserRunAction
+
-
: Define and store histograms  
+
-
; G4UserEventAction
+
-
: Event selection and analysis of simulation data
+
-
; G4UserStackingAction
+
-
: Customize priority of tracks
+
-
; G4UserTrackingAction
+
-
: Decide whether a trajectory should be stored or not
+
-
; G4UserSteppingAction
+
-
: Kill, suspend, postpone a track
+
You can create your own classes which are derived from the base classes. All of them should be registered with the G4RunManager. In function main() which is the skeleton of your simulation code you instantiate G4RunManager and notify it of your mandatory and optional classes.
You can create your own classes which are derived from the base classes. All of them should be registered with the G4RunManager. In function main() which is the skeleton of your simulation code you instantiate G4RunManager and notify it of your mandatory and optional classes.

Revision as of 11:58, 3 July 2014

GEANT4 is a software toolkit based on C++. In your code you have to define:

  • Your experimental setup - geometry, materials and primary particles.
  • Which physics process you are interested in.
  • You may take actions during the simulation - inspect and store results.

The interaction with GEANT4 is done via base classes. There are eight base classes:

  • Mandatory classes
G4VUserDetectorConstruction
Describe the experimental setup, geometry and materials
G4VUserPhysicsList
Define particles, physics processes and range cuts
G4UserPrimaryGeneratorAction
Describe particle source, source dimensions, initial position, energy spectrum, angular distributions
  • Optional classes
G4UserRunAction
Define and store histograms
G4UserEventAction
Event selection and analysis of simulation data
G4UserStackingAction
Customize priority of tracks
G4UserTrackingAction
Decide whether a trajectory should be stored or not
G4UserSteppingAction
Kill, suspend, postpone a track

You can create your own classes which are derived from the base classes. All of them should be registered with the G4RunManager. In function main() which is the skeleton of your simulation code you instantiate G4RunManager and notify it of your mandatory and optional classes.

Personal tools