Problem on Reconstruction from GATE root output

Dear CASToR users,

I’m trying to build an PET simulation using the GATE ecat system. The Geometry macro “Geometry.mac” is attached for reference.

I first simulated two 2.5mm-radius sphere sources in a phantom.From raw sinogram, I think I can see the two sphere sources. Root datafile and raw sinogram could be downloaded through the following link.
https://drive.google.com/open?id=0B0vKwnYlHgr1LWpiclpnTUFZbUE

I converted the GATE geometry to the .geom file (“GATE_PET.geom” as attached) and then converted root datafile to CASToR datafile with -t option. (“aq4.log”, “aq4_CstrProj.Cdh” and “aq4_CstrProj.Cdf” as attached)

Q1: It seems that the -t option only converts true unscattered events. Is it able to convert true unscattered and scattered events (no random)?

Q2: In aq4_CstrProj.Cdh, the maximum ring difference is -1. Since the simulated PET has 52 detector rings, I think the maximum ring difference should be 51. I would like to know why is it -1?

Then I use the following command to perform the reconstruction.

castor-recon -df aq4_CstrProj.Cdh -dout recon_aq4 -it 3:8 -dim 400,400,109 -fov 780,780,218

Q3: The reconstructed images are not right. Is there any idea how I can solve it?
https://drive.google.com/open?id=0B0vKwnYlHgr1V3F2Q2JTLTlyc00

Thank you very much and I’m looking forward to hearing from you.

Your sincerely,

Ying-Yu Chen

Geometry.mac (3.33 KB)

GATE_PET.geom (1.64 KB)

aq4.log (1.49 KB)

aq4_CstrProj.Cdf (488 KB)

aq4_CstrProj.Cdh (219 Bytes)

Hello Ying-yu,

For your questions:

Q1: Yes, the -t option only converts true unscattered events and there is no current option to keep only trues and scatters. However you could make some small changes in the file toolkits/castor-GATERootToCastor.cc in order to recover both trues and scatters:

Around line 1492, replace:

if (true_only_flag==true && kind != KIND_TRUE)

by

if (true_only_flag==true && kind != KIND_TRUE && kind != KIND_SCAT && kind != KIND_MSCAT )

and around line 1646, replace:

Out_data_file->SetNbEvents( (true_only_flag) ? nLORs_trues : nLORs_tot ) ;

by

Out_data_file->SetNbEvents( (true_only_flag) ? nLORs_trues + nLORs_scatters : nLORs_tot ) ;

then recompile. Then the datafile should include scatters as well.

Q2: Maximum ring difference set to -1 just mean there is no restriction regarding the ring difference. So it will be equal to 51 in your case.

Q3: I am not sure what is wrong in the reconstructed images. The positions of the sphere sources in the image are not correct ?

Best regards,

Thibaut