1 | $Id: README,v 1.6 2006/03/31 14:02:13 maire Exp $ |
---|
2 | ------------------------------------------------------------------- |
---|
3 | |
---|
4 | ========================================================= |
---|
5 | Geant4 - an Object-Oriented Toolkit for Simulation in HEP |
---|
6 | ========================================================= |
---|
7 | |
---|
8 | ExampleN02 |
---|
9 | ---------- |
---|
10 | |
---|
11 | |
---|
12 | This example simulates a simplified fixe target experiment. |
---|
13 | |
---|
14 | 1- GEOMETRY DEFINITION |
---|
15 | |
---|
16 | The setup consists of a target followed by six chambers of increasing |
---|
17 | transverse size. These chambers are located in a region called Tracker |
---|
18 | region. Their shape are boxes, constructed as parametrised volumes |
---|
19 | (ChamberParametrisation class). |
---|
20 | |
---|
21 | The default geometry is constructed in DetectorConstruction class. |
---|
22 | One can change the material of the target and of the chambers |
---|
23 | interactively via the commands defined in the DetectorMessenger class. |
---|
24 | |
---|
25 | In addition a transverse uniform magnetic field can be applied (see |
---|
26 | N02MagneticField and DetectorMessenger classes). |
---|
27 | |
---|
28 | |
---|
29 | 2- PHYSICS LIST |
---|
30 | |
---|
31 | The particle's type and the physic processes which will be available |
---|
32 | in this example are set in PhysicsList class. |
---|
33 | |
---|
34 | In this example, all the so called 'electromagnetic processes' are |
---|
35 | introduced for gamma, charged leptons, and charged hadrons (see the |
---|
36 | method PhysicsList::ConstructEM()). |
---|
37 | |
---|
38 | An important data member of this class is the defaultCutValue which |
---|
39 | defines the production threshold of secondary particles |
---|
40 | (only Ionisation and Bremsstrahlung processes are concerned by this |
---|
41 | CutValue). |
---|
42 | Notice that the CutValue must be given in unit of length, corresponding |
---|
43 | to the stopping range of the particle. It is automatically converted |
---|
44 | in energy for each material, and a table is printed in the method |
---|
45 | PhysicsList::SetCuts() |
---|
46 | |
---|
47 | In addition the build-in interactive command: |
---|
48 | /process/(in)activate processName |
---|
49 | allows to activate/inactivate the processes one by one. |
---|
50 | |
---|
51 | |
---|
52 | 3- RUNS and EVENTS |
---|
53 | |
---|
54 | The primary kinematic consists of a single particle which hits the |
---|
55 | target perpendicular to the input face. The type of the particle |
---|
56 | and its energy are set in the PrimaryGeneratorAction class, and can |
---|
57 | be changed via the G4 build-in commands of ParticleGun class. |
---|
58 | |
---|
59 | A RUN is a set of events. |
---|
60 | |
---|
61 | The user has control: |
---|
62 | -at Begin and End of each run (class RunAction) |
---|
63 | -at Begin and End of each event (class EventAction) |
---|
64 | -at Begin and End of each track (class TrackingAction, not used here) |
---|
65 | -at End of each step (class SteppingAction) |
---|
66 | |
---|
67 | The class SteppingVerbose prints some informations step per step, |
---|
68 | under the control of the command: /tracking/verbose 1 |
---|
69 | It inherits from G4SteppingVerbose, and has been setup here in order |
---|
70 | to illustrate how to extract informations from the G4 kernel during |
---|
71 | the tracking of a particle. |
---|
72 | |
---|
73 | |
---|
74 | 4- USER' LIMITS |
---|
75 | |
---|
76 | We illustrate how to introduce tracking constraints like maximum step |
---|
77 | length, minimum kinetic energy ..etc.., via G4UserLimits class. |
---|
78 | See DetectorConstruction and PhysicsList. |
---|
79 | |
---|
80 | 5- DETECTOR RESPONSE |
---|
81 | |
---|
82 | A HIT is a record, track per track (even step per step), of all the |
---|
83 | informations needed to simulate and analyse the detector response. |
---|
84 | |
---|
85 | In this example the Tracker chambers are considered as the detector. |
---|
86 | Therefore the chambers are declared 'sensitive detectors' (SD) in |
---|
87 | the DetectorConstruction class. |
---|
88 | |
---|
89 | Then, a Hit is defined as a set of 4 informations per step, inside |
---|
90 | the chambers, namely: |
---|
91 | - the track identifier (an integer), |
---|
92 | - the chamber number, |
---|
93 | - the total energy deposit in this step, |
---|
94 | - the position of the deposit. |
---|
95 | |
---|
96 | A given hit is an instance of the class TrackerHit which is created |
---|
97 | during the tracking of a particle, step by step, in the method |
---|
98 | TrackerSD::ProcessHits(). This hit is inserted in a HitsCollection. |
---|
99 | |
---|
100 | The HitsCollection is printed at the end of event (via the method |
---|
101 | TrackerSD::EndOfEvent()), under the control of the command: /hits/verbose 1 |
---|
102 | |
---|
103 | |
---|
104 | 6- VISUALIZATION |
---|
105 | |
---|
106 | The Visualization Manager is set in the main(). |
---|
107 | The initialisation of the drawing is done via a set of /vis/ commands |
---|
108 | in the macro vis.mac. This macro is automatically read from |
---|
109 | the main when running in interactive mode. |
---|
110 | |
---|
111 | The tracks are automatically drawn at the end of event and erased at |
---|
112 | the beginning of the next run. |
---|
113 | |
---|
114 | The visualization (with OpenGL driver) assumes two things: |
---|
115 | 1- the visualisation & interfaces categories have been compiled |
---|
116 | with the environment variable G4VIS_BUILD_OPENGLX_DRIVER. |
---|
117 | 2- exampleN02.cc has been compiled with G4VIS_USE_OPENGLX. |
---|
118 | |
---|
119 | (The same with DAWNFILE instead of OPENGLX) |
---|
120 | |
---|
121 | |
---|
122 | 7- USER INTERFACES |
---|
123 | |
---|
124 | The default command interface, called G4UIterminal, is done via |
---|
125 | standart cin/G4cout. |
---|
126 | On Linux and Sun-cc on can use a smarter command interface G4UItcsh. |
---|
127 | It is enough to set the environment variable G4UI_USE_TCSH before |
---|
128 | compiling exampleN02.cc |
---|
129 | |
---|
130 | |
---|
131 | 8- HOW TO START ? |
---|
132 | |
---|
133 | - compile and link to generate an executable |
---|
134 | % cd N02 |
---|
135 | % gmake |
---|
136 | |
---|
137 | - execute N02 in 'batch' mode from macro files (without visualization) |
---|
138 | % exampleN02 run1.mac |
---|
139 | |
---|
140 | - execute N02 in 'interactive mode' with visualization |
---|
141 | % exampleN02 |
---|
142 | .... |
---|
143 | Idle> type your commands. For instance: |
---|
144 | Idle> /run/beamOn 10 |
---|
145 | .... |
---|
146 | Idle> /control/execute run2.mac |
---|
147 | .... |
---|
148 | Idle> exit |
---|
149 | |
---|
150 | |
---|