[Gate-users] Problem with Dose Actor

Mikhail Polkovnikov mikhail.polkovnikov at gmail.com
Thu Dec 25 20:11:04 CET 2014


On 25.12.2014 14:00, gate-users-request at lists.opengatecollaboration.org 
wrote:
> Send Gate-users mailing list submissions to
> 	gate-users at lists.opengatecollaboration.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
> or, via email, send a message with subject or body 'help' to
> 	gate-users-request at lists.opengatecollaboration.org
>
> You can reach the person managing the list at
> 	gate-users-owner at lists.opengatecollaboration.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Gate-users digest..."
>
>
> Today's Topics:
>
>     1. Problem with Dose Actor (Leonid Ivanov)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 25 Dec 2014 14:24:23 +0300
> From: Leonid Ivanov <leonid78.lenya at mail.ru>
> To: gate-users at lists.opengatecollaboration.org
> Subject: [Gate-users] Problem with Dose Actor
> Message-ID: <1419506663.871301065 at f214.i.mail.ru>
> Content-Type: text/plain; charset="utf-8"
>
>   Hello, Gaters! I am simulating CATANA facility (proton therapy of ocular tumours). It is necessary to find dose distribution in water phantom (box). I saw in manual and?
> examples (radiotherapy) for understanding how does it work. But in my macros adding dose actor doesn't result in something good. There is zero dose in whole phantom. I can't understand what am I doing wrong. Please give me advice how can I solve this problem. Thanks in advance.
>
> Here is a part of my macros which is responsible for Physics, Dose Actor and Source.
>
> #=====================================================
> # PHYSICS
> #=====================================================
> /gate/physics/processList Available
> /gate/physics/processList Enabled
> /gate/physics/processList Initialized
> /gate/geometry/setIonisationPotential Water 75 eV
> /gate/geometry/setIonisationPotential Air 85.7 eV
> /gate/geometry/setIonisationPotential PMMA 74 eV
> /control/execute physicslist_EM_std.mac
> /control/execute physicslist_HAD_std.mac
> /gate/physics/init
> /gate/physics/Gamma/SetCutInRegion world 1 mm
> /gate/physics/Electron/SetCutInRegion world 1 mm
> /gate/physics/Positron/SetCutInRegion world 1 mm
> /gate/physics/Gamma/SetCutInRegion Phantom 0.1 mm
> /gate/physics/Electron/SetCutInRegion Phantom 0.1 mm
> /gate/physics/Positron/SetCutInRegion Phantom 0.1 mm
> #/gate/physics/SetMaxStepSizeInRegion world 1 mm
> /gate/physics/SetMaxStepSizeInRegion Phantom 0.01 mm
> /gate/physics/ActivateStepLimiter proton
> /gate/physics/displayCuts
> #/gate/physics/print physics.txt
> #=====================================================
> # DETECTORS
> #=====================================================
> /gate/actor/addActor DoseActor doseDistribution
> /gate/actor/doseDistribution/save IDD-proton.txt
> /gate/actor/doseDistribution/attachTo Phantom
> /gate/actor/doseDistribution/stepHitType random
> /gate/actor/doseDistribution/setPosition 0 0 +2.262 m
> #/gate/actor/doseDistribution/setResolution 1 1 400
> #/gate/actor/doseDistribution/setSize 10 10 10 cm
> /gate/actor/doseDistribution/setVoxelSize 2 2 2 mm
> /gate/actor/doseDistribution/saveEveryNSeconds 60
> /gate/actor/doseDistribution/enableEdep false
> /gate/actor/doseDistribution/enableUncertaintyEdep false
> /gate/actor/doseDistribution/enableDose true
> /gate/actor/doseDistribution/enableUncertaintyDose false
> /gate/actor/doseDistribution/enableNumberOfHits false
> #/gate/actor/addActor SimulationStatisticActor stat
> #/gate/actor/stat/save stat-proton.txt
> #/gate/actor/stat/saveEveryNSeconds 60
>
> # SOURCE PBS
> /gate/source/addSource PBS PencilBeam
> #activity
> /gate/source/PBS/setActivity 1000000 becquerel
> #particle type
> /gate/source/PBS/setParticleType proton
> #energy spectrum
> /gate/source/PBS/setEnergy 62 MeV
> /gate/source/PBS/setSigmaEnergy 0.4 MeV
> #position
> /gate/source/PBS/setPosition 0 0 -3.2 m
> # spot size
> /gate/source/PBS/setSigmaX 4 mm
> /gate/source/PBS/setSigmaY 4 mm
> #divergence
> /gate/source/PBS/setSigmaTheta 3 mrad
> /gate/source/PBS/setSigmaPhi 3 mrad
> #emittance
> /gate/source/PBS/setEllipseXThetaEmittance 30 mm*mrad
> /gate/source/PBS/setEllipseYPhiEmittance 30 mm*mrad
> #positive-> converging beam; negative diverging beam
> /gate/source/PBS/setEllipseXThetaRotationNorm negative
> /gate/source/PBS/setEllipseYPhiRotationNorm negative
> #beam direction rotation
> #/gate/source/PBS/setRotationAxis 0 0 1
> #/gate/source/PBS/setRotationAngle 180 deg And here is a result of Dose Actor's working:
>
> ####################################
> # Matrix Size= (600,600,500)
> # Resol = (300,300,250)
> # VoxelSize = (2,2,2)
> # nbVal = 22500000
> ####################################
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 and so on (many zeros)
Dear Leonid,

