Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/basic/B3/README

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/basic/B3/README (Version 11.3.0) and /examples/basic/B3/README (Version 11.2.2)


  1 ----------------------------------------------      1 -------------------------------------------------------------------
  2                                                     2 
  3      =========================================      3      =========================================================
  4      Geant4 - an Object-Oriented Toolkit for S      4      Geant4 - an Object-Oriented Toolkit for Simulation in HEP
  5      =========================================      5      =========================================================
  6                                                     6 
  7                             Example B3              7                             Example B3
  8                             ----------              8                             ----------
  9                                                     9 
 10  This example simulates schematically a Positr     10  This example simulates schematically a Positron Emitted Tomography system.
 11                                                    11 
 12  1- GEOMETRY DEFINITION                            12  1- GEOMETRY DEFINITION
 13                                                    13 
 14    The support of gamma detection are scintill     14    The support of gamma detection are scintillating crystals. A small number
 15    of such crystals are optically grouped in a     15    of such crystals are optically grouped in a matrix of crystals. In
 16    this example, individual crystals are not d     16    this example, individual crystals are not described; only the matrix of
 17    crystals is and it is still called 'Crystal     17    crystals is and it is still called 'Crystal' hereafter.
 18                                                    18 
 19    Crystals are circularly arranged to form a      19    Crystals are circularly arranged to form a ring. Few rings make up the full
 20    detector (gamma camera). This is done by po     20    detector (gamma camera). This is done by positionning Crystals in
 21    Ring with an appropriate rotation matrix. S     21    Ring with an appropriate rotation matrix. Several copies of Ring are
 22    then placed in the full detector.               22    then placed in the full detector.
 23                                                    23 
 24    The head of a patient is schematised as a h     24    The head of a patient is schematised as a homogeneous cylinder of brain
 25    tissue, placed at the center of full detect     25    tissue, placed at the center of full detector.
 26                                                    26 
 27    The Crystal material, Lu2SiO5, is not inclu     27    The Crystal material, Lu2SiO5, is not included in the G4Nist database.
 28    Therefore, it is explicitly built in Define     28    Therefore, it is explicitly built in DefineMaterials().
 29                                                    29 
 30  2- PHYSICS LIST                                   30  2- PHYSICS LIST
 31                                                    31 
 32    The physics list contains standard electrom     32    The physics list contains standard electromagnetic processes and the
 33    radioactiveDecay module for GenericIon. It      33    radioactiveDecay module for GenericIon. It is defined in the B3::PhysicsList
 34    class as a Geant4 modular physics list with     34    class as a Geant4 modular physics list with registered physics builders
 35    provided in Geant4:                             35    provided in Geant4:
 36    - G4DecayPhysics - defines all particles an     36    - G4DecayPhysics - defines all particles and their decay processes
 37    - G4RadioactiveDecayPhysics - defines radio     37    - G4RadioactiveDecayPhysics - defines radioactiveDecay for GenericIon
 38    - G4EmStandardPhysics - defines all EM stan     38    - G4EmStandardPhysics - defines all EM standard processes
 39                                                    39 
 40    This physics list requires data files for:      40    This physics list requires data files for:
 41    - low energy electromagnetic processes whic     41    - low energy electromagnetic processes which path is defined via
 42      the G4LEDATA envirnoment variable             42      the G4LEDATA envirnoment variable
 43    - nuclides properties which path is defined     43    - nuclides properties which path is defined via
 44      the G4ENSDFSTATEDATA envirnoment variable     44      the G4ENSDFSTATEDATA envirnoment variable
 45    - radioactive decay hadronic processes whic     45    - radioactive decay hadronic processes which path is defined via
 46      the G4RADIOACTIVEDATA envirnoment variabl     46      the G4RADIOACTIVEDATA envirnoment variable.
 47                                                    47 
 48    See more on installation of the datasets in     48    See more on installation of the datasets in Geant4 Installation Guide,
 49    Chapter 3.3: Note On Geant4 Datasets:           49    Chapter 3.3: Note On Geant4 Datasets:
 50    http://geant4.web.cern.ch/geant4/UserDocume     50    http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides
 51                                           /Ins     51                                           /InstallationGuide/html/ch03s03.html
 52  3- ACTION INITALIZATION                           52  3- ACTION INITALIZATION
 53                                                    53 
 54    B3[a,b]::ActionInitialization class instant     54    B3[a,b]::ActionInitialization class instantiates and registers to Geant4 kernel
 55    all user action classes.                        55    all user action classes.
 56                                                    56 
 57    While in sequential mode the action classes     57    While in sequential mode the action classes are instatiated just once,
 58    via invoking the method:                        58    via invoking the method:
 59       B3[a,b]::ActionInitialization::Build()       59       B3[a,b]::ActionInitialization::Build()
 60    in multi-threading mode the same method is      60    in multi-threading mode the same method is invoked for each thread worker
 61    and so all user action classes are defined      61    and so all user action classes are defined thread-local.
 62                                                    62 
 63    A run action class is instantiated both thr     63    A run action class is instantiated both thread-local
 64    and global that's why its instance is creat     64    and global that's why its instance is created also in the method
 65       B3[a,b]::ActionInitialization::BuildForM     65       B3[a,b]::ActionInitialization::BuildForMaster()
 66    which is invoked only in multi-threading mo     66    which is invoked only in multi-threading mode.
 67                                                    67 
 68  4- PRIMARY GENERATOR                              68  4- PRIMARY GENERATOR
 69                                                    69 
 70    The default particle beam is an ion (F18),      70    The default particle beam is an ion (F18), at rest, randomly distributed
 71    within a zone inside a patient and is defin     71    within a zone inside a patient and is defined in
 72    B3::PrimaryGeneratorAction::GeneratePrimari     72    B3::PrimaryGeneratorAction::GeneratePrimaries().
 73    The type of a primary particle can be chang     73    The type of a primary particle can be changed with G4ParticleGun commands
 74    (see run2.mac).                                 74    (see run2.mac).
 75                                                    75 
 76  5- DETECTOR RESPONSE:  scorers                    76  5- DETECTOR RESPONSE:  scorers
 77                                                    77 
 78    A 'good' event is an event in which an iden     78    A 'good' event is an event in which an identical energy of 511 keV is
 79    deposited in two separate Crystals. A count     79    deposited in two separate Crystals. A count of the number of such events
 80    corresponds to a measure of the efficiency      80    corresponds to a measure of the efficiency of the PET system.
 81    The total dose deposited in a patient durin     81    The total dose deposited in a patient during a run is also computed.
 82                                                    82 
 83    Scorers are defined in B3::DetectorConstruc     83    Scorers are defined in B3::DetectorConstruction::ConstructSDandField(). There are
 84    two G4MultiFunctionalDetector objects: one      84    two G4MultiFunctionalDetector objects: one for the Crystal (EnergyDeposit),
 85    and one for the Patient (DoseDeposit)           85    and one for the Patient (DoseDeposit)
 86                                                    86 
 87    The scorers hits are saved in form of ntupl     87    The scorers hits are saved in form of ntuples in a Root file using Geant4
 88    analysis tools. This feature is activated i     88    analysis tools. This feature is activated in the main () function with instantiating
 89    G4TScoreNtupleWriter.                           89    G4TScoreNtupleWriter.
 90                                                    90 
 91    Two variants of accumulation event statisti     91    Two variants of accumulation event statistics in a run are demonstrated
 92    in this example:                                92    in this example:
 93                                                    93 
 94    B3a:                                            94    B3a:
 95                                                    95 
 96    At the end of event, the values acummulated     96    At the end of event, the values acummulated in B3a::EventAction are passed
 97    in B3a::RunAction and summed over the whole     97    in B3a::RunAction and summed over the whole run (see B3a::EventAction::EndOfevent()).
 98    In multi-threading mode the data accumulate     98    In multi-threading mode the data accumulated in G4Accumulable objects per
 99    workers is merged to the master in B3a::Run     99    workers is merged to the master in B3a::RunAction::EndOfRunAction() and the final
