Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/stim_pixe_tomography/

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 ]

Name Size       Last modified (GMT) Description
Back Parent directory       2024-12-05 15:16:16
Folder include/       2024-12-05 15:16:16
Folder scripts/       2024-12-05 15:16:16
Folder src/       2024-12-05 15:16:16
File CMakeLists.txt 2339 bytes       2024-12-05 15:16:16
File GPSPointLoop.C 5231 bytes       2024-12-05 15:16:16
File History 760 bytes       2024-12-05 15:16:16
File README 10245 bytes       2024-12-05 15:16:16
File README.md 10256 bytes       2024-12-05 15:16:16
File init_vis.mac 326 bytes       2024-12-05 15:16:16
File pixe3d.mac 23831 bytes       2024-12-05 15:16:16
File pixe3d_initial.mac 961 bytes       2024-12-05 15:16:16
File pixe3d_stim.mac 23024 bytes       2024-12-05 15:16:16
C++ file stim_pixe_tomography.cc 4288 bytes       2024-12-05 15:16:16
File stim_pixe_tomography.out 71919 bytes       2024-12-05 15:16:16
File test.in 3861 bytes       2024-12-05 15:16:16
File vis.mac 3332 bytes       2024-12-05 15:16:16

  1 stim_pixe_tomography advanced example
  2 
  3 The stim_pixe_tomography advanced example is developed to simulate three dimensional STIM or
  4 PIXE tomography experiments. The simulation results are written in a binary file and can be easily accessed using the
  5 provided scripts.
  6 
  7  Publications:
  8 
  9     [1] Li Z, Incerti S, Beasley D, Shen H, Wang S, Seznec H, et al. Accuracy of three-dimensional proton imaging of an
 10     inertial confinement fusion target assessed by Geant4 simulation. Nucl Instrum Methods Phys Res B. 2023;
 11     536:38-44. https://doi.org/10.1016/j.nimb.2022.12.026.
 12 
 13     [2] Michelet C, Li Z, Jalenques H, Incerti S, Barberet P, Devs G, et al. A Geant4 simulation of X-ray emission
 14     for three-dimensional proton imaging of microscopic samples. Phys Med. 2022;94:85-93. https://doi.org/10.1016/j.ejmp.2021.12.002.
 15 
 16     [3] Michelet C, Li Z, Yang W, Incerti S, Desbarats P, Giovannelli J-F, et al. A Geant4 simulation for
 17     three-dimensional proton imaging of microscopic samples. Phys Med. 2019;65:172-80. https://doi.org/10.1016/j.ejmp.2019.08.022.
 18 
 19  Contact:
 20 
 21     michelet@lp2ib.in2p3.fr      (Claire Michelet)
 22 
 23     zhuxin.li@outlook.com        (Zhuxin Li)
 24 
 25 
 26 More information and a detailed UserGuide are available: http://geant4.in2p3.fr (Documentation section)
 27 
 28  1 - GEOMETRY DEFINITION
 29 
 30   Three phantoms are available, users can build up new phantoms or choose the following
 31   three phantoms by setting the "phantom_type":
 32 
 33     1) A simple cube (see publication [2-3]), phantom_type = 1
 34 
 35     The absorber is a box made of a given material.
 36 
 37     2) Upper part of Caenorhabditis elegans (C.elegans) worm (see publication [2-3]) , phantom_type = 2
 38 
 39     C.elegans phantom is composed of  6 ellipsoids. The size and shape of ellipsoids are based on the
 40     nanotoxicology studies carried-out at LP2I Bordeaux laboratory .
 41 
 42     3) Inertial confinement fusion (ICF) target (see publication [1]), phantom_type = 3
 43 
 44     ICF target is sphere shell, made of Ge-doped glow discharge polymer (GDP)
 45 
 46 
 47 2 - PHYSICS LIST
 48 
 49   Physics lists are based on modular design. Several modules are instantiated:
 50 
 51     1) Transportation
 52     2) EM physics
 53     3) Decay physics
 54     4) Hadron physics, optional
 55 
 56  EM physics builders can be local or from G4 kernel physics_lists subdirectory.
 57 
 58      - "emlivermore"             default low-energy EM physics using Livermore data
 59      - "local"                   local physics builders, options are explicit in PhysListEmStandard
 60      - "emstandard_opt0"         recommended standard EM physics for LHC
 61      - "emstandard_opt1"         best CPU performance standard physics for LHC
 62      - "emstandard_opt2"         similar fast simulation
 63      - "emstandard_opt3"         best standard EM options - analog to "local" above
 64      - "emstandard_opt4"         best current advanced EM options standard + lowenergy
 65      - "emstandardWVI"           standard EM physics and WentzelVI multiple scattering
 66      - "emstandardSS"            standard EM physics and single scattering model
 67      - "emstandardGS"            standard EM physics and Goudsmit-Saunderson multiple scatt.
 68      - "empenelope"              low-energy EM physics implementing Penelope models
 69      - "emlowenergy"             low-energy EM physics implementing experimental
 70 
 71   Decay and StepMax processes are added to each list.
 72 
 73   Optional components can be added:
 74 
 75      - "elastic"       elastic scattering of hadrons
 76      - "binary"        QBBC configuration of hadron inelastic models
 77      - "binary_ion"    Binary ion inelastic models
 78 
 79   Physics lists and options can be (re)set with UI commands.
 80 
 81 
 82 3 - HOW TO RUN
 83 
 84  To run a PIXE tomography simulation in 'batch' mode using a pixe3d.mac file:
 85 
 86     ./stim_pixe_tomography -p pixe3d.mac
 87 
 88  or if you want to specify the number of threads:
 89 
 90     ./stim_pixe_tomography -p pixe3d.mac N
 91 
 92     N is the number of threads
 93 
 94   An example of pixe3d.mac is provided.
 95   It is designed for the PIXE-T simulation of the cube phantom of 40 um.
 96   It is defined for 10 projections  1 slice  20 pixels. 1000000 protons are used for each beam.
 97 
 98 
 99  To run a STIM tomography simulation:
