330 likes | 349 Views
http://cern.ch/geant4/geant4.html http://www.ge.infn.it/geant4/events/salamanca.html. Brachytherapy exercise. G. Cosmo, S. Guatelli, M.G Pia Salamanca, 15-19 July 2002. Plan of this exercise. Learn the basics of how to build a simple user application Mandatory user classes
E N D
http://cern.ch/geant4/geant4.htmlhttp://www.ge.infn.it/geant4/events/salamanca.htmlhttp://cern.ch/geant4/geant4.htmlhttp://www.ge.infn.it/geant4/events/salamanca.html Brachytherapy exercise G. Cosmo, S. Guatelli, M.G Pia Salamanca, 15-19 July 2002
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
Basics of user classes • See lecture on Monday • Would you like to refresh an overview of Geant4 user classes?
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 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
Part 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
Implementation • 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
How 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
today tomorrow
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 InitInter.mac
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
More 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 |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...)
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 • Solution:Brachy2
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 :Brachy3
Exercise:Model a simplifiedI-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 length:1.75mm Titanium tube: Outer radius:0.40mm Half length:1.84mm Mean gamma energy :28.45keV Air: Outer radius:0.35mm half length:1.84mm Titanium capsule tip: Box Side :0.80mm Change the geometry of the source in BrachyDetector Construction
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 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 !
Model a monocromatic photon source • Open BrachyPrimaryGeneratorAction in the editor • Follow the guided tour by Susanna
Exercise: model a source spectrum • 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 random=G4UniformRand(); G4double sum=0; G4int i=0; while(sum<random) {sum +=myarray[i]; i++;} ……….. Generation of Random numbers
What 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 visualisegeometry and tracks • How to control features from the user interface • How to model the primary generator • How to implement a UserPrimaryGeneratorAction
Part 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
Generate physics interactions • Open BrachyPhysicsList in the editor • Follow the guided tour by Susanna
Exercise: 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/electromagnetic/standard/ • Solution Brachy6
Collect energy deposited in the phantom • Open BrachyROGeometry, BrachyHit… in the editor • Follow the guided tour by Susanna Example :Brachy7 This is the Geant4/examples/advanced/brachytherapy
Exercise: 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])->GetZID(); k=((*CHC)[h])->GetXID();
Produce a 1-D histogram • Open BrachyAnalysis, Brachy… in the editor • Follow the guided tour by Susanna
Exercise: 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
What 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