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

Last change on this file since 1309 was 807, checked in by garnier, 16 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.