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 ]
1 ===========================================================
2 ---------------Geant4 doiPET example---------------------
3 ===========================================================
4 Author list to be updated, with names of co-authors and contributors from National Institute of Radiological Sciences (NIRS)
5
6 Abdella M. Ahmed (1, 2), Andrew Chacon (1, 2), Harley Rutherford (1, 2),
7 Hideaki Tashima (3), Go Akamatsu (3), Akram Mohammadi (3), Eiji Yoshida (3), Taiga Yamaya (3)
8 Susanna Guatelli (2), and Mitra Safavi-Naeini (1, 2)
9
10 *Corresponding authors
11 e-mail: abdella.ahmed@health.nsw.gov.au
12 mitras@ansto.gov.au
13 susanna@uow.edu.au
14
15 (1) Australian Nuclear Science and Technology Organisation, Australia
16 (2) University of Wollongong, Australia
17 (3) National Institute of Radiological Sciences, Japan
18
19 ================================================================================================
20
21 Introduction:
22
23 This example simulates depth-of-interaction (doi) enabled positron emission tomography (PET) scanner
24 and NEMA NU phantoms.The example can be executed in a multithreading mode. Some realistic approches
25 of identifying crystal ID are presented.
26
27 - The center of mass of the position of interaction is identified based on energy weighting
28
29 * Note: the following steps are performed if the option for AngerLogic is enabled (ApplyAngerLogic: true) in
30 the inputParameter.txt
31 - Four ideal photomultiplier tubes (PMTs) are placed at each corner of the crystal block
32 - Perform Anger type calculation method to identify the position of interaction in 2D based
33 - Shift the position response based on the reflector pattern
34 - DOI is identified by using a look-up-table and
35 - Crystal ID in 3D is determined
36
37 The above steps are illustrated figuratively in the supplementary document.
38
39 ================================================================================================
40 1-Geometry and Phantoms
41
42 The detector construction has two main parts: constructing the PET system and placing the phantoms.
43
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 GSO scintillation material. Materials are defined in the
46 DefineMaterials() using Geant4 NIST database. The geometrical specifications are given (and can be changed)
47 in the GlobalParameters.hh file.
48
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 introduced.
51
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, the G4UnionSolid from the Constructive Solid Geometry (CSG)
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 phantom imaging. For example, to run the simulation with image quality
56 phantom, the run_imageQualityPhantom_wholeBody.mac should be used.
57
58 2- PHYSICS LIST
59
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 modular physics list with registered physics builders provided in Geant4:
62 - G4DecayPhysics - defines all particles and their decay processes
63 - G4RadioactiveDecayPhysics - defines radioactiveDecay for GenericIon
64 - G4EmStandardPhysics_option3 - defines EM standard processes
65
66 3- ACTION INITALIZATION
67
68 The ActionInitialization class instantiates and registers to Geant4 kernel all user action classes by invoking the
69 ActionInitialization::Build().
70
71 4- PRIMARY GENERATOR
72
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 are provided with the name appended on it for specific simulation. The following
75 macro files are provided:
76
77 run_imageQualityPhantom_wholeBody.mac
78 run_imageQualityPhantom_smallAnimal.mac
79 run_NECR.mac
80 run_sensitivity.mac
81 run_spatialResolution.mac
82 run_normalization.mac (This one is not given in the NEMA NU manual but it is an important part of image reconstruction)
83
84 5-EVENT ACTION
85
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 are cleared by calling the Clear() function.
88
89
90 6- STEPPING ACTION
91
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 extracted. The interaction information (such as energy deposition, blockID, crystalID, etc)
94 is passed into the Analysis.cc class, which outputs the result into an ASCII file.
95
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.
98
99 7-ANALYSIS
100
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 provided. The parameters can be changed in the inputparameters.txt file.
103
104 ***** Geant4 ROOT ANALYSIS
105 /Path/doiPET/build/ and type:
106 cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/path/to/geant4_install_dir ../
107
108
109 ***** How to run a simulation:
110
111 Be in the build director
112 /Path/doiPET/build/ cmake ../
113 /Path/doiPET/build/ make
114 /Path/doiPET/build/ ./doiPET run.mac
115
116 Simulation output:
117
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
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
122 The user can choose to make the output either in singles or coincidence mode in the inputParameter.txt file as follows:
123
124 #Choose the type of output: singlesOutput or coincidenceOutput
125 TypeOfOutput: coincidenceOutput
126
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 header whether to analyse ASCII or root file (e.g. to use root file #define UseROOT). Then complie the code
129 as follows:
130
131
132 Compile: g++ analysis.cpp -o analysis `root-config --cflags --libs`
133 Run: ./analysis
134
135 Then, the axial sensitivity will be saved in a CSV file, and the total sensitivty will be displayed in the screen.
136
137 The reference data for this example are in: https://bitbucket.org/AbdellaAhmed/doipet_advancedexample_referencedata
138 The user can compare his/her simulation results with this data, after elaborating them with the provided analysis scripts.
139 =================== end ====================