Geant4 Cross Reference |
1 1 2 ======================================= 2 ========================================================= 3 Text version of the iort_ 3 Text version of the iort_therapy README file 4 ================================= 4 ========================================================= 5 5 6 Main Authors: 6 Main Authors: 7 G.Russo(a,b), C.Casarino*(c), G.C. Candiano(c 7 G.Russo(a,b), C.Casarino*(c), G.C. Candiano(c), G.A.P. Cirrone(d), F.Romano(d) 8 8 9 Contributor Authors: 9 Contributor Authors: 10 S.Guatelli(e) 10 S.Guatelli(e) 11 11 12 Past Authors: 12 Past Authors: 13 G.Arnetta(c), S.E.Mazzaglia(d) 13 G.Arnetta(c), S.E.Mazzaglia(d) 14 14 15 (a) Fondazione Istituto San Raffaele G.Giglio << 15 (a) Fondazione Istituto San Raffaele G.Giglio, Cefalù, Italy 16 16 17 (b) IBFM-CNR , Segrate (Milano), Italy 17 (b) IBFM-CNR , Segrate (Milano), Italy 18 18 19 (c) LATO (Laboratorio di Tecnologie Oncologic << 19 (c) LATO (Laboratorio di Tecnologie Oncologiche), Cefalù, Italy 20 20 21 (d) Laboratori Nazionali del Sud of the INFN, 21 (d) Laboratori Nazionali del Sud of the INFN, Catania, Italy 22 22 23 (e) University of Wollongong, Australia 23 (e) University of Wollongong, Australia 24 24 25 25 26 *Corresponding author, email to carlo.casari 26 *Corresponding author, email to carlo.casarino@polooncologicocefalu.it 27 ---------------------------------------------- 27 ------------------------------------------------------------------------------------------------- 28 28 29 iort_therapy: 29 iort_therapy: 30 30 31 WHAT IT IS, WHAT IT DOES AND WHAT IT WILL PROV 31 WHAT IT IS, WHAT IT DOES AND WHAT IT WILL PROVIDE 32 32 33 iort_therapy is a Geant4-based application spe 33 iort_therapy is a Geant4-based application specifically developed to address typical needs related to the Intra-Operative Radio-Therapy (IORT) technique. 34 34 35 iort_therapy is capable to simulate a well spe << 35 iort_therapy is capable to simulate a well specified intra-operative electron radio-therapy facility: the collimator beam line system of a typical medical mobile linac and the relative target (water-phantom). iort_therapy application is currently used by the G.Russo team in clinical and research activities carried out in Fondazione Istituto San Raffaele G.Giglio Hospital (Cefalù, Italy) where a NOVAC7 linac is installed. 36 36 37 iort_therapy, is flexible and show many capabi 37 iort_therapy, is flexible and show many capabilities. Its geometrical set-up, for example, is completely interchangeable permitting a simple switch between different geometrical collimator system configurations; the possibility to simulate a composite metallic shielding disc inside the water-phantom was also implemented. 38 38 39 39 40 Folder structure of iort_therapy 40 Folder structure of iort_therapy 41 41 42 iort_therapy distribution contain these sub-fo 42 iort_therapy distribution contain these sub-folders: 43 43 44 \src: where source .cc files are stored 44 \src: where source .cc files are stored 45 \include: where header .hh files are stored 45 \include: where header .hh files are stored 46 46 47 Currently this folders structure is in develop 47 Currently this folders structure is in development and in the meanwhile new features and capabilities will be added. 48 48 49 49 50 DOWNLOAD AND INSTALLATION 50 DOWNLOAD AND INSTALLATION 51 51 52 iort_therapy source code is released inside th 52 iort_therapy source code is released inside the official distribution of the Geant4 toolkit in the $G4INSTALL/examples/AdvancedExamples folder. 53 53 54 To run iort_therapy you must first install the 54 To run iort_therapy you must first install the Geant4 package. Once Geant4 is installed the example must be first compiled (with the command gmake inside the 55 ../iort_therapy folder). When compilation is c 55 ../iort_therapy folder). When compilation is completed the program can be executed. 56 56 57 A CMakeLists.txt file is provided together wit 57 A CMakeLists.txt file is provided together with a standard GNUmakefile for compilation. 58 58 59 A complete guide for the Geant4 installation i 59 A complete guide for the Geant4 installation in different operating systems can be found inside the official installation Geant4 pages. 60 60 61 61 62 GEOMETRICAL SET-UP 62 GEOMETRICAL SET-UP 63 63 64 The idea of iort_therapy is to provide a tool 64 The idea of iort_therapy is to provide a tool useful for Users interested in the field of electron intra-operative radio-therapy. These can include the simple calculation of dose distribution curves in water or other materials, the possibility to study and plan dose distribution in the tumor treatment region with different clinical set-up, and to optimize radio-protection of normal patient tissues simulating a composite metallic shielding disc. 65 65 66 The main component of the simulation is the co 66 The main component of the simulation is the collimator beam line system, the phantom, the detector and the composite metallic shielding disc. 67 67 68 68 69 COLLIMATOR BEAM LINE SYSTEM 69 COLLIMATOR BEAM LINE SYSTEM 70 70 71 At moment iort_therapy include the simulation 71 At moment iort_therapy include the simulation of a collimator beam line system, based on a typical medical mobile linac structure us the NOVAC7. This collimator beam line is elaborated in the files CollimatorXXBeamLine.cc , where XX may be 40, 50, 60, 70 ,80 or 100 (mm) depending on the diameter collimator set-up chosen. 72 In fact, there is also a facility in iort_ther 72 In fact, there is also a facility in iort_therapy that allows the user to make a choice, via macro, between alternative collimator beam line set-up. This can be done by using command: 73 73 74 /geometrySetup/selectGeometry <name> 74 /geometrySetup/selectGeometry <name> 75 75 76 where <name> is coll40, coll50, coll60, coll70 76 where <name> is coll40, coll50, coll60, coll70, coll80 or coll100 depending on the diameter collimator set-up chosen (40mm, 50mm, 60mm, 70mm, 80mm or 100mm). The standard "default" geometry is coll60. 77 77 78 The Collimator beam line system class file 78 The Collimator beam line system class file 79 79 80 The following is the description of the elemen 80 The following is the description of the elements of the collimator beam line system from the accelerator head to the final collimator. This line is completely simulated inside this class. 81 81 82 The main elements are the accelerator head and 82 The main elements are the accelerator head and the applicator. 83 The accelerator head performs as a primary col 83 The accelerator head performs as a primary collimator system. It consists of titanium exit window and a cylindrical PMMA structure where two monitor chambers are installed. 84 The applicator consists of a cylindrical PMMA 84 The applicator consists of a cylindrical PMMA tube (the final collimator). In the order we have implemented the following functions: 85 85 86 IortBeamLineVacuumSource(); 86 IortBeamLineVacuumSource(); 87 IortBeamLineTitaniumWindows(); 87 IortBeamLineTitaniumWindows(); 88 IortBeamLineMonitorChambers(); 88 IortBeamLineMonitorChambers(); 89 IortBeamLineBlocks() ; 89 IortBeamLineBlocks() ; 90 IortBeamLineJunctions(); 90 IortBeamLineJunctions(); 91 IortBeamLineFinalCollimator(); 91 IortBeamLineFinalCollimator(); 92 92 93 The user has now the possibility to vary, via 93 The user has now the possibility to vary, via messenger, the inner and outer radius of the final collimator. 94 94 95 95 96 THE PHANTOM 96 THE PHANTOM 97 97 98 At the end of the beam line a phantom (a box o 98 At the end of the beam line a phantom (a box of 20cmx20cmx20cm default dimensions) is reproduced. 99 Inside it, a user-defined region (the detector 99 Inside it, a user-defined region (the detector) is divided (via the ROGeomtry classes of Geant4) in cubic and identical voxels. The voxels size can be varied as well as the voxelized region. 100 At the end of a simulation run the dose deposi 100 At the end of a simulation run the dose deposited by primaries and secondaries in each voxel is collected. This information is available as an .out file. 101 101 102 THE DETECTOR 102 THE DETECTOR 103 103 104 A scoring mesh is set to score the dose in the 104 A scoring mesh is set to score the dose in the phantom (see defaultMacro.mac) 105 105 106 As concern the cut and stepMax values, the def 106 As concern the cut and stepMax values, the default configuration implies a cut value of 0.01 mm in the whole world (use the command /physic/setCuts <length> in order to set the cut for all, and the command /physic/setDetectorCuts <length> to set the cut for the detector only) and a stepMax of 0.01 mm just in the phantom (use the command /Step/waterPhantomStepMax 0.01 mm). 107 In any case it is strongly recommended to use 107 In any case it is strongly recommended to use a stepMax value not bigger than 5% of the dose slice thickness. 108 108 109 109 110 SHIELDING DISC 110 SHIELDING DISC 111 111 112 Inside the detector is positioned a double lay 112 Inside the detector is positioned a double layered shielding disc. For both layers it is possible via macro to change the outer and inner radius, the thickness, the position along the beam axis and the material. 113 NOTE 1: to delete the disc out the entire geom 113 NOTE 1: to delete the disc out the entire geometry the relative macro command must be used!! 114 NOTE 2: to re-insert the disc in the entire ge 114 NOTE 2: to re-insert the disc in the entire geometry the relative macro command must be used!! 115 115 116 116 117 PHYSICS PROCESSES AND PHYSICS MODELS IMPLEMENT 117 PHYSICS PROCESSES AND PHYSICS MODELS IMPLEMENTATION 118 118 119 EM Standard option 4 is activated. The user ca 119 EM Standard option 4 is activated. The user can change the physics list interactively. 120 120 121 121 122 INTERACTIVE COMMANDS 122 INTERACTIVE COMMANDS 123 123 124 How to change Phantom, Detector and Shielding 124 How to change Phantom, Detector and Shielding Disc geometries 125 125 126 In order to let the end user to change phantom 126 In order to let the end user to change phantom and detector geometries and voxelization, some interactive commands have been provided. All parameters are mandatory, except those inside square brackets. 127 127 128 128 129 Phantom geometry 129 Phantom geometry 130 130 131 (1) The phantom size. As usually, zero or nega 131 (1) The phantom size. As usually, zero or negatives values mean: <<don't change it>>. 132 (2) The phantom position respect to the world. 132 (2) The phantom position respect to the world. In this case specified values refer to the three components of the position of the phantom's center respect to the world's. 133 133 134 Command synopsis: 134 Command synopsis: 135 135 136 /changePhantom/size <dimX> <dimY> <dimZ> <[uni 136 /changePhantom/size <dimX> <dimY> <dimZ> <[unit]> # 20 20 20 cm 137 /changePhantom/position <posX> <posY> <posZ> < 137 /changePhantom/position <posX> <posY> <posZ> <[unit]> # 4.5 0 0 cm 138 138 139 139 140 Detector geometry 140 Detector geometry 141 141 142 The user can change: 142 The user can change: 143 143 144 (1) The detector (box) size. 144 (1) The detector (box) size. 145 145 146 (2) The displacement between the phantom and t 146 (2) The displacement between the phantom and the detector. Displacement parameters refer to the lower left corner of the detector respect to that of the phantom, by the point of view of the beam. In this case zero or positive values are allowed, while the negatives ones mean: << don't change it>>. 147 147 148 Command synopsis: 148 Command synopsis: 149 /changeDetector/size <dimX> <dimY> <dimZ> <[un 149 /changeDetector/size <dimX> <dimY> <dimZ> <[unit]> 150 /changeDetector/displacement <dispX> <dispY> < 150 /changeDetector/displacement <dispX> <dispY> <dispZ> <[unit]> 151 151 152 The user has to change the scoring mesh accord 152 The user has to change the scoring mesh accordingly via UI commands. 153 153 154 154 155 Shielding Disc geometry 155 Shielding Disc geometry 156 156 157 Command synopsis: 157 Command synopsis: 158 158 159 /ProtectionDisc1/OuterRadiusDisc1 <dim> 159 /ProtectionDisc1/OuterRadiusDisc1 <dim> # default -> 40*mm ; 160 /ProtectionDisc1/InnerRadiusDisc1 <dim> 160 /ProtectionDisc1/InnerRadiusDisc1 <dim> # default -> 0*mm 161 /ProtectionDisc1/HeightDisc1 <dim> 161 /ProtectionDisc1/HeightDisc1 <dim> # default -> 2*mm 162 /ProtectionDisc1/XPositionDisc1 <dimX> 162 /ProtectionDisc1/XPositionDisc1 <dimX> # default -> -11*mm 163 /ProtectionDisc1/material <G4_Material> 163 /ProtectionDisc1/material <G4_Material> # default -> G4_WATER ; 164 164 165 /ProtectionDisc2/OuterRadiusDisc2 <dim> 165 /ProtectionDisc2/OuterRadiusDisc2 <dim> # default -> 40*mm ; 166 /ProtectionDisc2/InnerRadiusDisc2 <dim> 166 /ProtectionDisc2/InnerRadiusDisc2 <dim> # default -> 0*mm 167 /ProtectionDisc2/HeightDisc2 <dim> 167 /ProtectionDisc2/HeightDisc2 <dim> # default -> 1*mm 168 /ProtectionDisc2/XPositionDisc2 <dimX> 168 /ProtectionDisc2/XPositionDisc2 <dimX> # default -> -8*mm 169 /ProtectionDisc2/material <G4_Material> 169 /ProtectionDisc2/material <G4_Material> # default -> G4_WATER ; 170 170 171 171 172 All these commands must be followed 172 All these commands must be followed by the command /changePhantom/update 173 in order to check and eventually apply changes 173 in order to check and eventually apply changes to the real geometry. 174 Moreover they must be issued between 174 Moreover they must be issued between runs (so where you want but after the /run/initialize initialization command, or the G4State_Idle Geant4 state machine). 175 Obviously all the previous sizes must be set i 175 Obviously all the previous sizes must be set in order to maintain the detector fully inside the phantom, otherwise system complains. 176 176 177 177 178 To Delete Disc geometry 178 To Delete Disc geometry 179 179 180 Command synopsis: 180 Command synopsis: 181 181 182 /DeleteProtectionDisc/delete 182 /DeleteProtectionDisc/delete 183 183 184 To Re-insert Disc geometry 184 To Re-insert Disc geometry 185 185 186 Command synopsis: 186 Command synopsis: 187 187 188 /InsertProtectionDisc/insert 188 /InsertProtectionDisc/insert 189 189 190 **** To set initial beam features 190 **** To set initial beam features 191 191 192 By default, the beam propagates along the posi 192 By default, the beam propagates along the positive X direction with Gaussian momentum and Y-Z distributions. 193 It is possible to select: particle type, mean 193 It is possible to select: particle type, mean energy and relative standard deviation, X,Y and Z coordinates, Y and Z standard deviations and, finally, the beam spread along X direction (Theta). 194 194 195 Command synopsis: 195 Command synopsis: 196 196 197 /gun/particle 197 /gun/particle 198 /beam/energy/meanEnergy 198 /beam/energy/meanEnergy 199 /beam/energy/sigmaEnergy 199 /beam/energy/sigmaEnergy 200 /beam/position/Xposition 200 /beam/position/Xposition 201 /beam/position/Yposition 201 /beam/position/Yposition 202 /beam/position/Yposition/sigmaY 202 /beam/position/Yposition/sigmaY 203 /beam/position/Zposition 203 /beam/position/Zposition 204 /beam/position/Zposition/sigmaZ 204 /beam/position/Zposition/sigmaZ 205 /beam/momentum/Theta 205 /beam/momentum/Theta 206 206 207 HOW RUN iort_therapy 207 HOW RUN iort_therapy 208 208 209 Run the example in interactive mode 209 Run the example in interactive mode 210 210 211 > $G4WORDIR/bin/Linux-g++/iort_therapy 211 > $G4WORDIR/bin/Linux-g++/iort_therapy 212 212 213 In this case the main file (iort_therapy.cc) p 213 In this case the main file (iort_therapy.cc) performs different operations depending on which environment variable is activated; 214 For example, if the environment variable G4UI_ 214 For example, if the environment variable G4UI_USE_TCSH is activated, iort_therapy will start with the TCSH User Interface that has many useful functionalities. On the other hand, if this first variables is not defined, the program will continue searching for the G4UI_USE_QT variable and, finally, will open the standard G4UITerminal. 215 215 216 Run the example using macro files 216 Run the example using macro files 217 217 218 iort_therapy can be launched using a macro fil 218 iort_therapy can be launched using a macro file: 219 219 220 > $G4WORDIR/bin/Linux-g++/iort_therapy macroFi 220 > $G4WORDIR/bin/Linux-g++/iort_therapy macroFile.mac 221 221 222 The defaultMacro.mac file is contained in the 222 The defaultMacro.mac file is contained in the main directory of iort_therapy and is automatically read in case the user launch the executable without a parameter. 223 223 224 224 225 SIMULATION OUTPUT 225 SIMULATION OUTPUT 226 226 227 Store results in an ASCII file 227 Store results in an ASCII file 228 228 229 A .out ASCII file is generated at the end of e 229 A .out ASCII file is generated at the end of each run, Dose.out. 230 The file contains four columns; the first thre 230 The file contains four columns; the first three columns represent the voxel indexes (that univocally identify the voxel volume), while the last column represents the dose in Gray deposited in that given voxel. 231 231 232 232 233 233