source: trunk/examples/extended/runAndEvent/RE02/README@ 807

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

update

File size: 10.6 KB
Line 
1$Id: README,v 1.2 2006/11/18 01:37:22 asaim Exp $
2-------------------------------------------------------------------
3
4 =========================================================
5 Geant4 - an Object-Oriented Toolkit for Simulation in HEP
6 =========================================================
7
8 ExampleRE02
9 -----------
10
11
12 This example simulates a simplified water phantom measurement
13 in medical application with demonstration of primitive scorers.
14 This example also demonstrates nested parameterised volume which
15 realizes segmented boxes using a combination of replicated volumes
16 and a parameterised volume.
17
18 (Tips)
19 This example creates 100 x 100 x 200 boxes using Nested Parameterised
20 Volume for realistic situation of medical application.
21 This is very memory consumption if normal Parameterised Volume is used,
22 and needs roughly more than 1 GB memory for execution. However,
23 NestedParameterised volume effectively works to reduce the memory consumption,
24 and it only needs less than 100 MB memory for execution.
25
26 1- GEOMETRY DEFINITION
27
28 The setup contains a water phantom as target by default. The world volume
29 is 200 cm x 200 cm x 200 cm box filled with air. The water phantom is box shape
30 and the size of 200 mm x 200 mm x 400 mm. The volume of water phantom is divided
31 into 100 x 100 x 1 towers using replicated volume,(RE02DetectorConstruction),
32 and then those towers are segmented into 200 boxes with respect to z axis
33 using nested parameterized volume,(RE02NestedPhantomParameterisation).
34 e.g. The volume of water phantom is divided into 100 x 100 x 200 boxes,
35 and a voxel size is 2.0 mm x 2.0 mm x 2.0 mm.
36
37 For demonstration purpose of the nested parameterised volume,
38 (RE02NestedPhantomParameterisation), materials are assigned as water (lead)
39 in even (odd) order segments, alternately.
40 The simulation for homogeneous water phantom is also possible using an option.
41
42 ---- Tips(1)
43 *If you want to reduce number of segments of water phantom,
44 please change following numbers which represent number of segments
45 in x, y, z axis, respectively.The following code can be found in
46 exampleRE02.cc.
47
48 RE02DetectorConstruction* detector = new RE02DetectorConstruction;
49 detector->SetNumberOfSegmentsInPhantom(100,100,200);
50 Nx, Ny, Nz
51 ---- Tips(2)
52 *If you want to set all materials to water,
53 please use the following method. The following code can be found in
54 exampleRE02.cc.
55
56 detector->SetLeadSegment(FALSE); // Homogeneous water phantom
57 ----
58
59 The geometry and sensitive detector are constructed in
60 RE02DetectorConstruction class.
61 (See "4- SCORER " for detail descriptions about sensitive detector.)
62
63 2- PHYSICS LIST
64
65 The particle's type and the physic processes which is available
66 in this example are set in PhysicsList class.
67
68 The PhysicsList is originally copied from extended example,
69 (example/extended/analysis/A01).
70 Full set of particles (baryons, bosons and mesons) are created, and
71 Standard EM Physics and Low/High Energy parameterized models
72 for hadrons are applied. The detail description will be found in
73 example/extended/analysis/A01/README.
74 Specially, the PhysicsList was modified in this example,
75 to use Binary cascade model for hadron physics at low energy (<4GeV)
76 and inelastic process for generic ions with BinaryLightIonReaction.
77 The data files for physics processes have to be assigned using
78 environment variables.
79
80 RE02PhysicsList is optimized for robustness and is not optimized for
81 any particular cases. If you will do precise calculation for your
82 use-case, please consider utilizing hadronic_lists, and defines the
83 production cut properly.
84 The default CutValue defines the production threshold of secondary
85 particles (mainly Ionisation and Bremsstrahlung processes are
86 concerned by this CutValue).
87
88 3- RUNS and EVENTS
89
90 - Primary particles.
91 The primary kinematics consists of a single particle which hits the
92 target perpendicular to the input face. The default type of the particle
93 and its energy are set in the RE02PrimaryGeneratorAction class.
94 However it can be changed via the G4 build-in commands of ParticleGun
95 class.
96 The RE02PrimaryGeneratorAction class introduces a beam spot size
97 that makes initial particle position of x,y randomized using a Gaussian
98 random function, where the center position is fixed to (0,0).
99 The standard deviation of the beam spot size is given in
100 RE02PrimaryGeneratorAction as 10 mm.
101
102 An EVENT represents a simulation of one primary particle.
103 A RUN is a set of events.
104
105 The user has control:
106 -at Begin and End of each run (class RunAction)
107 -at Begin and End of each event (class EventAction)
108 -at Begin and End of each track (class TrackingAction, not used here)
109 -at End of each step (class SteppingAction, not used here)
110
111 4- SCORER
112
113 - Concrete Scorer
114 This example introduces concrete primitive scorer (PS) and filter
115 classes for easy scoring. Those primitive scorers are registered to
116 MultiFunctionalDetector which is a concrete class of sensitive
117 detector(SD). Then the MultiFunctionalDetector is attached to
118 the logical volume of sensitive geometry.
119 A MultiFunctionalDetector, PrimitiveScorers, and SDFilters are
120 created and assigned to the logical volume of water phantom in
121 DetectorConstruction.
122
123 A primitive scorer can score one kind of physical quantity, and
124 creates one hits collection per event. The quantity is collected in
125 G4THitsMap with the copy number of geometry. Here collection name is
126 given as <MultiFunctionalDetector Name>/<PrimitiveScorer Name>.
127 A primitive scorer can have one filter (SDFilter) for selecting hits
128 to be used for the quantity.
129
130 Since the geometry is constructed using nested parameterisation,
131 the copy number of geometry is defined as follows,
132
133 copy number of geometry = iy*Nx*Ny+ix*Nz+iz,
134
135 where Nx,Ny,Nz is total number of segmentation in x, y, and z axis,respectively,
136 and ix,iy,iz is a copy number of the mother volume, the grand mother volume,
137 and this volume, respectively.
138 This conversion is described in GetIndex() method in PrimitiveScorer.
139
140 The physical quantities scored in this example are:
141 ----------------------------------------------------
142 - Total energy deposit
143 unit: Energy, collName: totalEDep
144 - Energy deposit by protons
145 unit: Energy, collName: protonEDep
146 - Number of steps of protons
147 unit: - , collName: protonNStep
148 - Cell Flux of charged tracks which pass through the geometry
149 unit: Length/Volume, collName: chargedPassCellFlux
150 - Cell Flux of all charged tracks
151 unit: Length/Volume, collName: chargedCellFlux
152 - Flux of charged particle at -Z surface of the BOX geometry,
153 where incident angle at the surface is taken into account.
154 unit: Surface^(-1), collName: chargedSurfFlux
155 - Surface current of gamma at -Z surface of the BOX geometry.
156 The energy of gammas are from 1. keV to 10. keV.
157 The incident angle is not taken into account.
158 unit: Surface^(-1), collName: gammaSurfCurr000
159 - Same as previous one, but different energy bin.
160 The energy of gammas are from 10. keV to 100. keV.
161 unit: Surface^(-1), collName: gammaSurfCurr001
162 - Same as previous one, but different energy bin.
163 The energy of gammas are from 100. keV to 1. MeV.
164 unit: Surface^(-1), collName: gammaSurfCurr002
165 - Same as previous one, except for energy bin.
166 The energy of gammas are from 1. MeV to 10. MeV.
167 unit: Surface^(-1), collName: gammaSurfCurr003
168 -------------------------------------------------
169
170 - Accumulating quantities during a RUN
171 A PrimitiveScorer creates one hits collection per event.
172 The physical quantity in the hits collection need to be accumulated
173 into another G4THitsMap object during a RUN, in order to obtain
174 integrated flux or dose in a RUN. The accumulation of quantities
175 are done at RE02Run class.
176
177 RE02Run class can automatically generate G4THitsMap objects for a RUN,
178 and accumulate physical quantities of an event into it. The accumulation
179 is done at RE02Run::RecordEvent(G4Event* aEvent).
180
181 - Generate a Run object, and print results
182 The RE02Run object is generated at RE02RunAction::GenerateRun().
183 The accumulated physical quantities are printed at the end of RUN
184 ( RE02RunAction::EndOfEvent() ). This example prints only selected
185 physical quantities.
186
187
188 5- VISUALIZATION
189
190 The Visualization Manager is set in the main().
191 The initialization of the drawing is done via a set of /vis/ commands
192 in the macro vis.mac. This macro is automatically read from
193 the main when running in interactive mode.
194
195 The tracks are automatically drawn at the end of event and erased at
196 the beginning of the next run.
197
198 The visualization (with OpenGL driver) assumes two things:
199 1- the visualization & interfaces categories have been compiled
200 with the environment variable G4VIS_BUILD_OPENGLX_DRIVER.
201 2- exampleRE02.cc has been compiled with G4VIS_USE_OPENGLX.
202
203 (The same with DAWNFILE instead of OPENGLX)
204
205
206 6- USER INTERFACES
207
208 The default command interface, called G4UIterminal, is done via
209 standard G4cin/G4cout.
210 On Linux and Sun-cc on can use a smarter command interface G4UItcsh.
211 It is enough to set the environment variable G4UI_USE_TCSH before
212 compiling exampleRE02.cc
213
214
215 7- HOW TO START ?
216
217 - compile and link to generate an executable
218 % cd RE02
219 % gmake
220
221 - execute RE02 in 'batch' mode from macro files (without visualization)
222 % exampleRE02 run1.mac
223
224 - execute RE02 in 'interactive mode' with visualization
225 % exampleRE02
226 ....
227 Idle> type your commands. For instance:
228 Idle> /run/beamOn 10
229 ....
230 Idle> /control/execute run2.mac
231 ....
232 Idle> exit
233
234 - macros are for different primary particles.
235 vis.mac : 200 MeV proton with visualization
236 run1.mac : 150 MeV proton
237 run2.mac : 195 MeV/u Carbon ion
238 run3.mac : 30 MeV electron
239 run4.mac : 60 keV gamma
240
241
242
243
Note: See TracBrowser for help on using the repository browser.