Introduction to GEANT4
From UCL HEP PBT Wiki
m |
m |
||
Line 5: | Line 5: | ||
* You may take actions during the simulation - inspect and store results. | * You may take actions during the simulation - inspect and store results. | ||
- | The interaction with GEANT4 is done via base classes. | + | The interaction with GEANT4 is done via base classes. |
- | + | ; Mandatory classes: | |
- | + | * <span style="color:#800000"> G4VUserDetectorConstruction </span>: Describe the experimental setup, geometry and materials | |
- | + | * <span style="color:#800000"> G4VUserPhysicsList </span>: Define particles, physics processes and range cuts | |
- | + | * <span style="color:#800000"> G4UserPrimaryGeneratorAction </span>: Describe particle source, source dimensions, initial position, energy spectrum, angular distributions | |
- | + | ; Optional classes: | |
- | + | * <span style="color:#800000"> G4UserRunAction </span>: Define and store histograms | |
- | + | * <span style="color:#800000"> G4UserEventAction </span>: Event selection and analysis of simulation data | |
- | + | * <span style="color:#800000"> G4UserStackingAction </span>: Customize priority of tracks | |
- | + | * <span style="color:#800000"> G4UserTrackingAction </span>: Decide whether a trajectory should be stored or not | |
- | + | * <span style="color:#800000"> G4UserSteppingAction </span>: Kill, suspend, postpone a track | |
- | + | ; Manager class | |
+ | |||
+ | * <span style="color:#800000"> G4RunManager </span>: Manages the simulation process | ||
+ | |||
+ | The function main() is the skeleton of your simulation code. Inside the function you instantiate G4RunManager and notify it of your mandatory and optional classes. | ||
+ | |||
+ | Example main() function: |