[Gate-users] Gate is Erroneously Discarding Some Compton Scattered Photons
Nicholas Johnson
nicholas.vc.johnson at gmail.com
Mon Apr 23 21:33:02 CEST 2012
Hi,
I'm running a PET Simulation in Gate v6.1 with Geant4 9.04 patch 1. The
crystal detectors are organized into 64 rings that are regularly spaced in
the axial direction. The crystals are also organized into blocks, but this
is only for organization. That is, the block descriptions do not include
any shielding between blocks, or anything like that.
Then, after running the simulation (with a large uniform activity phantom
in the gantry), I plotted a 2d histogram of the position of detection
events (i.e. energy deposits within crystals), and I noticed that the block
boundaries are still clearly visible in the axial direction (attachment
histXZ.jpg contains this histogram - horizontal is axial). That is,
crystals on the boundary of blocks are somehow less sensitive in the
simulation, even though block boundary is a totally artificial construct.
Based on looking at detected events, and the scanner description files,
I've methodically confirmed that the scanner geometry is being modeled
exactly as I have described it in the Gate macro file.
So I generated another histogram, but this time, only looked at at
detection events from gamma ray photons that had not undergone
any Compton scattering (see no compton.jpg attachment). In this histogram,
the gaps between blocks in the axial direction, are no longer visible.
So I defined the scanner so that the block volumes spanned along the entire
length of the scanner in the axial direction. I cannot easily define the
scanner so that a single block volume contains all of the detection
crystals. In any case, after repeating the simulation, the erroneous gaps
between blocks in the axial direction are no longer there (see unified
blocks.jpg).
I assume this means that Gate is still discarding gamma ray photons that
scatter in one block, and then travel over to an adjacent block. Probably
won't have a huge effect on the results of my simulation, but at the same
time, I feel that this is something that should be modeled correctly.
My question is, is there something I'm missing in my gate description file,
or is this a bug?
Thanks in advance for your help!
Cheers,
Nick Johnson
# *********************************************************************
# * DISCLAIMER *
# * *
# * Neither the authors of this software system, nor their employing *
# * institutes, nor the agencies providing financial support for this *
# * work make any representation or warranty, express or implied, *
# * regarding this software system or assume any liability for its *
# * use. *
# * *
# * This code implementation is the intellectual property of the *
# * OpenGATE collaboration. *
# * By copying, distributing or modifying the Program (or any work *
# * based on the Program) you indicate your acceptance of this *
# * statement, and all its terms. *
# *********************************************************************
#
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# P E T S C A N N E R G E O M E T R Y W I T H E C A T #
# S Y S T E M D E F I N I T I O N A N D E C A T 7 #
# F O R M A T O U T P U T #
# #
# Y O U N E E D T O I N S T A L L #
# T H E E C A T 7 L I B R A R Y #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
###############################################################
# #
# #
# D E F I N E Y O U R P E T S C A N N E R A N D #
# #
# Y O U R C O M P L E T E G A T E S I M U L A T I O N #
# #
# #
###############################################################
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# R U N T H E V I S U A L I S A T I O N A N D #
# C O N S T R U C T Y O U R E X P E R I M E N T A L A R E A #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
#=====================================================
# VISUALISATION
#=====================================================
/vis/disable
#/vis/open OGLSX
#/vis/viewer/set/viewpointThetaPhi 60 60
#/vis/viewer/zoom 6.0
#/vis/drawVolume
#/tracking/storeTrajectory 1
#/vis/scene/add/trajectories
#/vis/scene/endOfEventAction accumulate
/control/execute Verbose.mac
#=====================================================
# GEOMETRY
#=====================================================
/gate/geometry/setMaterialDatabase ./GateMaterials.db
#
# W O R L D
#
/gate/world/geometry/setXLength 70. cm
/gate/world/geometry/setYLength 70. cm
/gate/world/geometry/setZLength 70. cm
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# D E F I N I T I O N A N D D E S C R I T I O N #
# O F Y O U R P E T D E V I C E #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# Gantry should be named ecat see p 55. (should include tunnel)
/gate/world/daughters/name ecat
/gate/world/daughters/insert cylinder
/gate/ecat/placement/setTranslation 0.0 0.0 0.0 cm
/gate/ecat/geometry/setRmax 380. mm
/gate/ecat/geometry/setRmin 280. mm
/gate/ecat/geometry/setHeight 30. cm
/gate/ecat/setMaterial Air
/gate/ecat/vis/forceWireframe
/gate/ecat/vis/setColor white
/gate/ecat/vis/setVisible 1
#/vis/viewer/update
# tunnel
#/control/execute tunnel.mac
# BLOCK 26.8 mm (3.3+20+3.5)
# R_block= 188 - 3.3 mm front + 13.4 mm => R= 198.1
# include .9mm RTV2+2.4mm Lexan in front and 3.5 mm Glass behind LSO
#
/gate/ecat/daughters/name block
/gate/ecat/daughters/insert box
/gate/block/geometry/setXLength 26.8 mm
/gate/block/geometry/setYLength 32.25 mm
/gate/block/geometry/setZLength 258.0 mm
/gate/block/placement/setTranslation 328. 0. 0. mm
/gate/block/setMaterial Air
#/gate/block/vis/forceWireframe
#/gate/block/vis/setColor white
#/gate/block/vis/setVisible 1
#/vis/viewer/update
/gate/block/daughters/name lightguide
/gate/block/daughters/insert box
/gate/lightguide/placement/setTranslation 11.65 0.0 0.0 mm
/gate/lightguide/geometry/setXLength 3.5 mm
/gate/lightguide/geometry/setYLength 32.25 mm
/gate/lightguide/geometry/setZLength 258.0 mm
/gate/lightguide/setMaterial Glass
#/gate/lightguide/vis/setColor blue
#/gate/lightguide/vis/setVisible 1
#/vis/viewer/update
/gate/block/daughters/name filler
/gate/block/daughters/insert box
/gate/filler/placement/setTranslation -10.55 0.0 0.0 mm
/gate/filler/geometry/setXLength 0.9 mm
/gate/filler/geometry/setYLength 32.25 mm
/gate/filler/geometry/setZLength 258.0 mm
/gate/filler/setMaterial RTV2
#/gate/filler/vis/setColor green
#/vis/viewer/update
/gate/block/daughters/name cap
/gate/block/daughters/insert box
/gate/cap/placement/setTranslation -12.20 0.0 0.0 mm
/gate/cap/geometry/setXLength 2.4 mm
/gate/cap/geometry/setYLength 32.25 mm
/gate/cap/geometry/setZLength 258.0 mm
/gate/cap/setMaterial Lexan
#/gate/cap/vis/setColor red
#/vis/viewer/update
# CRYSTALS IN THE BLOCK
/gate/block/daughters/name crystal
/gate/block/daughters/insert box
/gate/crystal/placement/setTranslation -0.1 0.0 0.0 mm
/gate/crystal/geometry/setXLength 20.0 mm
/gate/crystal/geometry/setYLength 4.00 mm
/gate/crystal/geometry/setZLength 4.00 mm
/gate/crystal/setMaterial LSO
#/gate/crystal/vis/setColor yellow
#/vis/viewer/update
# REPEAT CRYSTAL 2.5 mm pitch
#
/gate/crystal/repeaters/insert cubicArray
/gate/crystal/cubicArray/setRepeatNumberX 1
/gate/crystal/cubicArray/setRepeatNumberY 8
/gate/crystal/cubicArray/setRepeatNumberZ 64
/gate/crystal/cubicArray/setRepeatVector 0. 4.03125 4.03125 mm
#/vis/viewer/update
# REPEAT BLOCK note initial rotation 360/64 deg
# transaxial gap
# axially gap should 1 crystal
#/vis/viewer/set/viewpointThetaPhi 90 7.5
#/vis/viewer/panTo 0 0 cm
#/vis/viewer/zoomTo 15
#/gate/lightguide/vis/setVisible 0
#
/gate/block/repeaters/insert ring
# at 12:00 we are in the middle of a block
#/gate/block/ring/setFirstAngle 3.21428571 deg
/gate/block/ring/setRepeatNumber 56
#/vis/viewer/update
#
#/vis/viewer/set/viewpointThetaPhi 0 90
#/vis/viewer/zoomTo 1.2
#/vis/viewer/panTo 0 0 cm
# frontal on 1 block to see the tomographic gaps
/gate/lightguide/vis/setVisible 1
#/vis/viewer/panTo 18 0 cm
#/vis/viewer/set/viewpointThetaPhi 0 0
#/vis/viewer/zoomTo 10
#
# restore perspective view
#/vis/viewer/set/viewpointThetaPhi 30 20
#/vis/viewer/zoomTo 1.2
#/vis/viewer/panTo 0 0 cm
#/gate/ecat/vis/setVisible 0
# A T T A C H S Y S T E M
/gate/systems/ecat/block/attach block
/gate/systems/ecat/crystal/attach crystal
# A T T A C H C R Y S T A L SD
/gate/crystal/attachCrystalSD
# P H A N T O M
/gate/world/daughters/name Cylinder
/gate/world/daughters/insert cylinder
/gate/Cylinder/geometry/setRmax 13. cm
/gate/Cylinder/geometry/setRmin 0. cm
/gate/Cylinder/geometry/setHeight 60.0 cm
/gate/Cylinder/placement/setTranslation 0. 0. 0. cm
/gate/Cylinder/setMaterial Vacuum
#/gate/Cylinder/vis/setColor blue
#/gate/Cylinder/vis/forceSolid
# scoring structures
/gate/Cylinder/attachPhantomSD
#/gate/tunnel/attachPhantomSD
#/gate/screen/attachPhantomSD
#/gate/foam/attachPhantomSD
#/gate/skin/attachPhantomSD
#/gate/bed/attachPhantomSD
#/gate/antenna/attachPhantomSD
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# D E F I N I T I O N A N D D E S C R I T I O N #
# O F Y O U R P H A N T O M #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
/gate/source/addSource F18CylinderSource
/gate/source/F18CylinderSource/setActivity 100000. becquerel
/gate/source/F18CylinderSource/gps/particle gamma
/gate/source/F18CylinderSource/setType backtoback
/gate/source/F18CylinderSource/gps/energytype Mono
/gate/source/F18CylinderSource/gps/monoenergy 0.511 MeV
/gate/source/F18CylinderSource/gps/type Volume
/gate/source/F18CylinderSource/gps/shape Cylinder
/gate/source/F18CylinderSource/gps/radius 30 cm
/gate/source/F18CylinderSource/gps/halfz 13 cm
/gate/source/F18CylinderSource/gps/angtype iso
/gate/source/F18CylinderSource/gps/centre 0.0 0.0 0. cm
#/gate/source/list
#/control/execute NCATAct_FDG.mac
#/control/execute NCATAtt.mac
#/gate/ncat_pha/attachPhantomSD
#=====================================================
# PHYSICS
#=====================================================
/gate/physics/addProcess PhotoElectric
#/gate/physics/processes/PhotoElectric/setModel StandardModel
/gate/physics/processes/PhotoElectric/setModel PenelopeModel
/gate/physics/addProcess Compton
#/gate/physics/processes/Compton/setModel StandardModel
/gate/physics/processes/Compton/setModel PenelopeModel
/gate/physics/addProcess RayleighScattering
/gate/physics/processes/RayleighScattering/setModel PenelopeModel
/gate/physics/addProcess ElectronIonisation
#/gate/physics/processes/ElectronIonisation/setModel StandardModel e-
#/gate/physics/processes/ElectronIonisation/setModel StandardModel e+
/gate/physics/processes/ElectronIonisation/setModel PenelopeModel
/gate/physics/addProcess Bremsstrahlung
#/gate/physics/processes/Bremsstrahlung/setModel StandardModel e-
#/gate/physics/processes/Bremsstrahlung/setModel StandardModel e+
/gate/physics/processes/Bremsstrahlung/setModel PenelopeModel
/gate/physics/addProcess PositronAnnihilation
#/gate/physics/addProcess MultipleScattering e+
#/gate/physics/addProcess MultipleScattering e-
/gate/physics/processList Enabled
/gate/physics/processList Initialized
#=====================================================
# CUTS
#=====================================================
/gate/physics/Gamma/SetCutInRegion crystal 1.0 cm
/gate/physics/Electron/SetCutInRegion crystal 1.0 cm
/gate/physics/Positron/SetCutInRegion crystal 1.0 cm
#/gate/physics/Gamma/SetCutInRegion ncat_pha 0.1 mm
#/gate/physics/Electron/SetCutInRegion ncat_pha 0.1 mm
#/gate/physics/Positron/SetCutInRegion ncat_pha 0.1 mm
#/gate/physics/SetMaxStepSizeInRegion ncat_pha 0.01 mm
#=====================================================
# INITIALISATION
#=====================================================
/gate/run/initialize
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# D E F I N I T I O N O F Y O U R A C Q U I S I T I O N #
# D I G I T I Z E R & C O I N C I D E N C E S H O R T E R #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# A D D E R
#gate/digitizer/Singles/insert adder
# R E A D O U T
/gate/digitizer/Singles/insert readout
/gate/digitizer/Singles/readout/setDepth 1
# E N E R G Y B L U R R I N G
/gate/digitizer/Singles/insert blurring
#/gate/digitizer/Singles/blurring/setResolution 0.115
/gate/digitizer/Singles/blurring/setResolution 0.
/gate/digitizer/Singles/blurring/setEnergyOfReference 511. keV
# E N E R G Y C U T
/gate/digitizer/Singles/insert thresholder
#/gate/digitizer/Singles/thresholder/setThreshold 435. keV
#/gate/digitizer/Singles/thresholder/setThreshold 350. keV
/gate/digitizer/Singles/thresholder/setThreshold 440. keV
/gate/digitizer/Singles/insert upholder
/gate/digitizer/Singles/upholder/setUphold 580. keV
# D E A D T I M E
#/gate/digitizer/Singles/insert deadtime
#/gate/digitizer/Singles/deadtime/setDeadTime 3000000. ps
#/gate/digitizer/Singles/deadtime/setMode paralysable
#/gate/digitizer/Singles/deadtime/chooseDTVolume block
/gate/digitizer/Singles/insert timeResolution
/gate/digitizer/Singles/timeResolution/setTimeResolution 0. ns
# C O I N C I S O R T E R
/gate/digitizer/Coincidences/setWindow 10. ns
/gate/digitizer/Coincidences/setOffset 0. ns
/gate/digitizer/Coincidences/describe
/gate/digitizer/name delay
/gate/digitizer/insert coincidenceSorter
/gate/digitizer/delay/setWindow 10. ns
/gate/digitizer/delay/setOffset 500. ns
/gate/digitizer/delay/describe
#/gate/digitizer/name finalCoinc
#/gate/digitizer/insert coincidenceChain
#/gate/digitizer/finalCoinc/addInputName delay
#/gate/digitizer/finalCoinc/addInputName Coincidences
#/gate/digitizer/finalCoinc/usePriority true
#/gate/digitizer/finalCoinc/describe
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# D E F I N I T I O N O F #
# Y O U R O U T P U T F I L E #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# R A N D O M
# JamesRandom Ranlux64 MersenneTwister
/gate/random/setEngineName MersenneTwister
#/gate/random/setEngineSeed default
#/gate/random/setEngineSeed auto
/gate/random/setEngineSeed 123456789
#/gate/random/setEngineSeed default
#/gate/random/resetEngineFrom fileName
/gate/random/verbose 1
# S E T U P - R O O T F I L E
/gate/output/root/enable
/gate/output/root/setFileName NormFile
#/gate/output/root/setRootSinglesAdderFlag 0
#/gate/output/root/setRootSinglesReadoutFlag 0
/gate/output/root/setRootHitFlag 0
/gate/output/root/setRootSinglesFlag 0
/gate/output/root/setRootCoincidencesFlag 1
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# D E F I N I T I O N O F #
# Y O U R V E R B O S I T Y L E V E L #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
/control/execute Verbose.mac
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
# #
# S T A R T A C Q U I S I T I O N #
# T I M E P A R A M E T E R S #
# #
#-------------------oooooOOOOO00000OOOOOooooo---------------------#
#
# EXPERIMENT
#
/gate/application/setTimeSlice 1 s
/gate/application/setTimeStart 0. s
/gate/application/setTimeStop 10 s
#
# LET'S RUN THE SIMULATION!
#
/gate/application/startDAQ
-------------- next part --------------
A non-text attachment was scrubbed...
Name: histXZ.jpg
Type: image/jpeg
Size: 21113 bytes
Desc: not available
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20120423/5d6cd37e/attachment-0003.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: no compton.jpg
Type: image/jpeg
Size: 39604 bytes
Desc: not available
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20120423/5d6cd37e/attachment-0004.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unified blocks.jpg
Type: image/jpeg
Size: 35942 bytes
Desc: not available
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20120423/5d6cd37e/attachment-0005.jpg>
More information about the Gate-users
mailing list