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 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.