If you are using Gate 7.0 here is a working example for Bragg Peak:

Many things have been changed since geant4.10 release and from Gate 6.9  
(geant4.9.6)  to Gate 7.0 (geant4.10.0).
For proper physics lists i strongly suggest to read  how they work in 
geant4.10.0 nowadays.

And if you want to use pencil beam instead of general particle source it 
can be done easily.

If you have any problems with this example, please ask.


#=====================================================
# VISUALISATION
#=====================================================

#/control/execute visu.mac
#/control/execute verbose.mac
/vis/disable

#=====================================================
# GEOMETRY
#=====================================================

/gate/geometry/setMaterialDatabase GateMaterials.db

# World
/gate/world/geometry/setXLength 20 cm
/gate/world/geometry/setYLength 40 cm
/gate/world/geometry/setZLength 80 cm
/gate/world/setMaterial Vacuum

# Global Water Box
/gate/world/daughters/name             mainbox1
/gate/world/daughters/insert           box
/gate/mainbox1/geometry/setXLength 30 cm
/gate/mainbox1/geometry/setYLength 30 cm
/gate/mainbox1/geometry/setZLength 40 cm
/gate/mainbox1/placement/setTranslation 0.0 0.0 0 cm
/gate/mainbox1/setMaterial Water
/gate/mainbox1/vis/forceWireframe
/gate/mainbox1/vis/setVisible 1
/gate/mainbox1/vis/setColor blue
/vis/viewer/zoom 1

#=====================================================
# PHYSICS
#=====================================================

/gate/physics/addPhysicsList FTFP_BERT

# or
#/gate/physics/addPhysicsList QGSP_BIC

#=====================================
# Options
#=====================================

/gate/physics/Gamma/SetCutInRegion      world 1 mm
/gate/physics/Electron/SetCutInRegion   world 1 mm
/gate/physics/Positron/SetCutInRegion   world 1 mm

/gate/physics/Gamma/SetCutInRegion      mainbox1 0.5 mm
/gate/physics/Electron/SetCutInRegion   mainbox1 0.5 mm
/gate/physics/Positron/SetCutInRegion   mainbox1 0.5 mm

/gate/physics/SetMaxStepSizeInRegion world 1 mm

#=====================================================
# MATRIX FOR DOSE MAP OUTPUT
#=====================================================

/gate/actor/addActor DoseActor  doseDistribution
/gate/actor/doseDistribution/save dose-proton.txt
/gate/actor/doseDistribution/attachTo              mainbox1
/gate/actor/doseDistribution/stepHitType           random
/gate/actor/doseDistribution/setPosition           0 0 0 cm
/gate/actor/doseDistribution/setResolution         1 1 400
/gate/actor/doseDistribution/saveEveryNSeconds     60
/gate/actor/doseDistribution/enableEdep            false
/gate/actor/doseDistribution/enableUncertaintyEdep false
/gate/actor/doseDistribution/enableDose            true
/gate/actor/doseDistribution/enableUncertaintyDose false
/gate/actor/doseDistribution/enableNumberOfHits    false

/gate/actor/addActor               SimulationStatisticActor stat
/gate/actor/stat/save              stat-proton.txt
/gate/actor/stat/saveEveryNSeconds 60

#=====================================================
# BEAMS
#=====================================================

/gate/source/addSource mybeam gps

/gate/source/mybeam/gps/particle proton
/gate/source/mybeam/gps/pos/type Beam
/gate/source/mybeam/gps/pos/rot1 0 1 0
/gate/source/mybeam/gps/pos/rot2 1 0 0
/gate/source/mybeam/gps/pos/shape Circle
/gate/source/mybeam/gps/pos/centre 0 0 -40 cm
/gate/source/mybeam/gps/pos/sigma_x 2 mm
/gate/source/mybeam/gps/pos/sigma_y 2 mm
/gate/source/mybeam/gps/ene/mono 200 MeV
/gate/source/mybeam/gps/ene/type Mono
#/gate/source/mybeam/gps/ene/type Gauss
#/gate/source/mybeam/gps/ene/sigma 10.0 MeV
/gate/source/mybeam/gps/direction 0 0 1

#=====================================================
# INITIALISATION
#=====================================================

/gate/run/initialize

#=====================================================
# START BEAMS
#=====================================================

# JamesRandom MersenneTwister
/gate/random/setEngineName MersenneTwister
/gate/random/setEngineSeed 1021

# /gate/random/verbose 1
# /gate/source/verbose 0

/gate/application/noGlobalOutput
/gate/application/setTotalNumberOfPrimaries 50000
/gate/application/start

exit


Best regards,
Mikhail



More information about the Gate-users mailing list