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 9.6)


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