100    result is printed on the screen.               100    result is printed on the screen.
101                                                   101 
102    G4Accumulable<> type instead of G4double an    102    G4Accumulable<> type instead of G4double and G4int types is used for the B3a::RunAction
103    data members in order to facilitate merging    103    data members in order to facilitate merging of the values accumulated on workers
104    to the master.  Currently the accumulables     104    to the master.  Currently the accumulables have to be registered to G4AccumulablesManager
105    and G4AccumulablesManager::Merge() has to b    105    and G4AccumulablesManager::Merge() has to be called from the users code. This is planned
106    to be further simplified with a closer inte    106    to be further simplified with a closer integration of G4Accumulable classes in
107    the Geant4 kernel next year.                   107    the Geant4 kernel next year.
108                                                   108 
109    B3b:                                           109    B3b:
110                                                   110 
111    B3b::Run::RecordEvent(), called at end of e    111    B3b::Run::RecordEvent(), called at end of event, collects informations
112    event per event from the hits collections,     112    event per event from the hits collections, and accumulates statistic for
113    B3b::RunAction::EndOfRunAction().              113    B3b::RunAction::EndOfRunAction().
114    In addition, results for dose are accumulat    114    In addition, results for dose are accumulated in a
115    standard floating-point summation and using    115    standard floating-point summation and using a new lightweight statistical
116    class called G4StatAnalysis. The G4StatAnal    116    class called G4StatAnalysis. The G4StatAnalysis class records four values:
117    (1) the sum, (2) sum^2, (3) number of entri    117    (1) the sum, (2) sum^2, (3) number of entries, and (4) the number of entries
118    less than mean * machine-epsilon (the machi    118    less than mean * machine-epsilon (the machine epsilon is the difference
119    between 1.0 and the next value representabl    119    between 1.0 and the next value representable by the floating-point type).
120    From these 4 values, G4StatAnalysis provide    120    From these 4 values, G4StatAnalysis provides the mean, FOM, relative error,
121    standard deviation, variance, coefficient o    121    standard deviation, variance, coefficient of variation, efficiency, r2int,
122    and r2eff.                                     122    and r2eff.
123                                                   123 
124    In multi-threading mode the statistics accu    124    In multi-threading mode the statistics accumulated per workers is merged
125    to the master in B3b::Run::Merge().            125    to the master in B3b::Run::Merge().
126                                                   126 
127  6- STACKING ACTION                               127  6- STACKING ACTION
128                                                   128 
129    Beta decay of Fluor generates a neutrino. O    129    Beta decay of Fluor generates a neutrino. One wishes not to track this
130    neutrino; therefore one kills it immediatel    130    neutrino; therefore one kills it immediately, before created particles
131    are put in a stack.                            131    are put in a stack.
132    The function B3::StackingAction::ClassifyNe    132    The function B3::StackingAction::ClassifyNewTrack() is invoked by G4 kernel
133    each time a new particle is created.           133    each time a new particle is created.
134                                                   134 
135  The following paragraphs are common to all ba    135  The following paragraphs are common to all basic examples
136                                                   136 
137  A- VISUALISATION                                 137  A- VISUALISATION
138                                                   138 
139    The visualization manager is set via the G4    139    The visualization manager is set via the G4VisExecutive class
140    in the main() function in exampleB3.cc.        140    in the main() function in exampleB3.cc.
141    The initialisation of the drawing is done v    141    The initialisation of the drawing is done via a set of /vis/ commands
142    in the macro vis.mac. This macro is automat    142    in the macro vis.mac. This macro is automatically read from
143    the main function when the example is used     143    the main function when the example is used in interactive running mode.
144                                                   144 
145    By default, vis.mac opens an OpenGL viewer     145    By default, vis.mac opens an OpenGL viewer (/vis/open OGL).
146    The user can change the initial viewer by c    146    The user can change the initial viewer by commenting out this line
147    and instead uncommenting one of the other /    147    and instead uncommenting one of the other /vis/open statements, such as
148    HepRepFile or DAWNFILE (which produce files    148    HepRepFile or DAWNFILE (which produce files that can be viewed with the
149    HepRApp and DAWN viewers, respectively).  N    149    HepRApp and DAWN viewers, respectively).  Note that one can always
150    open new viewers at any time from the comma    150    open new viewers at any time from the command line.  For example, if
151    you already have a view in, say, an OpenGL     151    you already have a view in, say, an OpenGL window with a name
152    "viewer-0", then                               152    "viewer-0", then
153       /vis/open DAWNFILE                          153       /vis/open DAWNFILE
154    then to get the same view                      154    then to get the same view
155       /vis/viewer/copyView viewer-0               155       /vis/viewer/copyView viewer-0
156    or to get the same view *plus* scene-modifi    156    or to get the same view *plus* scene-modifications
157       /vis/viewer/set/all viewer-0                157       /vis/viewer/set/all viewer-0
158    then to see the result                         158    then to see the result
159       /vis/viewer/flush                           159       /vis/viewer/flush
160                                                   160 
161    The DAWNFILE, HepRepFile drivers are always    161    The DAWNFILE, HepRepFile drivers are always available
162    (since they require no external libraries),    162    (since they require no external libraries), but the OGL driver requires
163    that the Geant4 libraries have been built w    163    that the Geant4 libraries have been built with the OpenGL option.
164                                                   164 
165    Since 11.1, the TSG visualization driver ca << 
166    file output in png, jpeg, gl2ps formats wit << 
167    It can be controlled via UI commands provid << 
168    demonstrated in the tsg_offscreen.mac macro << 
169                                                << 
170    For more information on visualization, incl    165    For more information on visualization, including information on how to
171    install and run DAWN, OpenGL and HepRApp, s    166    install and run DAWN, OpenGL and HepRApp, see the visualization tutorials,
172    for example,                                   167    for example,
173    http://geant4.slac.stanford.edu/Presentatio    168    http://geant4.slac.stanford.edu/Presentations/vis/G4[VIS]Tutorial/G4[VIS]Tutorial.html
174    (where [VIS] can be replaced by DAWN, OpenG    169    (where [VIS] can be replaced by DAWN, OpenGL and HepRApp)
175                                                   170 
176    The tracks are automatically drawn at the e    171    The tracks are automatically drawn at the end of each event, accumulated
177    for all events and erased at the beginning     172    for all events and erased at the beginning of the next run.
178                                                   173 
179  B- USER INTERFACES                               174  B- USER INTERFACES
180                                                   175 
181    The user command interface is set via the G    176    The user command interface is set via the G4UIExecutive class
182    in the main() function in exampleB3.cc         177    in the main() function in exampleB3.cc
183                                                << 
184    The selection of the user command interface    178    The selection of the user command interface is then done automatically
185    according to the Geant4 configuration or it    179    according to the Geant4 configuration or it can be done explicitly via
186    the third argument of the G4UIExecutive con    180    the third argument of the G4UIExecutive constructor (see exampleB4a.cc).
187                                                << 
188    The gui.mac macros are provided in examples << 
189    is automatically executed if Geant4 is buil << 
190    It is also possible to customise the icons  << 
191    demonstrated in the icons.mac macro in exam << 
192                                                   181 
193 C- HOW TO RUN                                     182 C- HOW TO RUN
194                                                   183 
195     - Execute exampleB3a in the 'interactive m    184     - Execute exampleB3a in the 'interactive mode' with visualization
196         % ./exampleB3a                            185         % ./exampleB3a
197       and type in the commands from run1.mac l    186       and type in the commands from run1.mac line by line:
198         Idle> /control/verbose 2                  187         Idle> /control/verbose 2
199         Idle> /tracking/verbose 2                 188         Idle> /tracking/verbose 2
200         Idle> /run/beamOn 1                       189         Idle> /run/beamOn 1
201         Idle> ...                                 190         Idle> ...
202         Idle> exit                                191         Idle> exit
203       or                                          192       or
204         Idle> /control/execute run1.mac           193         Idle> /control/execute run1.mac
205         ....                                      194         ....
206         Idle> exit                                195         Idle> exit
207                                                   196 
208     - Execute exampleB3a in the 'batch' mode f    197     - Execute exampleB3a in the 'batch' mode from macro files
209      (without visualization)                      198      (without visualization)
210         % ./exampleB3a run2.mac                   199         % ./exampleB3a run2.mac
211         % ./exampleB3a exampleB3.in > exampleB    200         % ./exampleB3a exampleB3.in > exampleB3.out
212                                                   201 
213                                                   202