Geant4 Cross Reference |
1 ========================================= 1 ======================================================================= 2 Geant4 - ICRP110_HumanPhan 2 Geant4 - ICRP110_HumanPhantoms Example 3 ========================================= 3 ======================================================================= 4 4 5 The ICRP110_HumanPhantoms example is developed 5 The ICRP110_HumanPhantoms example is developed and mantained by Susanna Guatelli, Matthew Large and Alessandra Malaroda, 6 Centre For Medical Radiation Physics (CMRP), U << 6 Centre For Medical Radiation Physics (CMRP), University of Wollongong, NSW, Australia. 7 and University of Manchester, UK. << 8 7 9 Contacts: 8 Contacts: 10 - susanna@uow.edu.au 9 - susanna@uow.edu.au 11 - mjl970@uowmail.edu.au 10 - mjl970@uowmail.edu.au 12 - malaroda@uow.edu.au 11 - malaroda@uow.edu.au 13 - John.Allison@g4ai.org << 14 12 15 The example is based on the extended/medical/D 13 The example is based on the extended/medical/DICOM example 16 14 17 The authors acknowledge that this application 15 The authors acknowledge that this application of the ICRP110 human phantoms have been implemented in Geant4 with the kind permission of 18 the International Commission on Radiological P 16 the International Commission on Radiological Protection (ICRP). 19 17 20 ---------------------------------------------- 18 ---------------------------------------------------------------------------------------------------- 21 --------------------------------------> Introd 19 --------------------------------------> Introduction <---------------------------------------------- 22 ---------------------------------------------- 20 ---------------------------------------------------------------------------------------------------- 23 21 24 This application models the ICRP110 reference 22 This application models the ICRP110 reference computational human phantoms [1] in a Geant4 simulation and calculates 25 the dose in individual voxels and in entire or 23 the dose in individual voxels and in entire organs. 26 24 27 The human male phantom, provided kindly by the 25 The human male phantom, provided kindly by the ICRP, is created from a whole-body clinical CT image set of a 38yr old 28 individual with height 176 cm and mass approxi 26 individual with height 176 cm and mass approximately 70 kg. Similarly, the human female phantom was created from a set of 29 whole body CT images of a 43yr old individual 27 whole body CT images of a 43yr old individual with height 163 cm and weight 60 kg. The CT scans were acquired with both 30 individuals laying supine and with arms restin 28 individuals laying supine and with arms resting parallel alongside the body. Both sets of CT data were then scaled to 31 closely approximate the ICRP adult Reference M 29 closely approximate the ICRP adult Reference Male and Reference Female, defined in previous ICRP publications [2, 3]. 32 30 33 [1] HG Menzel, C Clement, and P DeLuca. ICRP 31 [1] HG Menzel, C Clement, and P DeLuca. ICRP publication 110. "Realistic reference phantoms: 34 an icrp/icru joint effort: A report of adult 32 an icrp/icru joint effort: A report of adult reference computational phantoms", Annals of the 35 ICRP, 39(2):1, 2009. URL: http://www.icrp.or 33 ICRP, 39(2):1, 2009. URL: http://www.icrp.org/publication.asp?id=icrp%20publication%20110. 36 34 37 [2] Valetin J 2002 Basic anatomical and phys 35 [2] Valetin J 2002 Basic anatomical and physiological data for use in radiological protection: 38 reference values: ICRP Publication 89 Ann. I 36 reference values: ICRP Publication 89 Ann. ICRP vol. 32 (Oxford: Elsevier) pp 1-277. 39 37 40 [3] Valetin J 2007 The 2007 recommendations 38 [3] Valetin J 2007 The 2007 recommendations of the international commission on radiological 41 protection Ann. ICRP vol 37 (Oxford: Elsevie 39 protection Ann. ICRP vol 37 (Oxford: Elsevier) pp 1-133. 42 40 43 The table below summarises the key features of 41 The table below summarises the key features of the male and female voxelised human phantoms. 44 42 45 PROPERTY AM AF 43 PROPERTY AM AF 46 _____________________________________ 44 _____________________________________ 47 Height (m) 1.76 1.63 45 Height (m) 1.76 1.63 48 46 49 Mass(Kg) 73.0 60.0 47 Mass(Kg) 73.0 60.0 50 48 51 Slice Thickness(mm) 8.0 4.84 49 Slice Thickness(mm) 8.0 4.84 52 50 53 Voxel in-plane- 2.137 1.775 51 Voxel in-plane- 2.137 1.775 54 -resolution (mm) 52 -resolution (mm) 55 53 56 Voxels along x 254 299 54 Voxels along x 254 299 57 (i.e. columns) 55 (i.e. columns) 58 56 59 Voxels along y 127 137 57 Voxels along y 127 137 60 (i.e. rows) 58 (i.e. rows) 61 59 62 Number of Slices 222 348 60 Number of Slices 222 348 63 (i.e. along z) 61 (i.e. along z) 64 ______________________________________ 62 ______________________________________ 65 63 66 ---------------------------------------------- 64 ---------------------------------------------------------------------------------------------------- 67 ------------------------------> Application Su 65 ------------------------------> Application Sub-Folder Structure <---------------------------------- 68 ---------------------------------------------- 66 ---------------------------------------------------------------------------------------------------- 69 67 70 - '/src': where the source .cc files are stor 68 - '/src': where the source .cc files are stored 71 69 72 - '/include': where header .hh files are stor 70 - '/include': where header .hh files are stored 73 71 74 - '/ICRPdata': where the phantom data files ( 72 - '/ICRPdata': where the phantom data files (*.dat) and slice files are stored. 75 It is downloaded automatically from URL https 73 It is downloaded automatically from URL https://cern.ch/geant4-data/datasets/examples/advanced/ICRP110Phantoms/ICRPdata.tar.gz 76 during the configuration via cmake. 74 during the configuration via cmake. 77 75 78 Phantom data files containing the voxelisatio 76 Phantom data files containing the voxelisation of each phantom, as well as files 79 containing the definitions of the phantom org 77 containing the definitions of the phantom organs and materials used within geant4 80 code can be found in the folder /ICRPdata. 78 code can be found in the folder /ICRPdata. 81 79 82 All data files used for this phantom were obt 80 All data files used for this phantom were obtained from the ICRP's website on publication 110 under "Supplementary Data" 83 - https://www.icrp.org/publication.asp 81 - https://www.icrp.org/publication.asp?id=ICRP%20Publication%20110. 84 82 85 ---------------------------------------------- 83 ---------------------------------------------------------------------------------------------------- 86 ----------------------------------> ICRP110Pha 84 ----------------------------------> ICRP110Phantoms Data <------------------------------------------ 87 ---------------------------------------------- 85 ---------------------------------------------------------------------------------------------------- 88 86 89 Within the '/ICRPdata' directory, the followin 87 Within the '/ICRPdata' directory, the following sub-directories are contained: 90 88 91 -> /ICRPdata/ : conta 89 -> /ICRPdata/ : contains '*Data.dat' files which list the number of phantom slices to 92 simul 90 simulate and the order in which to stack the phantom slices. 93 91 94 -> /ICRPdata/ICRP110_g4dat/AM/ : conta 92 -> /ICRPdata/ICRP110_g4dat/AM/ : contains the individual male phantom slice files. 95 93 96 -> /ICRPdata/ICRP110_g4dat/AF/ : conta 94 -> /ICRPdata/ICRP110_g4dat/AF/ : contains the individual female phantom slice files. 97 95 98 -> /ICRPdata/ICRP110_g4dat/P110_data_V 96 -> /ICRPdata/ICRP110_g4dat/P110_data_V1.2 99 97 100 The final directory contains the raw ICRP110 p 98 The final directory contains the raw ICRP110 phantom data as obtained from the ICRP110 publication website [1]; 101 5 files within folders for the AM and AF phant 99 5 files within folders for the AM and AF phantoms are given. These files are described as follows in the 102 supplementary data's included README file. 100 supplementary data's included README file. 103 101 104 The array of organ identification numbers (in 102 The array of organ identification numbers (in ASCII format); the file names are: 105 AM.dat 103 AM.dat 106 AF.dat 104 AF.dat 107 105 108 A list of individually segmented structures, 106 A list of individually segmented structures, their identification numbers, and assigned media (Appendix A in ICRP110); the file names are: 109 AM_organs.dat 107 AM_organs.dat 110 AF_organs.dat 108 AF_organs.dat 111 109 112 A list of the media, their elemental composi 110 A list of the media, their elemental compositions and densities (Appendix B in ICRP110); 113 the file names are: 111 the file names are: 114 AM_media.dat 112 AM_media.dat 115 AF_media.dat 113 AF_media.dat 116 114 117 The mass ratios of bone constituents (trabec 115 The mass ratios of bone constituents (trabecular bone, red and yellow bone marrow) in the spongiosa regions; 118 the file names are: 116 the file names are: 119 AM_spongiosa.dat 117 AM_spongiosa.dat 120 AF_spongiosa.dat 118 AF_spongiosa.dat 121 119 122 The mass ratios of blood in various body tis 120 The mass ratios of blood in various body tissues; the file names are: 123 AM_blood.dat 121 AM_blood.dat 124 AF_blood.dat 122 AF_blood.dat 125 123 126 The primary data files AM.dat and AF.dat conta 124 The primary data files AM.dat and AF.dat contain an array of organ identification numbers ranging from 0 to 141. 127 Each number respresents the organ associated w 125 Each number respresents the organ associated with each voxel within the phantom. Within these files, the organ IDs 128 are listed slice by slice, within each slice r 126 are listed slice by slice, within each slice row by row, within each row column by column. That means, the column 129 index changes fastest, then the row index, the 127 index changes fastest, then the row index, then the slice index - in other words, the phantom voxels first increase 130 along x, then along y and finally along z. Sli 128 along x, then along y and finally along z. Slice numbers increase from the toes up to the vertex of the body; 131 row numbers increase from front to back; and c 129 row numbers increase from front to back; and column numbers increase from right to left side. 132 130 133 For use in this application, the original AM.d 131 For use in this application, the original AM.dat and AF.dat files containing the organ identification numbers of 134 all voxels of the phantom were sub-divided int 132 all voxels of the phantom were sub-divided into many files with each representing a single phantom slice along z. 135 As such, each file represents a 2D phantom sli 133 As such, each file represents a 2D phantom slice containing x,y voxel positions and organ identification numbers 136 of each voxel. This allows for subsections of 134 of each voxel. This allows for subsections of the phantom to be simulated as required by the user, removing the 137 need to simulate the entire phantom every time 135 need to simulate the entire phantom every time when this may not nessecrily be needed by the user. This also will 138 allow for reductions in the simulation time de 136 allow for reductions in the simulation time depending on what portion of the total phantom is simulated by the user. 139 This feature was achieved via a code developed 137 This feature was achieved via a code developed by Dr Alessandra Malaroda, University of Wollongong, Australia in 2017. 140 138 141 The AM human phantom is voxelised in x,y,z wit 139 The AM human phantom is voxelised in x,y,z with 254 x 127 x 222 voxels with dimensions 2.137 x 2.137 x 8 mm. 142 The AF human phantom is voxelised in x,y,z wit 140 The AF human phantom is voxelised in x,y,z with 299 x 137 x 348 voxels with dimensions 1.775 x 1.775 x 4.84 mm. 143 141 144 ---------------------------------------------- 142 ---------------------------------------------------------------------------------------------------- 145 ---------------------------------------> How t 143 ---------------------------------------> How to compile and run <----------------------------------- 146 ---------------------------------------------- 144 ---------------------------------------------------------------------------------------------------- 147 145 148 - Create a build folder for the phantom run 146 - Create a build folder for the phantom run 149 % mkdir build/ 147 % mkdir build/ 150 148 151 - Navigate to inside the build folder and init 149 - Navigate to inside the build folder and initialise Geant4 152 % cmake ../ 150 % cmake ../ 153 151 154 The ICRP110 phantom data will be automatical 152 The ICRP110 phantom data will be automatically downloaded from https://cern.ch/geant4-data/datasets/examples/advanced/ICRP110Phantoms/ICRPdata.tar.gz 155 153 156 - Compile and link to generate the executable 154 - Compile and link to generate the executable (in your CMAKE build directory): 157 % make 155 % make 158 This should make two executables - ICRP110ph << 159 156 160 - Execute the application in 'interactive' mod 157 - Execute the application in 'interactive' mode with visualization: 161 % ./ICRP110phantoms 158 % ./ICRP110phantoms 162 159 163 - Execute the "standalone" application in 'int << 164 % ./ICRP110standalone << 165 This allows you to visualise the phantom wit << 166 Of course, you cannot run or visualise traje << 167 << 168 - Execute the application in 'batch' mode from 160 - Execute the application in 'batch' mode from macro files: 169 % ./ICRP110phantoms female_head.in 161 % ./ICRP110phantoms female_head.in 170 162 171 ----------------------------- 163 ----------------------------- 172 AVAILABLE MACRO FILES 164 AVAILABLE MACRO FILES 173 ----------------------------- 165 ----------------------------- 174 For the users convenience, macro files have be << 166 For the users convinience, macro files have been created which are designed to construct partial head 175 and trunk phantoms for both the male and femal 167 and trunk phantoms for both the male and female models. These macro files can be called upon in batch 176 mode when executing the application as specifi 168 mode when executing the application as specified above. If the user wishes to construct a completed/full 177 male or female phantom, the macros male.in and 169 male or female phantom, the macros male.in and female.in can be called upon, respectively. 178 170 179 - male_head.in/female_head.in : Creates a p 171 - male_head.in/female_head.in : Creates a partial head phantom for the male and female, respectively. 180 - male_trunk.in/female_trunk.in : Creates a p 172 - male_trunk.in/female_trunk.in : Creates a partial trunk phantom for the male and female, respectively. 181 - male.in : Creates ful 173 - male.in : Creates full male ICRP110 phantom. This can be modified along with 'ICRPdata/MaleData.dat' 182 if the user 174 if the user wishes to create their own custom partial phantom section. 183 - female.in : Creates ful 175 - female.in : Creates full female ICRP110 phantom. This can be modified along with 184 'ICRPdata/Fe 176 'ICRPdata/FemaleData.dat' if the user wishes to create their own custom partial phantom section. 185 - openGLVis.mac : macro for v 177 - openGLVis.mac : macro for visualisation with openGL. 186 - vis.mac (default) : Executed by 178 - vis.mac (default) : Executed by default when the simulation is run in 'interactive' mode. 187 - primary.mac : Contains th << 179 - primary.mac : Contains the definition of the primary radiation field. 188 180 189 At the very top of the various '.in' macro fil 181 At the very top of the various '.in' macro files (pre-initialization), there are a series of commands 190 which define the sex and section of the phanto 182 which define the sex and section of the phantom to create. These commands are listed below: 191 183 192 o /phantom/setPhantomSex <option> : Passes s 184 o /phantom/setPhantomSex <option> : Passes sex of phantom to Detector Construction 193 o /phantom/setScoreWriterSex <option> : Pass 185 o /phantom/setScoreWriterSex <option> : Passes sex of phantom to User Score Writer 194 186 195 o /phantom/setPhantomSection <option> : Pass 187 o /phantom/setPhantomSection <option> : Passes section of phantom to Detector Construction 196 o /phantom/setScoreWriterSection <option> P 188 o /phantom/setScoreWriterSection <option> Passes section of phantom to User Score Writer 197 189 198 Available options for the first 2 commands are 190 Available options for the first 2 commands are: male or female. 199 Avalable options for the last 2 commands are: 191 Avalable options for the last 2 commands are: head, trunk or full. 200 192 201 In the event that the macro called upon by the 193 In the event that the macro called upon by the user when executing the application in 'batch' mode 202 does not contain these commands (default case) 194 does not contain these commands (default case), the application sets phantom sex to female and the section as the head. 203 195 204 WARNING: the phantom model can be chosen only 196 WARNING: the phantom model can be chosen only in the initialization phase of the simulation!!! 205 It cannot be changed during the run session. T 197 It cannot be changed during the run session. This feature will be implemented in the next future. 206 198 207 ---------------------------------------------- 199 ---------------------------------------------------------------------------------------------------- 208 ----------------------------------> Creating a 200 ----------------------------------> Creating a Custom Phantom <------------------------------------ 209 ---------------------------------------------- 201 ---------------------------------------------------------------------------------------------------- 210 202 211 If the user wishes to construct a customised s 203 If the user wishes to construct a customised section of the phantom (i.e. a single slice, the legs, etc), 212 he/she has to create a specific macro or edit 204 he/she has to create a specific macro or edit the ones provided. The recommended method for a custom male 213 phantom is outlined as follows. 205 phantom is outlined as follows. 214 206 215 The user should edit the macro 'male.in' and t 207 The user should edit the macro 'male.in' and the data file 216 'MaleData.dat'. Firstly, in 'FemaleData.dat', 208 'MaleData.dat'. Firstly, in 'FemaleData.dat', there are 2 simple ways in which the user can 217 select a custom range of phantom slices to sim 209 select a custom range of phantom slices to simulate: 218 210 219 1. The very first entry of each Data.dat indic 211 1. The very first entry of each Data.dat indicates how many slices to simulate. 220 Changing this number will determine the num 212 Changing this number will determine the number of slices to construct. 221 213 222 2. Further down in the Data.dat files (beginni 214 2. Further down in the Data.dat files (beginning at line 61) is the name of the first slice to simulate, followed 223 by successive slices. Changing the slice fi 215 by successive slices. Changing the slice file orders here will allow various subsections of the human 224 phantom to be simulated. As an indication t 216 phantom to be simulated. As an indication the following phantom subsections have been identified for the 225 male phantom below. 217 male phantom below. 226 218 227 --> AM_Slice1.g4dat to AM_Slice20.g4dat: F 219 --> AM_Slice1.g4dat to AM_Slice20.g4dat: Feet to ankles 228 220 229 --> AM_Slice21.g4dat to AM_Slice121.g4dat: 221 --> AM_Slice21.g4dat to AM_Slice121.g4dat: Ankles to hips 230 222 231 --> AM_Slice169.g4dat: Single chest slice 223 --> AM_Slice169.g4dat: Single chest slice with good visualisation 232 of lungs, ribs, hea 224 of lungs, ribs, heart. 233 225 234 --> AM_Slice182.g4dat to AM_Slice222.g4dat 226 --> AM_Slice182.g4dat to AM_Slice222.g4dat: Neck and Head 235 227 236 NOTE: o Always order phantom slices beg 228 NOTE: o Always order phantom slices beginning with the lowest number and increasing 237 in slice number going down the 229 in slice number going down the .dat files. 238 o Always use consecutive/adjacent 230 o Always use consecutive/adjacent slices when simulating multiple slices. 239 o The default number of slices fo 231 o The default number of slices for both male and female phantoms is set to 10 240 and starts at the feet of each 232 and starts at the feet of each phantom. 241 233 242 Once the user customises the MaleData.dat/Fema 234 Once the user customises the MaleData.dat/FemaleData.dat (for example starting from the full phantoms macros), 243 he/she has also to fix appropriately the scori 235 he/she has also to fix appropriately the scoring mesh in male.in/female.in. 244 236 245 ---------------------------------------------- 237 ---------------------------------------------------------------------------------------------------- 246 ------------------------------> Scoring Mesh a 238 ------------------------------> Scoring Mesh and the User Score Writer <---------------------------- 247 ---------------------------------------------- 239 ---------------------------------------------------------------------------------------------------- 248 240 249 The macro primary.mac defines the radiation be 241 The macro primary.mac defines the radiation beam type, energy, direction and geometry. The UI commands of the 250 General Particle Source should be used to chan 242 General Particle Source should be used to change the radiation field. The macros male.in and female.in contain 251 the /run/beamOn command and can call upon the 243 the /run/beamOn command and can call upon the radiation beam definition through the UI command 252 '/control/execute primary.mac'. 244 '/control/execute primary.mac'. 253 245 254 Within male.in and female.in, a scoring mesh i 246 Within male.in and female.in, a scoring mesh is defined which records the dose deposition within each individual 255 phantom voxel. The size of the scoring mesh is 247 phantom voxel. The size of the scoring mesh is defined in line 54 of the male.in/female.in files, and must be defined 256 to match the constructed phantom dimensions (w 248 to match the constructed phantom dimensions (whole or partial) defined in the according '/ICRPdata/*Data.dat' file. 257 249 258 The mesh dimensions are defined as half-dimens 250 The mesh dimensions are defined as half-dimensions in x,y,z - meaning a defined scoring mesh x-dimension of 100mm will construct 259 a scoring mesh spanning from -100mm to +100mm 251 a scoring mesh spanning from -100mm to +100mm in the geometrical world in which the phantom lies. Furthermore, for the completed 260 male phantom which has dimensions along x,y,z 252 male phantom which has dimensions along x,y,z of 542.798 x 271.399 x 1776 mm, the scoring mesh half-dimensions should be defined 261 as 271.399 x 135.6995 x 888. mm. The number of 253 as 271.399 x 135.6995 x 888. mm. The number of bins or divisions to segment the mesh into is then defined in line 51. These 262 should match the number of phantom voxels in x 254 should match the number of phantom voxels in x,y,z which are defined in the MaleData.dat and FemaleData.dat files in the '/ICRPdata' 263 directory. 255 directory. 264 256 265 If the user edits the MaleData.dat or FemaleDa 257 If the user edits the MaleData.dat or FemaleData.dat files to change the number of z-slices simulated in a run, they must also edit 266 the scoring mesh dimensions and number of bins 258 the scoring mesh dimensions and number of bins to ensure it correctly scores their defined phantom. To do so, the user will typically 267 only have to edit lines 54 and 55 of the male. 259 only have to edit lines 54 and 55 of the male.in or female.in macro files. 268 260 269 After completion of a simulation run, the phan 261 After completion of a simulation run, the phantom mesh records the deposited dose in each phantom voxel and outputs the data to a text file named 270 "PhantomMesh_Dose.txt". This text file lists t 262 "PhantomMesh_Dose.txt". This text file lists the x,y,z positional number of the voxel in the phantom and the dose recorded within that voxel (in Gy). 271 263 272 The output PhantomMesh_Dose.txt file is create 264 The output PhantomMesh_Dose.txt file is created by the User Score Writer class defined in the source code ICRP110UserScoreWriter.cc. In the same class the dose 273 in the voxels is analysed and associated to or 265 in the voxels is analysed and associated to organs. 274 266 275 A final output file "ICRP.out" is then created << 267 A final output file "OrganDoses.out" is then created which contains the total dose delivered to each organ. 276 268 277 ---------------------------------------------- 269 ---------------------------------------------------------------------------------------------------- 278 ----------------------------------------> Furt 270 ----------------------------------------> Further Info <-------------------------------------------- 279 ---------------------------------------------- 271 ---------------------------------------------------------------------------------------------------- 280 272 281 -------> ColourMap.dat <-------- 273 -------> ColourMap.dat <-------- 282 274 283 This file located in the build directory assig 275 This file located in the build directory assigns G4colours to the 53 phantom materials. 284 The user may edit these as they wish for visua 276 The user may edit these as they wish for visualistion purposes. 285 277 286 ----------> Physics <----------- 278 ----------> Physics <----------- 287 279 288 The QGSP_BIC_HP Physics List is adopted. The u 280 The QGSP_BIC_HP Physics List is adopted. The user may want to change the 289 cut of production of secondary particles. 281 cut of production of secondary particles. 290 282 291 -----> Primary particles <------ 283 -----> Primary particles <------ 292 284 293 The G4 General Particle Source (gps) is used t 285 The G4 General Particle Source (gps) is used to generate primary radiation field. 294 Macro primary.mac contains the definition of t 286 Macro primary.mac contains the definition of the primary radiation field.