source: trunk/source/run/README.TXT@ 1103

Last change on this file since 1103 was 828, checked in by garnier, 17 years ago

import all except CVS

File size: 5.0 KB
Line 
1// $Id: README.TXT,v 1.1 1999/01/07 16:14:15 gunter Exp $
2
3 GEANT4
4
5 This directory contains several examples of GEANT4 main programs,
6 from very simple cases (a purely batch program),
7 to interactive programs based on the G4 command line interface,
8 to more complex cases programs touching most of the G4 functionality.
9
10 Those main programs provide just examples of initialization and usage
11 of the GEANT4 toolkit classes, but the user is also free to define his
12 own way and functions to initialize G4 and write the main program.
13
14 A typical GEANT4 main program looks like the following:
15
16int main() {
17
18 // Create Run Manager
19 G4RunManager * runManager = new G4RunManager;
20
21 // Register User Classes to the RunManager
22 // Mandatory classes -----------------------
23 // Detector geometry
24 runManager-> set_userInitialization(new MyDetectorConstruction);
25 // Physics List
26 runManager-> set_userInitialization(new MyPhysicsList);
27 // Primary Generator
28 runManager->set_userAction(new MyPrimaryGeneratorAction);
29
30 // Optiolnal classes -----------------------
31 // User Actions
32 runManager->set_userAction(new MyRunAction);
33 runManager->set_userAction(new MyEventAction);
34 runManager->set_userAction(new MyStackingAction);
35 runManager->set_userAction(new MyTrackingAction);
36 runManager->set_userAction(new MySteppingAction);
37
38
39 // Define (G)UI terminal for interactive mode
40 G4UIsession * session = new G4UIterminal;
41
42 // User interactions
43 session->sessionStart();
44
45 // Termination
46 delete session;
47 delete runManager;
48 return 0;
49}
50
51 First of all, user must create the RunManager. The RunManager controles
52 run sequence by receiving messages from the user via UIsession.
53 The following are a part of commands for run controle;
54 /run/initialize * Initialize G4 kernel.
55 /run/beamOn * Start a Run.
56 /run/verbose * Set the verbose level of G4RunManager.
57 /run/abort * Abort current run processing.
58 For example, event loop will start by using "/run/beamOn" commands.
59
60 In order to execute simulation, user must provide geometrical
61 configuration of his own detector. In addition information of
62 primary events must be given with a list of particle types and
63 processes for them.
64
65 So, user must provide his own classes derived from the following
66 three abstract classes by implementing their pure virtual functions
67 and register those user classes to the RunManager.
68
69 G4VUserDetectorConstruction - Detector Geometry, Materials
70 pure virtual functions
71 G4VPhysicalVolume* construct()
72 - construct detectors;
73 normally implemented to serve as the entry point
74 for the tree of methods describing solids, volumes,
75 materials and sensitive detectors.
76
77 G4VUserPhysicsList - Particle types and Processes
78 pure virtual functions
79 void constructParticle()
80 - construct particles;
81 normally implemented to select desired particle types.
82 void constructPhysics()
83 - construct procesess;
84 normally implemented to select desired physics processes
85 for each particle types and register them to the ProcessManager.
86 void setCuts(G4double aValue)
87 - sets a cut value;
88 normally implemented to set cut value in range for all
89 particle types.
90
91 G4VUserPrimaryGeneratorAction - Event Generator selection
92 pure virtual functions
93 void generatePrimaries(G4Event* anEvent)
94 - generate a event with primary particles
95 normally implemented to select the desired event generation
96 mechanism, such as the ParticleGun or the PYTHIA interface.
97
98 In addition to the above mandatory classes, there are 5 user classes
99 to customize the default functionality of GEANT4 simulation.
100
101 G4UserRunAction - Actions for each Run
102 G4UserEventAction - Actions for each Event
103 G4UserStackingAction - Tracks Stacking selection
104 G4UserTrackingAction - Actions for each Track
105 G4UserSteppingAction - Actions for each Step
106
107 The virtual functions belonging to the classes above are:
108
109 G4UserRunAction - void beginOfRunAction(G4Run*)
110 - void endOfRunAction(G4Run*)
111
112 G4UserEventAction - void beginOfEventAction(G4Event*)
113 - void endOfEventAction(G4Event*)
114
115 G4UserStackingAction - G4ClassificationOfNewTrack
116 classifyNewTrack(G4Track *const)
117 - void newStage()
118 - void prepareNewEvent()
119
120 G4UserTrackingAction - void preUserTrackingAction()
121 - void postUserTrackingAction()
122
123 G4UserSteppingAction - void userSteppingAction()
124
125 Finally, more details can be found in the header files and in the source
126 code relative to the classes outlined above.
127
128
129
130
131
132
Note: See TracBrowser for help on using the repository browser.