Different TOF kernel function for different LOR

Dear all CASToR users:

I am trying to model a variable TOF kernel function, its functional distributions are based on specific LOR.

We design a 2-layer DOI BrainPET system with different TOF resolutions for each layer. 300ps for the bottom layer & 400ps for the TOP layer. Therefore, the TOF function for the LOR(top-to-top) and LOR(bottom-to-bottom) should be a symmetric Gaussian with different TOF resolutions. But for the LOR(top-to-bottom), an asymmetric and non-Gaussian distribution function should be applied only for TOF recon of the current LOR.

Can I set more than one TOF resolution in CASToR recon? Can any offer me some references for non-Gaussian TOF kernel function modeling?

I will be grateful for any reply! Any help will be appreciated! :smiley:

Best
Xin

As far as I am aware, we can’t have multiple TOF kernel for CASToR right now. If we look at the documentation

TOF resolution (ps): Resolution (FWHM) of the TOF uncertainty Gaussian function in
ps, required if TOF information flag is on

As for non-Gaussian TOF kernel function modeling, [1] seems to be appropriate.

Bests,
Maxime Toussaint

[1] Use of non-Gaussian time-of-flight kernels for image reconstruction of Monte Carlo simulated data of ultra-fast PET scanners | EJNMMI Physics | Full Text

Hello Maxime,

Thank you for your response. It is very helpful for my current work. Later I will try to add them in CASToR.

Best,
Xin

Hi Xin,

As Maxime said, we can’t have multiple TOF kernels in the current CASToR distribution.

This was actually a point discussed during the IEEE user’s meeting last October, with the presentation of Rok Dolonec about the integration of double gaussian TOF kernel in the code. You can have a look at Rok’s presentation and implementation below:
CASToR-2022-RokDolenec.pdf (1.6 MB)

Your case is a bit different as the kernel would be also dependent on the detector/layer. For list-mode data I could see two ways to implement it: (i) the kernel is generated at run-time in the projector, from the knowledge of which layer each detector belongs to (one can access to the detector IDs from the oProjectionLine), this may require additional functions to get to the layer information though, (ii) pre-process the data to compute the TOF for each event and add a new field in PET datafile/event classes to provide event-specific TOF resolution. For the latter, Damian Trybek recently proposed an implementation in the Gitlab repository if you wish to have a look.

Hope this helps,
Thibaut

Dear Thibaut,

Thanks for your reply! I am trying to modify the vProjector.cc/hh & iProjectorJoseph.cc/hh to fit my TOF recon. About Rok’s presentation in MIC, it is very exhilarating that we explore Cerenkov imaging still by CASToR!

As for your guidance in my case, I am very interested in Gitlab repository, it will take me some time to learn. Thanks again!

Best wishes
Xin Zhao