Back to home page

EIC code displayed by LXR

 
 

    


Warning, /geant4/examples/advanced/doiPET/README is written in an unsupported language. File is not indexed.

0001 ===========================================================
0002 ---------------Geant4 doiPET example---------------------
0003 ===========================================================
0004  Author list to be updated, with names of co-authors and contributors from National Institute of Radiological Sciences (NIRS)
0005 
0006  Abdella M. Ahmed (1, 2), Andrew Chacon (1, 2), Harley Rutherford (1, 2),
0007  Hideaki Tashima (3), Go Akamatsu (3), Akram Mohammadi (3), Eiji Yoshida (3), Taiga Yamaya (3)
0008  Susanna Guatelli (2), and Mitra Safavi-Naeini (1, 2)
0009 
0010 *Corresponding authors
0011 e-mail: abdella.ahmed@health.nsw.gov.au
0012         mitras@ansto.gov.au 
0013         susanna@uow.edu.au
0014 
0015 (1) Australian Nuclear Science and Technology Organisation, Australia
0016 (2) University of Wollongong, Australia
0017 (3) National Institute of Radiological Sciences, Japan
0018 
0019 ================================================================================================
0020 
0021 Introduction:
0022 
0023 This example simulates depth-of-interaction (doi) enabled positron emission tomography (PET) scanner 
0024 and NEMA NU phantoms.The example can be executed in a multithreading mode. Some realistic approches 
0025 of identifying crystal ID are presented.
0026   
0027    - The center of mass of the position of interaction is identified based on energy weighting 
0028    
0029   * Note: the following steps are performed if the option for AngerLogic is enabled (ApplyAngerLogic: true) in 
0030     the inputParameter.txt
0031   - Four ideal photomultiplier tubes (PMTs) are placed at each corner of the crystal block
0032   - Perform Anger type calculation method to identify the position of interaction in 2D based
0033   - Shift the position response based on the reflector pattern
0034   - DOI is identified by using a look-up-table and
0035   - Crystal ID in 3D is determined 
0036 
0037 The above steps are illustrated figuratively in the supplementary document.
0038 
0039 ================================================================================================
0040 1-Geometry and Phantoms
0041 
0042 The detector construction has two main parts: constructing the PET system and placing the phantoms.
0043 
0044 The PET system is constructed from depth-of-interaction (DOI)detectors blocks. Each detector consisted 
0045 of 16 x 16 x 4 crystal array constructed from GSO scintillation material. Materials are defined in the 
0046 DefineMaterials() using Geant4 NIST database. The geometrical specifications are given (and can be changed) 
0047 in the GlobalParameters.hh file. 
0048 
0049 The scanner has 4 ring detectors. The detectors are covered with Aluminum material. Gaps between crystal 
0050 elements, as well as adjacent rings are introduced.
0051 
0052 Various types of NEMA NU phantoms has been provided and are defined in the ConstructPhantom() method. 
0053 To precisely create the image quality phantom, the G4UnionSolid from the Constructive Solid Geometry (CSG) 
0054 has been used. The type, position and size of the phantoms can be changed using the macro file when necessary. 
0055 A macro file is provided for each type of phantom imaging. For example, to run the simulation with image quality 
0056 phantom, the run_imageQualityPhantom_wholeBody.mac should be used.
0057         
0058  2- PHYSICS LIST
0059 
0060 The physics list contains standard electromagnetic processes and the radioactiveDecay module for GenericIon. It is 
0061 defined in the PhysicsList class as a Geant4 modular physics list with registered physics builders provided in Geant4:
0062    - G4DecayPhysics - defines all particles and their decay processes
0063    - G4RadioactiveDecayPhysics - defines radioactiveDecay for GenericIon
0064    - G4EmStandardPhysics_option3 - defines EM standard processes
0065     
0066  3- ACTION INITALIZATION
0067 
0068    The ActionInitialization class instantiates and registers to Geant4 kernel all user action classes by invoking the 
0069 ActionInitialization::Build().
0070 
0071  4- PRIMARY GENERATOR
0072 
0073 The default particle beam is F-18 ion at rest defined in the GPS (General Particle Source). The GPS is used for all types 
0074 of activity distribution. Various macro files are provided with the name appended on it for specific simulation. The following 
0075 macro files are provided:
0076  
0077 run_imageQualityPhantom_wholeBody.mac
0078 run_imageQualityPhantom_smallAnimal.mac
0079 run_NECR.mac
0080 run_sensitivity.mac
0081 run_spatialResolution.mac
0082 run_normalization.mac (This one is not given in the NEMA NU manual but it is an important part of image reconstruction) 
0083    
0084 5-EVENT ACTION
0085 
0086 At the end of each event, the information is extracted by calling FindInteractingCrystal() function and associative container
0087 (multimap and set methods) and the containers are cleared by calling the Clear() function.
0088 
0089                 
0090  6- STEPPING ACTION
0091 
0092 The SteppingAction class is the one which is used to track the steps. In the stepping action, interaction information of the 
0093 photon with the crystal and the phantoms are extracted. The interaction information (such as energy deposition, blockID, crystalID, etc)
0094 is passed into the Analysis.cc class, which outputs the result into an ASCII file. 
0095 
0096 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 
0097 the physical volume.
0098 
0099 7-ANALYSIS
0100 
0101 In the doiPETAnalysis class, several realistic parameters are provided. Deadtime of the detector and/or module, efficiency of the detector, 
0102 crystal dependent energy resoltion,  etc are provided. The parameters can be changed in the inputparameters.txt file. 
0103  
0104 ***** Geant4 ROOT ANALYSIS
0105 /Path/doiPET/build/ and type:
0106 cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/path/to/geant4_install_dir ../
0107 
0108 
0109 ***** How to run a  simulation:
0110 
0111 Be in the build director
0112 /Path/doiPET/build/ cmake ../
0113 /Path/doiPET/build/ make
0114 /Path/doiPET/build/ ./doiPET run.mac
0115 
0116 Simulation output:
0117 
0118 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:
0119 
0120 EventID, BlockID, tangentialCrystalID, AxialCrystalID, DOI_ID, time, and Energy deposition in the crystal is written to the file as a list-mode format. 
0121 
0122 The user can choose to make the output either in singles or coincidence mode in the inputParameter.txt file as follows:
0123 
0124 #Choose the type of output: singlesOutput or coincidenceOutput
0125 TypeOfOutput: coincidenceOutput
0126 
0127 - Use the code analysis.cpp to analyse the raw simulation output data stored in the "resultCoincidence.data" or "resultCoincidence.root" file.
0128 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
0129 as follows:
0130 
0131 
0132     Compile: g++ analysis.cpp -o analysis `root-config --cflags --libs`
0133     Run: ./analysis
0134 
0135 Then, the axial sensitivity will be saved in a CSV file, and the total sensitivty will be displayed in the screen.
0136 
0137 The reference data for this example are in: https://bitbucket.org/AbdellaAhmed/doipet_advancedexample_referencedata
0138 The user can compare his/her simulation results with this data, after elaborating them with the provided analysis scripts.
0139 =================== end ====================