<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="font-family:Arial;font-size:14px"><p>
Hi Simon,<br><br>
Thank you for notifying this to us. Indeed the length of the line is computed once before the call to the specific projection functions of the child classes. This results in the use of wrong line lengths for multi-lines projectors with the actual implementation, though the differences should be small with standard detectors dimensions. Anyway your suggestion does the trick.<br><br>
There is still some work to do in this class, such as the management of ToF and the support of geometries whose detectors have a non-zero axial orientation (in the <em>GetRdmPositionsAndOrientations()</em> function). I'll have a look at it asap.<br><br>
Thanks again,<br>
Thibaut<br><br>
Simon Laperle <<a href="mailto:Simon.Laperle@usherbrooke.ca">Simon.Laperle@usherbrooke.ca</a>> a écrit :</p>
<blockquote style="border-left:2px solid blue;margin-left:2px;padding-left:12px;" type="cite">
<div class="WordSection1">
<p class="MsoNormal">
<span lang="EN-CA">While reading some code, I stumbled on a GetLength() function that wasn’t returning the length of the current projectionLine…</span></p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA">The resulting image doesn’t change much. So I can’t say if it makes the image better or worse.</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA">In detail:</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA">Source: \src\projector\iProjectorIncrementalSiddonMulti.cc</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:blue">(line:189) if</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> (mp_Scanner->GetRdmPositionsAndOrientations( </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetIndex1(), </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetIndex2(), </span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetPosition1(), </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetPosition2(),</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetOrientation1(), </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetOrientation2() ))</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">[…]</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green">// **************************************</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green">// STEP 1: LOR length calculation</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green">// **************************************</span></p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:blue">(line:213)</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:#6F008A">HPFLTNB</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> length_LOR = </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetLength();</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA">GetLength() does not take into account the length change caused by </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">mp_Scanner->GetRdmPositionsAndOrientations</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA">If it wasn’t intentional, a simple solution would be to add a call to ComputeLineLength():</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green">// **************************************</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green">// STEP 1: LOR length calculation</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green">// **************************************</span></p>
<p>
</p>
<p class="MsoNormal" style="text-autospace:none">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:green"> </span><span style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span style="font-size:9.5pt;font-family:Consolas;color:black">->ComputeLineLength();</span></p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:#6F008A">HPFLTNB</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black"> length_LOR = </span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:gray">ap_ProjectionLine</span><span lang="EN-CA" style="font-size:9.5pt;font-family:Consolas;color:black">->GetLength();</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
<span lang="EN-CA">Hope that helps.</span></p>
<p>
</p>
<p class="MsoNormal">
</p>
<p>
</p>
<p>
</p>
<p class="MsoNormal">
<b><span style="mso-fareast-language:FR-CA">Simon Laperle</span></b></p>
<p>
</p>
</div>
</blockquote>
<br><br></body></html>