Attenuation correction and normalization for list-mode reconstruction

Dear CASToR users and developers,

I have simulated a digital phantom in GATE and reconstructed the GATE list-mode using CASToR. In order to perform the normalization I manually calculated the normalization factors and fed the normalization datafile into the CASToR for the calculation of Sensitivity image.

In this case, in order to apply the attenuation correction, I believe I need to calculate the attenuation coefficient for each LORs and feed it within the normalization datafile. However this is not straightforward for me because the phantom contains multiple types of material and tissues.

So my question is: 1. I know we can feed atn image to CASToR during the reconstruction, but in this way how can I apply the normalization?

  1. Can the CASToR generate the atten coefficient and output the information so that I can combine it with the norm factors to form the datafile?

Thank you very much for your help!

Hi Zipai Wang,

When you use a normalization datafile to guide the computation of the sensitivity image, you can input attenuation correction factor in the normalization datafile but you can still simply supply an attenuation image with the option “-atn”. Both are compatible.

To compute the attenuation coefficients, I personally use the following database

It is very convenient, you just supply the different compounds of the material from the GATE material database, ask for an energy, and get the attenuation factor.

Then you can build an image where you replace each label of your phantom by the attenuation factor in cm-1, and this is what you supply to castor using the option “-atn”.


Dear Zipai,

I advice to proceed as Simon suggested, but just for information there is a way to compute the ACFs with castor-GATERootToCastor using the -atn option. They will be incorporated in the generated CASToR datafile. The projector must be the same that the one used for reconstruction.



Dear Thibaut,

is there a possibility to apply the above mentioned attenuation factors directly to the reconstruction (not sensitivity map production). Let say I have a one sensitivity map for my scanner (sensitivity without any phantom put inside the FOV) and I just want to calculate the attenuation in-fly (which will vary from subject to subject) during the regular (MLEM, OSEM, ...) reconstruction.

Is it somehow hard to adapt the CASToR for that?

All the best,

Dear Jakub,

Maybe I am wrong about this, but I don't think you could skip a retro-projection step over all the system LORs at some point in order to compute the attenuation factors in the image space. This is required by the (list-mode) MLEM equation.