270 likes | 525 Views
http://cern.ch/geant4/geant4.html http://www.ge.infn.it/geant4. Brachytherapy exercise. S. Guatelli, CPS Innovations, Knoxville, 13 th -21 st January 2004. Plan of this exercise. Learn the basics of how to build a simple user application Mandatory user classes Optional user actions
E N D
http://cern.ch/geant4/geant4.htmlhttp://www.ge.infn.it/geant4http://cern.ch/geant4/geant4.htmlhttp://www.ge.infn.it/geant4 Brachytherapy exercise S. Guatelli, CPS Innovations, Knoxville, 13th -21st January 2004
Plan 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 we’ll proceed • Illustrate design and implementation basic features • Propose a simple exercise on the same topic • Show the solution
User 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 define a radioactive source in a phantom • The user shall be able to define initial position, direction and energy spectra of primary particles • The user shall be able to change the absorber material of the phantom • The user shall be able to define electrons, positrons, photons • The user shall be able to define the electromagnetic processes involved • 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 in 1. mm wide voxels • The user shall be able to visualise the geometry involved and the trajectories of the particles
Implementation • Exercise Brachy • header files in include/*.hh, source code in src/ *.cc • main in Brachy.cc • macro: VisualisationMacro.mac • Classes • BrachyDetectorConstruction • BrachyPrimaryGeneratorAction • BrachyPhysicsList • BrachyRunAction • BrachyEventAction • BrachyVisManager • ….
How to run • Define necessary environment variables • source setup.csh • Define analysis • setenv G4ANALYSIS_USE 1 • How to compile and link • gmake • How to run • $G4WORKDIR/bin/Linux/Brachy Default macro :VisualisationMacro.mac
Part 1 Use case: model a radioactive source in 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 monochromatic photons • Exercise: model the spectrum of a 125I source
Run Brachy1 At the |idle> prompt, type help, information about interactive commands • It will appear: the visualization of the box • It will appear: |idle> (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 VisualisationMacro.mac
More about visualisation How to change driver: in VisualisationMacro.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 |idle> 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...)
Model 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
Before starting Documentation:http://geant4.web.cern.ch/geant4 click on documentation click on User’s Guide: For Application Developers very useful !
Exercise: model a soft tissue phantom • Composition of soft tissue material (from NIST data base) • Guidance • define necessary elements • define tissue material • associate the tissue material to the phantom volume Start: brachyExe1
Exercise: 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 : brachyExe2
Model the source geometry Model a I-125 brachytherapic sourcein brachyExe2 Precise geometry and material model of any type of source Titanium capsule tips Titanium tube Iodium core Golden marker Air Mean gamma energy :28.45keV Titanium tube: Outer radius:0.40mm Half length:1.84mm Iodium core: Inner radius :0 Outer radius: 0.30mm Half length:1.75mm Golden marker: Inner radius :0 Outer radius: 0.085 mm Half length:1.75mm Air: Outer radius:0.35mm half length:1.84mm Titanium capsule tip: Semisphere radius:0.40mm
Exercise: 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 brachyExe3 Pay attention to overlapping volumes!
Exercise: model a source spectrum • Description of the spectrum • Guidance • In brachyExe3 • Change in the BrachyPrimaryGeneratorAction • Solution brachyExe4
Part 2 Use case: calculate the energy deposit in a phantom due to a radioactive source • 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
Exercise: select alternative e.m. processes In brachyExe4… • Replace LowEnergy processes with standard ones • For gamma and e- • Change the production thresholds to 0.2 mm for all the particles involved • Guidance • Novice Example N02 • User Guide: for Application Developers • Physics ReferenceManual • Solution brachyExe5
Exercise: hits consisting of Edep, x,y,z • Add Edep • Associate Edep to the voxel coordinates • Guidance • In brachyExe5 • In BrachyEventAction • Take inspiration from • Solution brachyExe6 i=((*CHC)[h])->GetZID(); k=((*CHC)[h])->GetXID(); …….
Analysis How to store information in 1D histograms, in 2D histograms and ntuples
Exercise: add a 2-D histogram • Produce a 2-D histogram with the dose distribution in the phantom • Guidance • In brachyExe6 • Complete the method FillHistogramWithEnergy(…) in BrachyAnalysisManager • Similar implementation as in 1-D histogram • Store the information (x, z, Edep) in the 2D histogram in BrachyEventAction • Edep is the weight • Solution brachyExe7