Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/doiPET/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/advanced/doiPET/README (Version 11.3.0) and /examples/advanced/doiPET/README (Version 11.2.1)


  1 ==============================================      1 ===========================================================
  2 ---------------Geant4 doiPET example----------      2 ---------------Geant4 doiPET example---------------------
  3 ==============================================      3 ===========================================================
  4  Author list to be updated, with names of co-a      4  Author list to be updated, with names of co-authors and contributors from National Institute of Radiological Sciences (NIRS)
  5 
                                                   5 
  6  Abdella M. Ahmed (1, 2), Andrew Chacon (1, 2)      6  Abdella M. Ahmed (1, 2), Andrew Chacon (1, 2), Harley Rutherford (1, 2),
  7  Hideaki Tashima (3), Go Akamatsu (3), Akram M      7  Hideaki Tashima (3), Go Akamatsu (3), Akram Mohammadi (3), Eiji Yoshida (3), Taiga Yamaya (3)
  8  Susanna Guatelli (2), and Mitra Safavi-Naeini      8  Susanna Guatelli (2), and Mitra Safavi-Naeini (1, 2)
  9 
                                                   9 
 10 *Corresponding authors
                            10 *Corresponding authors
 11 e-mail: abdella.ahmed@health.nsw.gov.au
           11 e-mail: abdella.ahmed@health.nsw.gov.au
 12         mitras@ansto.gov.au 
                      12         mitras@ansto.gov.au 
 13         susanna@uow.edu.au
                        13         susanna@uow.edu.au
 14 
                                                  14 
 15 (1) Australian Nuclear Science and Technology      15 (1) Australian Nuclear Science and Technology Organisation, Australia
 16 (2) University of Wollongong, Australia
           16 (2) University of Wollongong, Australia
 17 (3) National Institute of Radiological Science     17 (3) National Institute of Radiological Sciences, Japan
 18 
                                                  18 
 19 ==============================================     19 ================================================================================================
 20 
                                                  20 
 21 Introduction:
                                     21 Introduction:
 22 
                                                  22 
 23 This example simulates depth-of-interaction (d     23 This example simulates depth-of-interaction (doi) enabled positron emission tomography (PET) scanner 
 24 and NEMA NU phantoms.The example can be execut     24 and NEMA NU phantoms.The example can be executed in a multithreading mode. Some realistic approches 
 25 of identifying crystal ID are presented.
          25 of identifying crystal ID are presented.
 26   
                                                26   
 27    - The center of mass of the position of int     27    - The center of mass of the position of interaction is identified based on energy weighting 
 28    
                                               28    
 29   * Note: the following steps are performed if     29   * Note: the following steps are performed if the option for AngerLogic is enabled (ApplyAngerLogic: true) in 
 30     the inputParameter.txt
                        30     the inputParameter.txt
 31   - Four ideal photomultiplier tubes (PMTs) ar     31   - Four ideal photomultiplier tubes (PMTs) are placed at each corner of the crystal block
 32   - Perform Anger type calculation method to i     32   - Perform Anger type calculation method to identify the position of interaction in 2D based
 33   - Shift the position response based on the r     33   - Shift the position response based on the reflector pattern
 34   - DOI is identified by using a look-up-table     34   - DOI is identified by using a look-up-table and
 35   - Crystal ID in 3D is determined 
               35   - Crystal ID in 3D is determined 
 36 
                                                  36 
 37 The above steps are illustrated figuratively i     37 The above steps are illustrated figuratively in the supplementary document.
 38 
                                                  38 
 39 ==============================================     39 ================================================================================================
 40 1-Geometry and Phantoms
                           40 1-Geometry and Phantoms
 41 
                                                  41 
 42 The detector construction has two main parts:      42 The detector construction has two main parts: constructing the PET system and placing the phantoms.
 43 
                                                  43 
 44 The PET system is constructed from depth-of-in     44 The PET system is constructed from depth-of-interaction (DOI)detectors blocks. Each detector consisted 
 45 of 16 x 16 x 4 crystal array constructed from      45 of 16 x 16 x 4 crystal array constructed from GSO scintillation material. Materials are defined in the 
 46 DefineMaterials() using Geant4 NIST database.      46 DefineMaterials() using Geant4 NIST database. The geometrical specifications are given (and can be changed) 
 47 in the GlobalParameters.hh file. 
                 47 in the GlobalParameters.hh file. 
 48 
                                                  48 
 49 The scanner has 4 ring detectors. The detector     49 The scanner has 4 ring detectors. The detectors are covered with Aluminum material. Gaps between crystal 
 50 elements, as well as adjacent rings are introd     50 elements, as well as adjacent rings are introduced.
 51 
                                                  51 
 52 Various types of NEMA NU phantoms has been pro     52 Various types of NEMA NU phantoms has been provided and are defined in the ConstructPhantom() method. 
 53 To precisely create the image quality phantom,     53 To precisely create the image quality phantom, the G4UnionSolid from the Constructive Solid Geometry (CSG) 
 54 has been used. The type, position and size of      54 has been used. The type, position and size of the phantoms can be changed using the macro file when necessary. 
 55 A macro file is provided for each type of phan     55 A macro file is provided for each type of phantom imaging. For example, to run the simulation with image quality 
 56 phantom, the run_imageQualityPhantom_wholeBody     56 phantom, the run_imageQualityPhantom_wholeBody.mac should be used.
 57   
                                                57   
 58  2- PHYSICS LIST
                                  58  2- PHYSICS LIST
 59 
                                                  59 
 60 The physics list contains standard electromagn     60 The physics list contains standard electromagnetic processes and the radioactiveDecay module for GenericIon. It is 
 61 defined in the PhysicsList class as a Geant4 m     61 defined in the PhysicsList class as a Geant4 modular physics list with registered physics builders provided in Geant4:
 62    - G4DecayPhysics - defines all particles an     62    - G4DecayPhysics - defines all particles and their decay processes
 63    - G4RadioactiveDecayPhysics - defines radio     63    - G4RadioactiveDecayPhysics - defines radioactiveDecay for GenericIon
 64    - G4EmStandardPhysics_option3 - defines EM      64    - G4EmStandardPhysics_option3 - defines EM standard processes
 65     
                                              65     
 66  3- ACTION INITALIZATION
                          66  3- ACTION INITALIZATION
 67 
                                                  67 
 68    The ActionInitialization class instantiates     68    The ActionInitialization class instantiates and registers to Geant4 kernel all user action classes by invoking the 
 69 ActionInitialization::Build().
                    69 ActionInitialization::Build().
 70 
                                                  70 
 71  4- PRIMARY GENERATOR
                             71  4- PRIMARY GENERATOR
 72 
                                                  72 
 73 The default particle beam is F-18 ion at rest      73 The default particle beam is F-18 ion at rest defined in the GPS (General Particle Source). The GPS is used for all types 
 74 of activity distribution. Various macro files      74 of activity distribution. Various macro files are provided with the name appended on it for specific simulation. The following 
 75 macro files are provided:
                         75 macro files are provided:
 76  
                                                 76  
 77 run_imageQualityPhantom_wholeBody.mac
             77 run_imageQualityPhantom_wholeBody.mac
 78 run_imageQualityPhantom_smallAnimal.mac
           78 run_imageQualityPhantom_smallAnimal.mac
 79 run_NECR.mac
                                      79 run_NECR.mac
 80 run_sensitivity.mac
                               80 run_sensitivity.mac
 81 run_spatialResolution.mac
                         81 run_spatialResolution.mac
 82 run_normalization.mac (This one is not given i     82 run_normalization.mac (This one is not given in the NEMA NU manual but it is an important part of image reconstruction) 
 83    
                                               83    
 84 5-EVENT ACTION
                                    84 5-EVENT ACTION
 85 
                                                  85 
 86 At the end of each event, the information is e     86 At the end of each event, the information is extracted by calling FindInteractingCrystal() function and associative container
 87 (multimap and set methods) and the containers      87 (multimap and set methods) and the containers are cleared by calling the Clear() function.
 88 
                                                  88 
 89       
                                            89       
 90  6- STEPPING ACTION
                               90  6- STEPPING ACTION
 91 
                                                  91 
 92 The SteppingAction class is the one which is u     92 The SteppingAction class is the one which is used to track the steps. In the stepping action, interaction information of the 
 93 photon with the crystal and the phantoms are e     93 photon with the crystal and the phantoms are extracted. The interaction information (such as energy deposition, blockID, crystalID, etc)
 94 is passed into the Analysis.cc class, which ou     94 is passed into the Analysis.cc class, which outputs the result into an ASCII file. 
 95 
                                                  95 
 96 Generation of the source (F-18 ion) is confine     96 Generation of the source (F-18 ion) is confined in the physical volume by killing the event in the SteppingAction class when it is out of 
 97 the physical volume.
                              97 the physical volume.
 98 
                                                  98 
 99 7-ANALYSIS
                                        99 7-ANALYSIS
100 
                                                 100 
101 In the doiPETAnalysis class, several realistic    101 In the doiPETAnalysis class, several realistic parameters are provided. Deadtime of the detector and/or module, efficiency of the detector, 
102 crystal dependent energy resoltion,  etc are p    102 crystal dependent energy resoltion,  etc are provided. The parameters can be changed in the inputparameters.txt file. 
103  
                                                103  
104 ***** Geant4 ROOT ANALYSIS
                       104 ***** Geant4 ROOT ANALYSIS
105 /Path/doiPET/build/ and type:
                    105 /Path/doiPET/build/ and type:
106 cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/pat    106 cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/path/to/geant4_install_dir ../
107 
                                                 107 
108 
                                                 108 
109 ***** How to run a  simulation:
                  109 ***** How to run a  simulation:
110 
                                                 110 
111 Be in the build director
                         111 Be in the build director
112 /Path/doiPET/build/ cmake ../
                    112 /Path/doiPET/build/ cmake ../
113 /Path/doiPET/build/ make
                         113 /Path/doiPET/build/ make
114 /Path/doiPET/build/ ./doiPET run.mac
             114 /Path/doiPET/build/ ./doiPET run.mac
115 
                                                 115 
116 Simulation output:
                               116 Simulation output:
117 
                                                 117 
118 ASCII and ROOT files are created depending on     118 ASCII and ROOT files are created depending on the type of the output format. The following information of the event is written in the output file:
119 
                                                 119 
120 EventID, BlockID, tangentialCrystalID, AxialCr    120 EventID, BlockID, tangentialCrystalID, AxialCrystalID, DOI_ID, time, and Energy deposition in the crystal is written to the file as a list-mode format. 
121 
                                                 121 
122 The user can choose to make the output either     122 The user can choose to make the output either in singles or coincidence mode in the inputParameter.txt file as follows:
123 
                                                 123 
124 #Choose the type of output: singlesOutput or c    124 #Choose the type of output: singlesOutput or coincidenceOutput
125 TypeOfOutput: coincidenceOutput
                  125 TypeOfOutput: coincidenceOutput
126 
                                                 126 
127 - Use the code analysis.cpp to analyse the raw    127 - Use the code analysis.cpp to analyse the raw simulation output data stored in the "resultCoincidence.data" or "resultCoincidence.root" file.
128 Before compiling, change the option in the hea    128 Before compiling, change the option in the header whether to analyse ASCII or root file (e.g. to use root file #define UseROOT). Then complie the code
129 as follows:
                                      129 as follows:
130 
                                                 130 
131 
                                                 131 
132     Compile: g++ analysis.cpp -o analysis `roo    132     Compile: g++ analysis.cpp -o analysis `root-config --cflags --libs`
133     Run: ./analysis
                              133     Run: ./analysis
134 
                                                 134 
135 Then, the axial sensitivity will be saved in a    135 Then, the axial sensitivity will be saved in a CSV file, and the total sensitivty will be displayed in the screen.
136 
                                                 136 
137 The reference data for this example are in: ht    137 The reference data for this example are in: https://bitbucket.org/AbdellaAhmed/doipet_advancedexample_referencedata
138 The user can compare his/her simulation result    138 The user can compare his/her simulation results with this data, after elaborating them with the provided analysis scripts.
139 =================== end ====================
     139 =================== end ====================