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