Detector movement

Dear CASToR developers & users,

I just started using CASToR very recently, so maybe my questions are ignorant.

I am simulating a PET system with GATE, consisting of two opposite modules on a cylindricalPET geometry. Now, I want to rotate the two modules during the acquisition, both continuous rotation as well as distinct rotation steps, and move them in z (or move the phantom along z).
I want to reconstruct the data using MLEM (either list-mode or histogram).

There will also be an experimental realisation of this setup, whose data I would like to reconstruct with CASToR.

In your 2.0 release notes, you already refer to a future release including dynamic aspects, incl motion management.

Does this comprise detector movement?
Obviously, I could also translate the detector movement into a phantom movement and static detectors, if this helps.

If yes, could you give a rough estimate when this release can be expected? Or would it be possible to get any non-released code (sth like a development branch)?

Or are there other possibilities already now, how to incorporate detector movement?
Ideally, I would like to give CASToR a tracking file which defines the position of the modules (or of each crystal) for different time stamps.

Best regards, and thanks for your support,


Dr. Milan Zvolsk****ý

Universität zu Lübeck
Institut für Medizintechnik

Tel +49 451 3101 5466
Bld. 64, 1st Floor, R. 24
Ratzeburger Allee 160
23562 Lübeck

Hi Milan,

Thanks for your interest into CASToR !

The next release will not contain detector movements, only movements of the patient.

Anyway, whatever the movement we are talking about, it is always considered in a discrete sense (opposite to continuous).

There are no solutions yet in the iterative reconstruction world to implement a reconstruction with continuous time management, because everything is algebraic and is by definition discrete. In your case, you may consider the image as unique over the whole revolution of your detectors, but you will need the sensitivity image as a continuous function of the time, which is hardly computable.

However, this is a very interesting question that remains to be solved and would make an interesting area of research, but it is a stand-alone research project on its own, to my opinion.

Even Siemens with their continuous PET bed motion does not implement a continuous reconstruction and cut the acquisition into "chuncks" which roughly correspond to discrete bed positions.

All the best !


Dear Simon,

thank you for your quick reply.

Actually, discrete movement management would be totally fine for me, I can always adapt my measurement procedure (or make the discrete time steps as small as my computing power allows).

In this case, if I I understand your answer correctly, I could have a static detector and a moving phantom (discrete rotation and translation steps).

Is this realisable within CASToR now or in the new future, or which modifications would I need to perform?

Thanks for your support.



Dear Milan,

Yes, in the new future version, it would be possible, but not for the moment. And it could solve your problem.

I think about another solution for you that you could readily implement with the current version of CASToR.
First, you define your rotation step of the detector, then for each step, you compute the position of your crystals and you write them in a custom LUT file for PET scanner descriptions. Finally, for each of your event, you associate it with the index of the crystal at the associated rotation step.
In other words, you build a kind of pseudo-cylindrical PET scanner for a given rotation step.