100 
101       ./stim_pixe_tomography -s pixe3d_stim.mac
102 
103   or if you want to specify the number of threads:
104 
105     ./stim_pixe_tomography -s pixe3d_stim.mac N
106 
107     N is the number of threads
108 
109  An example of pixe3d_stim.mac (arbitrarily name, you may rename it pixe3d.mac if you wish) is provided.
110  It is designed for the STIM-T simulation of the cube phantom of 40 um.
111  It is defined for 10 projections  1 slice  20 pixels. 100 protons are used for each beam.
112 
113 4 - VISUALISATION
114 To visualize the phantoms, run:
115 
116     ./stim_pixe_tomography
117 
118 5 - OUTPUT FILES
119 
120  If a PIXE tomography simulation is made, two files are going to be generated:
121 
122     1) GammaAtCreation.dat, which keeps the info of secondary photons at creation
123     2) GammaAtExit.dat, which keeps the info of secondary photons at exit of the phantom
124 
125  If a STIM tomography simulation is made, ProtonAtExit.dat is generated, in which the info of primary protons is kept
126 
127 
128 6 - LIST OF MACROS AND SCRIPTS
129 
130 Once you build the example, the following macros and script will be copied to your build directory:
131 
132         pixe3d.mac: an example macro to run a PIXE-T simulation for cube of 40 um
133         pixe3d_stim.mac: an example macro to run a STIM-T simulation for cube of 40 um
134         pixe3d_initial.mac: it contains the information of physics processes
135         init_vis.mac and vis.mac: for the visualization
136         GPSPointLoop.C: it generates a macro file to run the simulation by reading pixe3d_initial.mac
137 
138 In the Scripts folder, you will find other scripts for different uses.
139 
140 To obtain the reconstruction data:
141 
142         BinToStd_ProtonAtExit.C: it reads the STIM-T simulation results and generates the data file for STIM-T reconstruction using selection with particle momentum.
143         BinToStd_GammaAtCreation.C: it reads the PIXE-T simulation results for X-rays at creation and generates the data file for PIXE-T reconstruction using selection with particle momentum.
144         BinToStd_GammaAtExit.C: it reads the PIXE-T simulation results for X-rays at exit and generates the data file for PIXE-T reconstruction using selection with particle momentum.
145         BinToStd_proton_position.C: it reads the STIM-T simulation results and generates the data file for STIM-T reconstruction using selection with particle position and momentum
146         BinToStd_gamma_position.C: it reads the PIXE-T simulation results for X-rays and generates the data file for PIXE-T reconstruction using selection with particle position and momentum
147 
148 To locate the interruption if an interruption of simulation occurs:
149 
150         LocateInterruption_ProtonAtExit.C: in case of interruption, it locates the projection position of interruption for STIM-T simulation.
151         LocateInterruption_GammaAtExit.C: in case of interruption, it locates the projection position of interruption for PIXE-T simulation.
152 To obtain the reconstruction data in case of an interruption of simulation:***
153 
154         Concatenate_BinToStd_ProtonAtExit.C: in case of one interruption, it reads STIM-T simulation results and generates the data file for STIM-T reconstruction.
155         Concatenate_BinToStd_GammaAtCreation.C: in case of one interruption, it reads PIXE-T simulation results for X-rays at creation and generates the data file for PIXE-T reconstruction.
156         Concatenate_BinToStd_GammaAtExit.C: in case of one interruption, it reads PIXE-T simulation results for X-rays at exit and generates the data file for PIXE-T reconstruction.
157 To visualize the spectrum:
158 
159         Spectrum_proton.C: it visualizes the spectrum of protons and plots a histogram by reading simulation result ProtonAtExit.dat.
160         Spectrum_gamma.C: it visualizes the spectrum of X-rays and plots a histogram by reading simulation result GammaAtCreation.dat or GammaAtExit.dat.
161         TomoSpectrum_HIST_proton.C: it visualizes the spectrum of protons and plots a histogram by reading StimEvent data. It also writes the spectrum data in a txt file.
162         TomoSpectrum.C: it visualizes the spectrum of X-rays and plots a graph by reading PixeEvent data. It also writes the spectrum data in a txt file.
163         TomoSpectrum_HIST.C: it visualizes the spectrum of X-rays and plots a histogram by reading PixeEvent data. It also writes the spectrum data in a txt file.
164 Scripts for specific use:
165 
166         Extract_Projection.C: it extracts 50 projections from a PixeEvent data file for tomographic reconstruction, which contains 100 projections. In fact, it extracts the projection 0, 2, 4, 6, 898 from projections 0-99. It eventually generates a new file with new index number of projections 0-49.
167         Check_PixeEventFile.C: it checks if the index of projections of a PixeEvent data file for tomographic reconstruction is correct. For example, if the user extract 50 projections from a data file composed 100 projections, it is necessary to make sure in the new data file, the index of projection starts from 0 and ends at 49.
168         Extract_Slice.C: it extracts a certain number of slice(s) from a PixeEvent data file for tomographic reconstruction. Users need to specify the first and the last slice to be extracted. Note that when writing a new data file, the index of slices will be initiated from 0.
169         Concatenate_BinToStd_GammaAtCreation_fabricate.C: if users make a PIXE-T simulation on a symmetrical object with only one projection, this script can be used to fabricate the other 99 projection data for X-rays at creation with same energy.
170         Concatenate_BinToStd_GammaAtExit_fabricate.C: if users make a PIXE-T simulation on a symmetrical object with only one projection, this script can be used to fabricate the other 99 projection data for X-rays at exit with same energy
171 Scripts to generate voxelized phantoms:***
172 
173 In order to compare the reconstructed tomographic images with original
174 phantoms, it may be necessary to use a voxelized phantom.
175 
176         generate_voxelized_sphere_phantom.py: it generates a voxelized phantom of an inertial confinement fusion target.
177         generate_voxelized_worm_phantom.py: it generates a voxelized phantom of the upper part of C. elegans.
178 More information can be found in the UserGuide.