I am developing a reproducible PET Monte Carlo and list-mode
reconstruction workflow using OpenGATE 10.1.1 and CASToR 3.2.1. The
scanner is described by a custom CASToR LUT and contains 60,800
detector crystals.
The official CASToR 3.2 Doxygen documentation contains iOptimizerSens,
but the downloadable official CASToR_v3.2.1 package does not contain
iOptimizerSens.hh, iOptimizerSens.cc, or SENS.conf. The compiled
CASToR 3.2.1 binary also reports "Optimizer 'SENS' does not exist" for
-opti SENS.
Could you please clarify the following?
1. Which official CASToR source revision, commit, tag, or branch
contains iOptimizerSens?
2. Is that implementation compatible with CASToR 3.2.1?
3. Could you provide an official source archive containing
iOptimizerSens.hh and iOptimizerSens.cc, or grant access to the
corresponding repository revision?
4. What recommended or default values should be used for the four SENS
parameters: initial image value, denominator threshold, minimum image
update, and maximum image update?
5. If an official SENS.conf exists, could you please provide it?
6. What command do you recommend to generate a precomputed sensitivity
image from a uniform radioactive source for a custom PET scanner LUT
and list-mode data?
7. What is the intended difference between the standard CASToR 3.2.1
-sens-only route and iOptimizerSens?
8. For a custom scanner with 60,800 crystals, where exhaustive
detector-pair enumeration is very large, what sensitivity-calculation
method do you recommend?
9. What is the officially supported way to use a precomputed
sensitivity image in PET list-mode reconstruction?
10. For a custom scanner, is there a recommended alternative to
generating a normalization file over all possible detector pairs?
For context, the standard unordered-pair space for this scanner
contains 1,848,289,600 detector pairs. I have therefore not attempted
an exhaustive production sensitivity calculation, reconstructed source
code from Doxygen, guessed the SENS parameters, or modified the
official CASToR 3.2.1 installation.
The OptimizerSens tool was removed in the 3.2 release because it was originally intended as a temporary work-around. It repurposed the optimizer code to generate a sensitivity image from list-mode data. It became obsolete once the castor-norm toolkit was integrated into CASToR. The doxygen is not up to date, indeed.
castor-norm generates a normalization list-mode file using a direct normalization approach. It requires as input the CASToR histogram datafile corresponding to a normalization scan (basically the datafile you provided when using the SENS optimizer) and an image of the normalization phantom (typically an annular phantom, but it depends on your geometry). This normalization file must then be provided to castor-recon with the -norm option.
As with the SENS optimizer, a large number of coincidences per LOR is required to obtain reliable normalization estimates. The normalization datafile can also become quite large for systems with a relatively large number of detectors like yours.
If you still want to use the optimizerSens, you can find the files here packed with the v3.1.1
You could find more details about castor-norm by using the -h option, or in the following discussions:
(Note that the GATE conversion tools are not yet available for GATEv10, but from your message I assume you developed you own tools)