Single Scatter Simulation using Gate simulation data

Dear all,

I wanner test all physics correction in pytomography with own data. So I got cylinder root data(radius: 85 mm) by GATE simulation (with phantom and water, it means those LORs contain attenuation, randoms and scatters).

At first, It looks well when I only recon with attenuation or normalization. But when I added both, it seems bad in profile,the value in center is higher than the edge, as below.


image

Then, I tried random correction. It looks totally same img and profile.


image

Lastly, I try to do single scatter simulation. It always shows wrong in scale_estimated_scatter(norm_BP = system_matrix.compute_normalization_factor()).as below.

Thanks for any reply.

Best,
Hannah

Hi,

I found there is a problem about scanner info from GATE, as blow. I found there miss submodules information. Before adding submodule, proj_meta(sino_proj_meta) is [48, 97, 1296] instead of [96, 193, 1296],so there is mistake about system_matrix in get_sss_scatter_estimate function.

After adding submodule, code is working. But there is no difference between norm, norm with random correction, norm with random and scatter correction in profile, as below.

Looking forward reply.

Best,
Hannah

Hi Hannah,

Good on you for catching that bug in sinogram_to_spatial! Glad you were able to delve into the source code. Can you make a pull request on github with those changes made?

In GATE, are you sure that you’re actually simulating the phantom (i.e. simulating attenuation + scatter interactions)? Based on what I see here, it seems likely that perhaps those flags was disabled, since reconstruction with normalization correction (and no attenuation correction) looks really good, and attenuation correction seems to be over-correcting. In other words, you may be simulating the source only, but with no interactions in the phantom.

This would explain why all 3 profiles look the same: SSS scales the scatter estimate based on values outside the phantom (via masking based on attenuation values), so if there are no scatters anywhere outside the phantom, the SSS estimate will simply scale to 0.

Hi Luke,

THanks for your reply. I will check Gate simulation code later. Hope get good result.

Cheers,
Hannah