[Gate-users] [Gate] Fix the use of IAEA phase space files (#34)
Kris Thielemans
kris.f.thielemans at gmail.com
Wed Jun 10 12:20:23 CEST 2015
Hi David
You’re right. std::int32_t is only guaranteed with Cxx11. Most compilers support it for older versions of C++ as well. However, as far as I know, the best way to be compiler compatible (if you don’t use Cxx11) is to use boost/cstdint (or write yourself a load of macros).
Kris
From: David Sarrut
Sent: 10 June 2015 02:02
To: Kris Thielemans
Cc: gate-users; germano.russo at i-seecomputing.com
Subject: Re: [Gate-users] [Gate] Fix the use of IAEA phase space files (#34)
thanks Kris,
I will change to probably for std::int32_t. But does it require to compile with cxx11 ?
David
On Tue, Jun 9, 2015 at 12:58 PM, Kris Thielemans wrote:
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> [mailto: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 <mailto: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"
_________________________________
--
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 / 06 74 72 05 42
http://www.creatis.insa-lyon.fr/~dsarrut
_________________________________
"2 + 2 = 5, for extremely large values of 2"
_________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20150610/6d6d3a46/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 823 bytes
Desc: not available
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20150610/6d6d3a46/attachment-0002.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 332 bytes
Desc: not available
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20150610/6d6d3a46/attachment-0003.jpg>
More information about the Gate-users
mailing list