Monoenergetic proton pencil beam

From UCL HEP PBT Wiki

Jump to: navigation, search
 
Line 3: Line 3:
This example shows the dose distribution in water along the incident proton beam. The beam hits the water cube surface and deposits a dose under the surface of the water. The volume of the water cube is divided into slices perpendicular to the incident beam. At each slice the deposited dose and energy is computed.  
This example shows the dose distribution in water along the incident proton beam. The beam hits the water cube surface and deposits a dose under the surface of the water. The volume of the water cube is divided into slices perpendicular to the incident beam. At each slice the deposited dose and energy is computed.  
-
The slices are created using class '''G4PVReplica'''. The energy and dose are scored using classes '''G4UserSteppingAction''' and '''G4UserRunAction'''. Alternatively, the energy and dose are scored using class '''G4ScoringManager''' by defining two scoring meshes in logitudinal and lateral direction of the beam. More information about scoring meshes can be found [https://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ch04s08.html here]. Protons are generated using '''G4ParticleGun''' class. There is an option to chose among several '''EM''' and '''QGSP_BIC_EMY''' physics lists.
+
The slices are created using class '''G4PVReplica'''. The energy and the dose are scored using classes '''G4UserSteppingAction''' and '''G4UserRunAction'''. Alternatively, the energy and the dose are scored using class '''G4ScoringManager''' by defining two scoring meshes in longitudinal and lateral direction of the beam. More information about the scoring meshes can be found [https://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ch04s08.html here]. The protons are generated using '''G4ParticleGun''' class. There is an option to chose among several '''EM''' and the '''QGSP_BIC_EMY''' physics lists.
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/g4_00_6000e.png
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/g4_00_6000e.png
-
The image shows the water box divided into slices using class '''G4PVReplica'''.  
+
The image shows the water box divided into slices using class '''G4PVReplica'''. Protons are in blue, photons are in green.  
-
== <span style="color:#000080"> Setting up the environment </span> ==  
+
== <span style="color:#000080"> How to run the tutorial </span> ==  
-
; Connect to HEP cluster and create folder ProtonPBFolder in your area
+
; Connect to the HEP cluster and create folder ProtonPBFolder in your area
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
ssh -X username@plus1.hep.ucl.ac.uk  
ssh -X username@plus1.hep.ucl.ac.uk  
-
password: type your password here
+
username@plus1.hep.ucl.ac.uk's password: type your password here
-
 
+
-
cd /home/username/
+
   
   
-
mkdir ProtonPBFolder  
+
[username@plus1 ~]$ mkdir ProtonPBFolder  
-
cd ProtonPBFolder   
+
[username@plus1 ~]$ cd ProtonPBFolder   
</pre>
</pre>
Line 28: Line 26:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
source /unix/pbt/software/dev/bin/pbt-dev.sh   
+
[username@plus1 ProtonPBFolder]$ source /unix/pbt/software/dev/bin/pbt-dev.sh   
</pre>
</pre>
-
 
-
== <span style="color:#000080"> How to get the code </span> ==
 
; Copy the code to your working directory and rename it
; Copy the code to your working directory and rename it
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
cp -r /unix/pbt/tutorials/basic/ProtonPB .
+
[username@plus1 ProtonPBFolder]$ cp -r /unix/pbt/tutorials/basic/ProtonPB .
    
    
-
mv ProtonPB ProtonPB_source
+
[username@plus1 ProtonPBFolder]$ mv ProtonPB ProtonPB_source
</pre>
</pre>
-
 
-
== <span style="color:#000080"> How to run the code </span> ==
 
; Inside /home/username/ProtonPBFolder/ create a directory
; Inside /home/username/ProtonPBFolder/ create a directory
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
mkdir ProtonPB_build   
+
[username@plus1 ProtonPBFolder]$ mkdir ProtonPB_build   
</pre>
</pre>
Line 52: Line 46:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
cd ProtonPB_build  
+
[username@plus1 ProtonPBFolder]$ cd ProtonPB_build  
-
cmake -DGeant4_DIR=/unix/pbt/software/dev /home/username/ProtonPBFolder/ProtonPB_source  
+
[username@plus1 ProtonPB_build]$ cmake -DGeant4_DIR=/unix/pbt/software/dev /home/username/ProtonPBFolder/ProtonPB_source  
-
make   
+
[username@plus1 ProtonPB_build]$ make   
</pre>
</pre>
-
; Run macro proton.mac. The macro generates 6000 events.
+
; Run macro proton.mac
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
./protonPB proton.mac
+
[username@plus1 ProtonPB_build]$ ./protonPB proton.mac
</pre>
</pre>
Line 80: Line 74:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
pico DoseFile.txt
+
[username@plus1 ProtonPB_build]$ pico DoseFile.txt
</pre>
</pre>
   
   
Line 211: Line 205:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
root -l Proton.root
+
[username@plus1 ProtonPB_build]$ root -l Proton.root
-
new TBrowser
+
root [1] new TBrowser
Select ROOT Files and Proton.root
Select ROOT Files and Proton.root
Line 242: Line 236:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
root -l  
+
[username@plus1 ProtonPB_build]$ root -l  
-
.x PlotSimulation.C
+
root [1] .x PlotSimulation.C
</pre>
</pre>
Line 250: Line 244:
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/Simulation1.png   
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/Simulation1.png   
 +
 +
You can also plot the file '''PlotDose.txt''' using MATLAB. Similarly to the previous example first copy the text file to your computer. In the terminal at your computer write:
 +
 +
<pre style="color: #800000; background-color: #dcdcdc">
 +
scp username@plus1.hep.ucl.ac.uk:/home/username/ProtonPBFolder/ProtonPB_build/PlotDose.txt .
 +
</pre>
 +
 +
Then, open MATLAB and follow the procedure:
 +
 +
* Import the file: Chose 'HOME' tab and 'Import Data'.
 +
* In the 'Import Data' window select the 'PlotDose.txt' file choosing the right path.
 +
* In the opened window select the data points in the 'IMPORT' tab. If you like, you can change the name of the variables. For example, 'x' instead of 'VarName1' and 'Dose' instead of 'VarName2'. Then, press 'Import Selection'/'Import Data'. 
 +
* Close the Import Window and in the Command Window type plot(x,Dose). Press Enter.
 +
 +
This plot will be created with added axis labels and a legend:
 +
 +
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/matlab1proton.png
You can also plot the data in '''DoseLongitudinalMesh.txt''' and '''DoseLateralMesh.txt''' which were created using commands '''/score/''' in the macro '''proton.mac'''. The file '''DoseLongitudinalMesh.txt''' will be used later to compare with data from the Clatterbridge Cancer Center. Now, use script '''PlotLateralDoseMesh.C''' to plot the lateral dose distribution.
You can also plot the data in '''DoseLongitudinalMesh.txt''' and '''DoseLateralMesh.txt''' which were created using commands '''/score/''' in the macro '''proton.mac'''. The file '''DoseLongitudinalMesh.txt''' will be used later to compare with data from the Clatterbridge Cancer Center. Now, use script '''PlotLateralDoseMesh.C''' to plot the lateral dose distribution.
Line 255: Line 266:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotLateralDoseMesh.C .
+
[username@plus1 ProtonPB_build]$ cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotLateralDoseMesh.C .
-
root -l  
+
[username@plus1 ProtonPB_build]$ root -l  
-
.x PlotLateralDoseMesh.C
+
root [1] .x PlotLateralDoseMesh.C
</pre>   
</pre>   
Line 266: Line 277:
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/SimulationLateralMesh.png
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/ProtonPB/SimulationLateralMesh.png
-
=== <span style="color:#000080"> Changes in proton.mac </span> ===
+
=== <span style="color:#000080"> Run with different settings </span> ===
You can change the physics process, incident proton energy and number of slices etc. by
You can change the physics process, incident proton energy and number of slices etc. by
Line 272: Line 283:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
pico proton.mac
+
[username@plus1 ProtonPB_build]$ pico proton.mac
</pre>   
</pre>   
Line 433: Line 444:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
./protonPB proton.mac
+
[username@plus1 ProtonPB_build]$ ./protonPB proton.mac
</pre>
</pre>
   
   
Line 439: Line 450:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
make  
+
[username@plus1 ProtonPB_build]$ make  
</pre>
</pre>
Line 452: Line 463:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
./protonPB proton.mac
+
[username@plus1 ProtonPB_build]$ ./protonPB proton.mac
</pre>
</pre>
Line 462: Line 473:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
dawn g4_01.prim
+
[username@plus1 ProtonPB_build]$ dawn g4_01.prim
</pre>
</pre>
Line 486: Line 497:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotData.C .
+
[username@plus1 ProtonPB_build]$ cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotData.C .
-
cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/ClatterbridgeData.txt .
+
[username@plus1 ProtonPB_build]$ cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/ClatterbridgeData.txt .
-
root -l  
+
[username@plus1 ProtonPB_build]$ root -l  
-
.x PlotData.C
+
root [1] .x PlotData.C
</pre>   
</pre>   
Line 505: Line 516:
   
   
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotDataAndSim.C .
+
[username@plus1 ProtonPB_build]$ cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotDataAndSim.C .
-
root -l  
+
[username@plus1 ProtonPB_build]$ root -l  
-
.x PlotDataAndSim.C
+
root [1] .x PlotDataAndSim.C
</pre>   
</pre>   
Line 521: Line 532:
<pre style="color: #800000; background-color: #dcdcdc">
<pre style="color: #800000; background-color: #dcdcdc">
-
cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotDataAndSimMesh.C .
+
[username@plus1 ProtonPB_build]$ cp /home/username/ProtonPBFolder/ProtonPB_source/RootScripts/PlotDataAndSimMesh.C .
-
root -l  
+
[username@plus1 ProtonPB_build]$ root -l  
-
.x PlotDataAndSimMesh.C
+
root [1] .x PlotDataAndSimMesh.C
</pre>   
</pre>   

Latest revision as of 13:36, 10 September 2014

Personal tools