[Gate-users] [Gate] Fix the use of IAEA phase space files (#34)

Alex Vergara Gil alexvergaragil at gmail.com
Tue Jun 9 21:16:31 CEST 2015


It maybe be a good idea to have our own independent GateInt typedef,
so we can change only one line if time changes definition of int or
even std::int. There are already a G4int for this reason, so we can
use it.

My 2c

Alex

2015-06-09 6:58 GMT-04:00, Kris Thielemans <kris.f.thielemans at gmail.com>:
> Hi
>
>
>
> A quick comment on the following:
>
> ----------
>
> things seem to be outdated, for instance in the "GateIAEAConfig.h" the
> definition 'typedef long IAEA_I32' must be replaced with 'typedef int
> IAEA_I32' in order to conform to the current ".IAEAphsp" file format.
>
> -----------
>
>
>
> This change will be compiler/system/time dependent. I don’t know what the
> GATE policy is, but in STIR we use boost::int32_t. if you don’t care about
> older compilers, you should use std::int32_t (from <cstdint>) I guess.
>
>
>
> Kris
>
> From: gate-users-bounces at lists.opengatecollaboration.org
> [mailto:gate-users-bounces at lists.opengatecollaboration.org] On Behalf Of
> David Sarrut
> Sent: 09 June 2015 00:57
> To: gate-users; germano.russo at i-seecomputing.com
> Subject: Re: [Gate-users] [Gate] Fix the use of IAEA phase space files
> (#34)
>
>
>
> Hello Germano Russo,
>
>
>
> thank you very much for your pull-request, it has been merged (develop
> branch). I think a lot of users will be happy to see IAEA phase space now
> corrected in Gate.
>
>
>
> More details : https://github.com/OpenGATE/Gate/pull/34
>
>
>
> Sincerely,
>
> David
>
>
>
> On Mon, Jun 8, 2015 at 10:32 AM, germanorusso <notifications at github.com
> <mailto:notifications at github.com> > wrote:
>
> I recently tried to use as source an IAEA phase space, specifically the
> one named "VarianClinaciX_6MV_10x10_w1.IAEAphsp" (downloadable
> from https://www-nds.iaea.org/phsp/photon1/), via the "/gate/source/[Source
> name]/addPhaseSpaceFile" macro command.
>
> The simulation (Gate 7.0) run smoothly, however I got meaningless results.
> Digging into the related Gate source code, I believe I found 3 bugs
> for which I propose a correction in the 'fixIAEAphspSource' branch.
>
> 1) In the function 'GateSourcePhaseSpace::OpenIAEAFile()' the call
> 'pIAEARecordType->initialize()' is placed after
> 'pIAEAReader->getRecordContents(pIAEARecordType)'. These two lines shall be
> swapped, otherwise the record contents information extracted form the IAEA
> header and stored in the the object pointed by pIAEARecordType is cleared
> by the initialisation operation.
>
> 2) The "GateIAEA" source files appear to be based on an old C++
> implementation for handling phase spaces distributed by the IAEA. Some
> things seem to be outdated, for instance in the "GateIAEAConfig.h" the
> definition 'typedef long IAEA_I32' must be replaced with 'typedef int
> IAEA_I32' in order to conform to the current ".IAEAphsp" file format.
>
> 3) In the function 'GateSourcePhaseSpace::GenerateIAEAVertex()' the
> 'pIAEARecordType->w' variable seems to be misused in the expression 'dz *=
> pIAEARecordType->w'. The 'pIAEARecordType->w' variable contains the Z
> direction cosine of the particle, not just its sign. So it should rather be
> 'dz = pIAEARecordType->w'. Since the 'pIAEARecordType->w' variable is
> slightly smaller than 1, this mistake causes small errors in the
> normalisation of the momentum (and hence of the kinetic energy).
>
> After having applied these correction, I was able to obtain an output dose
> distribution for the 10x10 cm field quite close to the experimental data
> reported in the documentation distributed by IAEA along with the IAEAphsp
> and IAEAheader files
> ("https://www-nds.iaea.org/phsp/photon1/VarianClinaciX_6MV_PHSPdoc_Gothenburg.pdf").
>
> <https://cloud.githubusercontent.com/assets/8522577/8030667/fed03d40-0dc8-11e5-8a51-90eae801a36d.png>
>
>
> <https://cloud.githubusercontent.com/assets/8522577/8030686/28bccb3c-0dc9-11e5-9075-8756f6952043.png>
>
>
> <https://cloud.githubusercontent.com/assets/8522577/8030692/2e0595f6-0dc9-11e5-8da2-ed4992dd8c9b.png>
>
>
>   _____
>
>
> You can view, comment on, or merge this pull request online at:
>
>
>   https://github.com/OpenGATE/Gate/pull/34
>
>
> Commit Summary
>
>
> * Reversed type of IAEA_I32 to int, according with the current IAEA
> setting.
>
> * 1) In the function 'GateSourcePhaseSpace::OpenIAEAFile()' the call
>
>
> File Changes
>
>
> * M source/general/include/GateIAEAConfig.h
> <https://github.com/OpenGATE/Gate/pull/34/files#diff-0>  (5)
>
> * M source/physics/src/GateSourcePhaseSpace.cc
> <https://github.com/OpenGATE/Gate/pull/34/files#diff-1>  (5)
>
>
> Patch Links:
>
>
> * https://github.com/OpenGATE/Gate/pull/34.patch
>
> * https://github.com/OpenGATE/Gate/pull/34.diff
>
>> Reply to this email directly or view it on GitHub
> <https://github.com/OpenGATE/Gate/pull/34> .
>
>
>
>
>
>
>
> --
>
> David Sarrut, Phd
> Directeur de recherche CNRS
> CREATIS, UMR CNRS 5220, Inserm U 1044
>
> Centre de lutte contre le cancer Léon Bérard
> 28 rue Laënnec, 69373 Lyon cedex 08
> Tel : 04 78 78 51 51 <tel:04%2078%2078%2051%2051>  / 06 74 72 05 42
> <tel:06%2074%2072%2005%2042>
> http://www.creatis.insa-lyon.fr/~dsarrut
> _________________________________
>
>  "2 + 2 = 5,  for extremely large values of 2"
> _________________________________
>
>


More information about the Gate-users mailing list