Title: G. Cosmo, S. Guatelli, M.G Pia
1http//cern.ch/geant4/geant4.htmlhttp//www.ge.in
fn.it/geant4/events/salamanca.html
Brachytherapy exercise
- G. Cosmo, S. Guatelli, M.G Pia
- Salamanca, 15-19 July 2002
2Plan of this exercise
- Learn the basics of how to build a simple user
application - Mandatory user classes
- Optional user actions
- Learn the basics of how to use interactive
facilities - User Interface
- Visualisation
- Histogramming
- How well proceed
- Illustrate design and implementation basic
features - Propose a simple exercise on the same topic
- Show the solution
3Basics of user classes
- See lecture on Monday
- Would you like to refresh an overview of Geant4
user classes?
4User requirements (main ones listed only)
The application provides the simulation of dose
distribution of brachytherapic sources in a
phantom
- The user shall be able to change the absorber
material of the phantom - The user shall be able to change interactively
the brachytherapic source - The user shall be able to put sources in
different positions inside the phantom - Low Energy electromagnetic processes should be
available - The user shall be able to calculate the total
absorbed energy in the phantom - 3D distribution in the volume
- 2D distribution in the plane containing the
source - The dose should be collected 1mm voxels
- The user shall be able to define the isodose
curves in the phantom - The user shall be able to visualize the geometry
involved and the trajectories of the particles
5Part 1
- Use case model a brachytherapy seed and a
phantom - Use case model a 192Ir brachytherapy seed
- Use case model a water phantom
- Use case visualise the geometry
- Exercise model a soft tissue phantom
- Exercise select phantom material from the UI
- Exercise model a 125I brachytherapy seed
- Use case model the radioactive source as a
primary generator of monocromatic photons - Exercise model the spectrum of a 125I source
6OOAD
7Implementation
- Exercise Brachy1
- header files in include/.hh, source code in src/
.cc - main in Brachy.cc
- macro initInter.mac
- Classes
- BrachyDetectorConstruction
- BrachyPrimaryGeneratorAction
- BrachyPhysicsList
- BrachyRunAction
- BrachyEventAction
- - BrachyVisManager
8How to run
- Define necessary environment variables
- source setup_brachy.csh
- How to compile and link
- gmake
- How to run
- G4WORKDIR/bin/Linux/Brachy
Default macro initInter.mac
9(No Transcript)
10Run Brachy1
At the idlegt prompt, type help, information
about interactive commands
- It will appear the visualization of the box
- It will appear idlegt (interactive mode)
- type /run/beamOn number of events
- The simulation is executed
- Type exit
OGLIX Immediate visualization
No images saved!
About Visualization
DAWN Interactive panel
images saved
Default visualization driver OGLIX Defined in
InitInter.mac
11Model a 192Ir brachytherapy seed
- Open BrachyDetectorConstruction in the editor
- Follow the guided tour by Susanna
- How the geometry is build
ExpHall world volume
Phantom Box
Capsule of the source
the mother volume is the containing volume!
Iridium core
12(No Transcript)
13More about visualization
How to change driver in initInter.mac
/vis/open OGLIX /vis/open DAWNFILE
/vis/open OGLIX /vis/open DAWNFILE
How to work with DAWN
- How to work with OGLIX
- At the idlegt prompt
- Type help
- Type the number corresponding to /vis/
- Information about visualization commands
- Eg. rotation of the geometry
- magnification
- The interactive panel appears
- devices choose the format
- of the image
- camera choose the geometry
- parameters
- (rotation, magnification...)
-
14Before starting
Documentation http//geant4.web.cern.ch/geant4
click on documentation
click on Users Guide
For Application Developers very useful
!
15Exercise model a soft tissue phantom
element Fractional mass
H 0.104472
C 0.23219
N 0.02488
O 0.630238
Na 0.00113
Mg 0.00013
P 0.00133
S 0.00199
Cl 0.00134
K 0.00199
Ca 0.00023
Fe 0.00005
Zn 0.00003
- Composition of soft tissue material
- (from NIST data base)
-
-
- Guidance
- define necessary elements
- define tissue material
- associate the tissue material to the phantom
- volume
- SolutionBrachy2
16Exercise select phantom material from UI
- Select a water/tissue phantom
- The user shall be able to change interactively
the material of the phantom - Guidance
- create a BrachyDetectorMessenger
- Create a BrachyDetectorMessenger pointer in
BrachyDetectorConstruction - Create the member function SetMaterial in
BrachyDetectorConstruction - Help! Novice example N02
- Solution Brachy3
17ExerciseModel a simplified I-125 brachytherapic
sourcegeometry and materials
- 3 tubs
- Iodium core
- Air
- Titanium capsule tip (box)
- Titanium tube
Iodium core
Iodium core Inner radius 0 Outer radius
0.30mm Half length1.75mm
Titanium tube Outer radius0.40mm Half
length1.84mm
Mean gamma energy 28.45keV
Air Outer radius0.35mm half length1.84mm
Titanium capsule tip Box Side 0.80mm
Change the geometry of the source
in BrachyDetector Construction
18Exercise model a 125I brachytherapy seed
- Guidance
- define necessary elements, materials
- define solids, logical volumes, physical volumes
- suggestion proceed incrementally (i.e. implement
one/few features at a time, compile, verify that
it is OK, add a new feature etc) - Solution Brachy4
- In Brachy4 the initial energy of primary
particles is 28.45 KeV
Pay attention to overlapping volumes the
simulation seems to run but after few events
it stops to work, it seems dead !
19Model a monocromatic photon source
- Open BrachyPrimaryGeneratorAction in the editor
- Follow the guided tour by Susanna
20Exercise model a source spectrum
Energy(keV) Probability
27.4 0.783913
31.4 0.170416
35.5 0.045671
- Description of the spectrum
- Guidance
- Change in the BrachyPrimaryGeneratorAction
- Introduce an array (my array) with 3
cells(corr.3probabilities) in the constructor - In the GeneratePrimaries method
-
-
- Solution Brachy5
To be implemented !
G4UniformRand() returns a number between 0 and 1
G4double randomG4UniformRand() G4double
sum0 G4int i0 while(sumltrandom) sum
myarrayi i ..
Generation of Random numbers
21What you learned today
- The design of a basic user application
- The mandatory user classes
- The optional user classes
- How to describe materials
- How to model a simple geometry
- How to implement a DetectorConstruction
- How to visualise geometry and tracks
- How to control features from the user interface
- How to model the primary generator
- How to implement a UserPrimaryGeneratorAction
22Part 2
- Use case calculate the energy deposit in a
phantom from a brachytherapy seed - Use case generate physics interactions in the
phantom - Exercise select alternative physics processes
- Exercise modify the production thresholds
- Use case collect the energy deposit in the
phantom - Exercise model the hits as consisting of the
energy deposited in each voxel and the
coordinates of the voxel centre - Use case produce a 1-D histogram with the energy
deposited in the phantom - Exercise produce a 2-D histogram with the dose
distribution in the phantom
23(No Transcript)
24Generate physics interactions
- Open BrachyPhysicsList in the editor
- Follow the guided tour by Susanna
25Exercise select alternative processes
- Replace LowEnergy processes with standard ones
- For gamma and e-
- Change the production thresholds to 0.1mm for
all the particles involved - Guidance
- User Guide for Application Developers
- Physics ReferenceManual
- standard processes in geant4/source/processes/elec
tromagnetic/standard/ - Solution Brachy6
26Collect energy deposited in the phantom
Example Brachy7
This is the Geant4/examples/advanced/brachytherapy
- Open BrachyROGeometry, BrachyHit in the editor
- Follow the guided tour by Susanna
27(No Transcript)
28Exercise hits consisting of Edep, x,y,z
- Add Edep
- Associate Edep to the voxel coordinates
- Guidance
- In BrachyEventAction
- Take inspiration from
- Solution Brachy8
i((CHC)h)-gtGetZID() k((CHC)h)-gtGetXI
D()
29Produce a 1-D histogram
- Open BrachyAnalysis, Brachy in the editor
- Follow the guided tour by Susanna
30(No Transcript)
31(No Transcript)
32Exercise add a 2-D histogram
- Produce a 2-D histogram with the dose
distribution in the phantom - Guidance
-
- x, z, Edep in BrachyEventAction
- Edep is the weight
- Introduce 2-D histogram in BrachyAnalysisManager
- Similar implementation as in 1-D histogram
- Solution Brachy9
33What you learned today
- How to select particles, physics processes and
production thresholds - How to implement a PhysicsList
- How to model the detector response
- read-out geometry, hits
- How to produce histograms in your simulation
applications