[gate-users] Re: gate-users Digest, Vol 16, Issue 25

Sebastien JAN jan at shfj.cea.fr
Mon Jul 25 13:56:50 CEST 2005


Hi Christian,

Could you check the distributions (with root or ASCII output) of 
globalPosX ; globalPosY ; globalPosZ for the 2 following configurations:

1/ /gate/digitizer/Singles/spblurring/setSpresolution 0.0
2/ /gate/digitizer/Singles/spblurring/setSpresolution 10.0

let me know if you find some differences in your output according to the 
spatial blurring

seb



Christian Wietholt a écrit:
> Hi Sebastien, 
> 
> Thank you so much for your reply and offering your help. I still could not 
> figure out how to get the digitizer blurring to work. I am already wondering 
> if the digitizer blurring is enabled in the interfile output function, or 
> wether I will have to use the singles.dat file and the supplied C programs to 
> generate the correct projection images. 
> 
> Please find attached to this email my most current version of the macro file. 
> 
> Thanks again, 
> 
> Christian
> 
> 
> 
> On Monday 25 July 2005 18:02, gate-users-request at lphe1pet1.epfl.ch wrote:
> 
>>Send gate-users mailing list submissions to
>>	gate-users at lphe1pet1.epfl.ch
>>
>>To subscribe or unsubscribe via the World Wide Web, visit
>>	http://lphe1pet1.epfl.ch/mailman/listinfo/gate-users
>>
>>Please use the GATE's site webmaster e-mail to  reach the person
>>managing the list.
>>
>>
>>Today's Topics:
>>
>>   1. Re: SPblurring (Sebastien JAN)
>>
>>
>>----------------------------------------------------------------------
>>
>>Message: 1
>>Date: Mon, 25 Jul 2005 11:39:55 +0200
>>From: Sebastien JAN <jan at shfj.cea.fr>
>>Subject: Re: [gate-users] SPblurring
>>To: GATE feedback and helpline for Users
>>	<gate-users at lphe1pet1.epfl.ch>
>>Message-ID: <42E4B36B.3080306 at shfj.cea.fr>
>>Content-Type: text/plain; charset=iso-8859-1; format=flowed
>>
>>Hi ,
>>
>>Can you send me your macro please ?
>>
>>seb
>>
>>Christian Wietholt a écrit:
>>
>>>Dear Gate Users,
>>>
>>>After I submitted my question about SPblurring, I realized that
>>>I should first initialize and then set up the detector. I did so, and
>>>the Gate ouput on the command shell was completely different,
>>>but still no detector spatial blurr in the projection images. What
>>>am I doing wrong? Anybody has a suggestion what I could try
>>>next?
>>>
>>>Christian
>>>_______________________________________________
>>>gate-users mailing list
>>>gate-users at lphe1pet1.epfl.ch
>>>http://lphe1pet1.epfl.ch/mailman/listinfo/gate-users
>>
>>------------------------------
>>
>>_______________________________________________
>>gate-users mailing list
>>gate-users at lphe1pet1.epfl.ch
>>http://lphe1pet1.epfl.ch/mailman/listinfo/gate-users
>>
>>End of gate-users Digest, Vol 16, Issue 25
>>*****************************************
> 
> *
> 
> 
> ------------------------------------------------------------------------
> 
> #############################################
> # V I S U A L I S A T I O N
> /control/execute visu.mac
> 
> /tracking/storeTrajectory 1
> /gate/geometry/enableAutoUpdate
> 
> #############################################
> # V E R B O S I T Y
> /gate/output/verbose 2
> 
> #############################################
> # W O R L D
> # Define the world dimensions
> /gate/world/geometry/setXLength 1000 mm
> /gate/world/geometry/setYLength 1000 mm
> /gate/world/geometry/setZLength 1000 mm
> 
> #############################################
> # S C A N N E R   H E A D 
> # Create a new box representing the main 
> # head-volume SPECThead is the name of the 
> # predefined SPECT system Create the SPECT 
> # system, which will yield an Interfile output 
> # of projection data
> /gate/world/daughters/name SPECThead
> /gate/world/daughters/insert box
> 
> # Define the dimensions of the main volume
> /gate/SPECThead/geometry/setXLength 300. mm
> /gate/SPECThead/geometry/setYLength 300. mm
> /gate/SPECThead/geometry/setZLength 300. mm
> 
> # Define the position of the main volume
> # Move the head 9 cm away from the Z axis, 
> # which is the rotation axis and the 
> # replication axis
> /gate/SPECThead/placement/setTranslation  200. 0. 0. mm
> 
> # Set the material associated with the main volume
> /gate/SPECThead/setMaterial Air
> /gate/SPECThead/attachPhantomSD
> 
> # Define the rotation speed of the head 
> # Define the orbiting around the Z axis
> /gate/SPECThead/moves/insert orbiting
> /gate/SPECThead/orbiting/setSpeed 0.5625 deg/s
> /gate/SPECThead/orbiting/setPoint1 0. 0. 0. mm
> /gate/SPECThead/orbiting/setPoint2 0. 0. 1. mm
> 
> # Define some visualisation options
> /gate/SPECThead/vis/forceWireframe
> 
> # Shielding
> # Create the shielding volume
> /gate/SPECThead/daughters/name shielding
> /gate/SPECThead/daughters/insert box
> 
> # Define the dimensions of the shielding volume
> /gate/shielding/geometry/setXLength 300. mm
> /gate/shielding/geometry/setYLength 300. mm
> /gate/shielding/geometry/setZLength 300. mm
> 
> # Define the position of the shielding volume
> /gate/shielding/placement/setTranslation  0. 0. 0. mm
> 
> # Set the material corresponding to the 
> # shielding volume
> /gate/shielding/setMaterial Lead
> 
> # Define some visualisation options
> /gate/shielding/vis/setColor red
> /gate/shielding/vis/forceWireframe
> 
> # Attach phantom SD to record Compton 
> # interactions in the shielding volume
> # Needed to discriminate between scattered 
> # and unscattered photons
> /gate/shielding/attachPhantomSD
> 
> 
> #############################################
> # C O L L I M A T O R
> # Create a full volume defining the shape 
> # of the collimator
> /gate/SPECThead/daughters/name collimator
> /gate/SPECThead/daughters/insert box
> 
> /gate/collimator/geometry/setXLength 20. mm 
> /gate/collimator/geometry/setYLength 300. mm 
> /gate/collimator/geometry/setZLength 300. mm 
> 
> /gate/collimator/setMaterial Lead
> /gate/collimator/placement/setTranslation -140. 0. 0. mm
> 
> /gate/collimator/vis/forceWireframe
> /gate/collimator/vis/setColor red
> 
> # Attach PhantomSD to record Compton 
> # interactions in the collimator volume
> /gate/collimator/attachPhantomSD
> 
> #############################################
> # P I N H O L E
> # Insert the pinhole in the collimator
> /gate/collimator/daughters/name hole
> /gate/collimator/daughters/insert cylinder
> /gate/hole/geometry/setHeight 20. mm
> /gate/hole/geometry/setRmax 2.5 mm
> /gate/hole/placement/alignToX
> /gate/hole/setMaterial Air
> /gate/hole/vis/forceSolid
> 
> /gate/collimator/daughters/name cone1
> /gate/collimator/daughters/insert cone
> #/gate/cone1/geometry/setHeight 7.5 mm
> /gate/cone1/geometry/setHeight 9 mm
> /gate/cone1/geometry/setRmax1 10. mm
> /gate/cone1/geometry/setRmax2 2.5 mm
> #/gate/cone1/placement/setTranslation -6.25 0 0 mm
> /gate/cone1/placement/setTranslation -5.5 0 0 mm
> /gate/cone1/placement/alignToX
> /gate/cone1/setMaterial Air
> /gate/cone1/vis/forceSolid
> 
> /gate/collimator/daughters/name cone2
> /gate/collimator/daughters/insert cone
> #/gate/cone2/geometry/setHeight 7.5 mm
> /gate/cone2/geometry/setHeight 9 mm
> /gate/cone2/geometry/setRmax1 2.5 mm
> /gate/cone2/geometry/setRmax2 10. mm
> #/gate/cone2/placement/setTranslation 6.25 0 0 mm
> /gate/cone2/placement/setTranslation 5.5 0 0 mm
> /gate/cone2/placement/alignToX
> /gate/cone2/setMaterial Air
> /gate/cone2/vis/forceSolid
> 
> ############################################
> # C A M  H E A D  A I R
> # insert air behind the collimator
> /gate/SPECThead/daughters/name aircomp
> /gate/SPECThead/daughters/insert box
> /gate/aircomp/geometry/setXLength 170 mm
> /gate/aircomp/geometry/setYLength 260 mm
> /gate/aircomp/geometry/setZLength 260 mm
> /gate/aircomp/placement/setTranslation -45 0 0 mm
> /gate/aircomp/vis/forceWireframe
> 
> ############################################
> # C R Y S T A L
> # Create the crystal volume
> /gate/SPECThead/daughters/name crystal
> /gate/SPECThead/daughters/insert box
> 
> # Define the dimensions of the crystal volume
> /gate/crystal/geometry/setXLength   6. mm
> /gate/crystal/geometry/setYLength 260. mm
> /gate/crystal/geometry/setZLength 260. mm
> 
> # Define the position of the crystal volume
> /gate/crystal/placement/setTranslation  43. 0. 0. mm
> 
> # Set the material associated with the crystal 
> # volume
> /gate/crystal/setMaterial NaI
> 
> # Define some visualisation options
> /gate/crystal/vis/setColor yellow
> 
> ###########################################
> # B A C K - C O M P A R T M E N T
> # Create the back-compartment volume
> /gate/SPECThead/daughters/name compartment
> /gate/SPECThead/daughters/insert box
> 
> # Define the dimensions of the back-compartment volume
> /gate/compartment/geometry/setXLength  30. mm
> /gate/compartment/geometry/setYLength 260. mm
> /gate/compartment/geometry/setZLength 260. mm
> 
> # Define the position of the back-compartment volume
> /gate/compartment/placement/setTranslation 61. 0. 0. mm
> 
> # Set the material of the  back-compartment volume
> /gate/compartment/setMaterial Glass
> 
> # Define some visualisation options
> /gate/compartment/vis/setColor grey
> 
> # Attach PhantomSD to record Compton 
> # interactions in the back-compartment volume
> /gate/compartment/attachPhantomSD
> 
> 
> #############################################
> # P H A N T O M
> # Create the phantom volume
> /gate/world/daughters/name Phantom
> /gate/world/daughters/insert cylinder
> 
> # Define the dimensions of the phantom 
> # volume
> /gate/Phantom/geometry/setRmax 0.5  mm
> /gate/Phantom/geometry/setRmin 0. mm
> /gate/Phantom/geometry/setHeight 0.5 mm
> /gate/Phantom/placement/setTranslation 0 0 0 mm
> 
> # Set the material corresponding to the 
> # phantom volume
> /gate/Phantom/setMaterial Water
> 
> # Define some visualisation options
> /gate/Phantom/vis/setColor blue
> /gate/Phantom/vis/forceWireframe 
> 
> # Attach PhantomSD to record Compton
> # interactions in the phantom volume
> /gate/Phantom/attachPhantomSD
> 
> 
> #############################################
> # M O V I N G   S O U R C E
> # Add an extra object for source confinement
> /gate/Phantom/daughters/name movsource
> /gate/Phantom/daughters/insert cylinder
> 
> # Define the dimensions of the source volume
> /gate/movsource/geometry/setRmax 0.5  mm
> /gate/movsource/geometry/setRmin 0. mm
> /gate/movsource/geometry/setHeight 0.5 mm
> 
> # Set the material corresponding to the
> # phantom volume
> /gate/movsource/setMaterial Water
> 
> # Define some visualisation options
> /gate/movsource/vis/setColor magenta
> /gate/movsource/attachPhantomSD
> 
> /control/execute timing.mac
> 
> #################################
> # SENSITIVE DETECTORS
> # GATE provides two sensitive detectors, 
> # which have two different functions
> # Using them properly is very important 
> # for getting accurate results
>  
> ###########################################
> # Crystal SD
> # The crystal SD makes it possible to 
> # record hits in a sensitive volume 
> # (e.g.,. in a scintillation crystal)
> # It must be attached to any volume for 
> # which hit-data must be obtained
> # For recording hits in the NaI volume 
> # only, the name of which is crystal, 
> # this volume is attached to the crystal SD
> /gate/crystal/attachCrystalSD
> 
> #############################################
> # Phantom SD
> # The phantom SD makes it possible to record 
> # Compton events in the volumes within the 
> # field of view. This can provide information 
> # for result analysis to discriminate between 
> # scattered and unscattered photons. It must 
> # be attached to each and every volume for 
> # whom Compton interactions have to be recorded
> /gate/Phantom/attachPhantomSD
> 
> #############################################
> # S Y S T E M
> # The system acts as an interpretor between 
> # the GATE geometry and data outputs for 
> # reconstruction in our case, the Interfile 
> # writer. A system must know which components 
> # of the geometry are parts of the scanner, 
> # and what their role are. For the moment, 
> # there is only a system SPECThead, which 
> # was built when the SPECThead volume was
> # inserted. 
> 
> # The SPECThead system is made of three 
> # levels: base (for the head), crystal (for 
> # the crystal and crystal matrix) and pixel 
> # (for individual crystals for pixellated 
> # gamma camera) For now, only the base of 
> # the system is attached to a volume: the 
> # volume SPECThead. For the system to get
> # information about your crystal, the level
> # crystal must be attached to the volume that 
> # has been defined for the scintillating 
> # crystal (crystal) 
> /gate/systems/SPECThead/crystal/attach crystal
> # Look at the system
> /gate/systems/SPECThead/describe
> 
> #############################################
> # P H Y S I C S
> # Select the processes to consider
> /gate/physics/gamma/selectRayleigh lowenergy
> /gate/physics/gamma/selectPhotoelectric lowenergy
> /gate/physics/gamma/selectCompton lowenergy
> /gate/physics/gamma/selectGammaConversion inactive
> /gate/physics/gamma/listProcesses
> 
> # Set some cuts to speed up the simulation
> # X-rays are tracked until their energy fell 
> # under 20 keV
> /gate/physics/setXRayCut 20. keV
> # Cut in order not to follow the secondary 
> # electrons
> /gate/physics/setElectronCut 1. km
> /gate/physics/setDeltaRayCut 1. GeV
> 
> 
> # Physics initialization
> /run/initialize
> 
> #############################################
> # D I G I T I Z E R
> # The digitizer tracks what happens in the 
> # detection system and in the electronics
> # Build a digitizer that first computes the 
> # centroid of interactions
> 
> /gate/digitizer/Singles/insert adder
> 
> /gate/digitizer/Singles/insert blurring
> /gate/digitizer/Singles/blurring/setResolution 0.15
> /gate/digitizer/Singles/blurring/setEnergyOfReference 140. keV
> 
> /gate/digitizer/Singles/insert spblurring
> /gate/digitizer/Singles/spblurring/setSpresolution 0.0 mm
> /gate/digitizer/Singles/spblurring/verbose 1
> 
> /gate/digitizer/Singles/insert thresholder
> /gate/digitizer/Singles/thresholder/setThreshold 20. keV
> 
> /gate/digitizer/Singles/insert upholder
> /gate/digitizer/Singles/upholder/setUphold 190. keV
> 
> #############################################
> # S O U R C E
> # Setting up the source
> /gate/source/addSource SourceConfinement
> 
> # Define the shape of the source
> /gate/source/SourceConfinement/gps/type Volume
> /gate/source/SourceConfinement/gps/shape Cylinder
> 
> # Define the dimensions of the source
> /gate/source/SourceConfinement/gps/radius 0.5 mm
> /gate/source/SourceConfinement/gps/halfz  0.25 mm
> 
> # Define the placement of the source
> /gate/source/SourceConfinement/gps/centre 0. 0. 0. mm
> 
> # Define the source as a gamma source
> /gate/source/SourceConfinement/gps/particle gamma
> 
> # Define the gamma energy 
> #/gate/source/SourceConfinement/gps/energytype Mono
> /gate/source/SourceConfinement/gps/energy 140. keV
> 
> # Set the activity of the source
> /gate/source/SourceConfinement/setActivity 500000. Bq
> 
> # Define a confinement
> # the activity cannot move with time so the attenuating 
> # medium is moved and the activity is forced to be in the 
> # attenuating medium
> /gate/source/SourceConfinement/gps/confine movsource_P
> 
> # Define the emission direction (4 str)
> /gate/source/SourceConfinement/gps/angtype iso
> /gate/source/SourceConfinement/gps/mintheta 0. deg
> /gate/source/SourceConfinement/gps/maxtheta 180. deg
> /gate/source/SourceConfinement/gps/minphi 0. deg
> /gate/source/SourceConfinement/gps/maxphi 360. deg
> 
> #############################################
> # R A N D O M 
> # Change the root of the random module to run different simulations
> /gate/output/root/setSaveRndmFlag 1
> 
> #############################################
> # O U T P U T
> # Select the options of the data output
> # As there are several modules, settings have 
> # to be defined for each module, especially in
> # SPECT, where there are a lots of hits for 
> # only a few counts, so it's better to limit 
> # the amount of data produced Here the 
> # SingleDigi output can be used if you have 
> # your own program to process the data
> 
> /gate/output/root/setFileName pinholeSPECT
> /gate/output/root/setRootSinglesAdderFlag 1
> /gate/output/root/setRootSinglesBlurringFlag 1
> /gate/output/root/setRootSinglesSpblurringFlag 1
> /gate/output/root/setRootSinglesThresholderFlag 1
> /gate/output/root/setRootSinglesUpholderFlag 1
> 
> #/gate/output/root/setRootHitFlag 0
> #/gate/output/root/setRootSinglesFlag 0
> #/gate/output/root/setRootCoincidencesFlag 0
> #/gate/output/root/setRootNtupleFlag 0
> 
> #/gate/output/ascii/disable
> /gate/output/ascii/setOutFileSinglesAdderFlag 0
> /gate/output/ascii/setOutFileSinglesSpblurringFlag 0
> /gate/output/ascii/setOutFileSinglesBlurringFlag 0
> /gate/output/ascii/setOutFileSinglesThresholderFlag 0
> /gate/output/ascii/setOutFileSinglesUpholderFlag 0
> 
> #############################################
> # P R O J E C T I O N
> # Makes a set of projections from the crystal 
> # hits Define the binning the projection module 
> # to be used
> /gate/output/projection/pixelSizeX 2.03125 mm
> /gate/output/projection/pixelSizeY 2.03125 mm
> /gate/output/projection/pixelNumberX 128
> /gate/output/projection/pixelNumberY 128
> 
> # Specify the projection plane (XY, YZ or ZX)
> /gate/output/projection/projectionPlane YZ
> 
> #############################################
> # E X P E R I M E N T
> # Define the parameters of the experiment  
> # (start time, stop time and time slice)
> # The number of projections depends on the 
> # number of time slice, the rotation speed of 
> # the system and the number of heads
> /gate/application/setTimeSlice       10.  s
> /gate/application/setTimeStart        0.  s
> /gate/application/setTimeStop        10.  s
> 
> #############################################
> # V E R B O S I T Y
> /control/verbose 0
> /grdm/verbose 0
> /run/verbose 0
> /event/verbose 0
> /tracking/verbose 0
> /gate/application/verbose 0
> /gate/generator/verbose 0
> /gate/stacking/verbose 0
> /gate/event/verbose 0
> /gate/source/verbose 0
> /gate/output/projection/verbose 0
> /gate/output/verbose 0
> 
> # LET'S RUN THE SIMULATION!
> /gate/application/startDAQ
> 
> 
> ------------------------------------------------------------------------
> 
> /control/verbose 1
> /control/saveHistory
> /run/verbose 2
> /event/verbose 1
> /tracking/verbose 1
> 
> /gate/timing/setTime 0. s
> /gate/application/setTimeSlice 1. s
> 
> #/control/execute mucam.mac
> #/control/execute startGammas.mac
> #/control/execute startTwoSources.mac
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> # Show how the geometry moves with time
> /gate/timing/setTime 0. s
> /gate/timing/setTime 20. s
> /gate/timing/setTime 40. s
> /gate/timing/setTime 60. s
> /gate/timing/setTime 80. s
> /gate/timing/setTime 100. s
> /gate/timing/setTime 120. s
> /gate/timing/setTime 140. s
> /gate/timing/setTime 160. s
> /gate/timing/setTime 180. s
> /gate/timing/setTime 200. s
> /gate/timing/setTime 220. s
> /gate/timing/setTime 240. s
> /gate/timing/setTime 260. s
> /gate/timing/setTime 270. s
> /gate/timing/setTime 280. s
> /gate/timing/setTime 300. s
> /gate/timing/setTime 320. s
> /gate/timing/setTime 340. s
> /gate/timing/setTime 360. s
> /gate/timing/setTime 380. s
> /gate/timing/setTime 400. s
> /gate/timing/setTime 420. s
> /gate/timing/setTime 440. s
> /gate/timing/setTime 460. s
> /gate/timing/setTime 480. s
> /gate/timing/setTime 500. s
> /gate/timing/setTime 520. s
> /gate/timing/setTime 540. s
> /gate/timing/setTime 560. s
> /gate/timing/setTime 580. s
> /gate/timing/setTime 600. s
> /gate/timing/setTime 620. s
> /gate/timing/setTime 640. s
> 
> 
> ------------------------------------------------------------------------
> 
> #	V I S U A L I S A T I O N
> /vis/open OGLSX
> /vis/viewer/reset
> /vis/drawView 60 60
> /vis/viewer/zoom 2
> /vis/viewer/set/style surface
> /vis/drawVolume
> /vis/scene/endOfEventAction accumulate
> /vis/viewer/update
> /vis/verbose 2
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> gate-users mailing list
> gate-users at lphe1pet1.epfl.ch
> http://lphe1pet1.epfl.ch/mailman/listinfo/gate-users




More information about the Gate-users mailing list