Siddon multiray returns prematurely (I think)

Dear Castor Developers,

first of all, thanks for making Castor open source and maintaining the code in the first place. It has already helped me
to find Bugs in my own reconstruction when I was comparing my results to the castor result.

Well I guess I get right to the point then.
I use very simple GATE data to make PET reconstructions and compare them to my own reconstruction.
If I understand multiray correctly, then I think in iProjectorIncrementalSiddonMulti::ProjectWithoutTOF() the line 282:

if( alphaMax <= alphaMin ) return 0;

will cause the function to return prematurely without having iterated over all lines (I mean multiray lines, not oProjectionLine objects).
This can cause for example low sensitivity values on the edges (I added a screenshot to the attachment).
When for example you use 16 lines, but because of the
random position of each line, line no. 2 might not hit a voxel, the function will return and stop iterating over
the remaining 14 lines.

Or am I missing something? If this is the case, I apologize in advance.

Best regards,
Andreas

Dear Andreas,

You are definitely right about the implementation, this is indeed an oversight. The instruction should be continued instead of returned, and the nb_lines should be updated accodingly.

Many thanks for spotting it!

Best regards,
Thibaut