[Gate-users] Gate is Erroneously Discarding Some Compton Scattered Photons
Simon Stute
gate.stute at gmail.com
Tue Apr 24 10:29:24 CEST 2012
Hi,
Don't worry, Gate only do what you tell it to do (generally) !
Your adder module is applied at the block level, so your singles are build
at the block level too.
Then your energy blurring and thres/upholder too.
That explains why you count less at the block boundaries.
Because events which scattered in a crystal near the boundaries can then
escape to the other block and be discarded by your thres/upholders.
That also explains why when you set only one axial block, you do not see
this problem, and also when you pick up only photons that did not scatter.
Cheers,
Simon
On Mon, Apr 23, 2012 at 9:33 PM, Nicholas Johnson <
nicholas.vc.johnson at gmail.com> wrote:
> 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
>
> _______________________________________________
> Gate-users mailing list
> Gate-users at lists.opengatecollaboration.org
> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
>
More information about the Gate-users
mailing list