# Question about iOptimizerSens availability in CASToR 3.2.1 for custom PET list-mode sensitivity calculation

**URL:** <https://castor-project.discourse.group/t/question-about-ioptimizersens-availability-in-castor-3-2-1-for-custom-pet-list-mode-sensitivity-calculation/1475>\
**Category:** General Discussions\
**Created:** [September 3, 2026, 1:44am UTC](https://castor-project.discourse.group/t/question-about-ioptimizersens-availability-in-castor-3-2-1-for-custom-pet-list-mode-sensitivity-calculation/1475 "2026-09-03T01:44:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hiroaki\_Sagara](https://avatars.discourse-cdn.com/v4/letter/h/848f3c/32.png) [@Hiroaki\_Sagara](https://castor-project.discourse.group/u/Hiroaki_Sagara)\
**Post date:** [September 3, 2026, 1:44am UTC](https://castor-project.discourse.group/t/question-about-ioptimizersens-availability-in-castor-3-2-1-for-custom-pet-list-mode-sensitivity-calculation/1475/1 "2026-09-03T01:44:12Z")

</div>

Dear CASToR developers,

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.

Thank you for your guidance.

Best regards,

hsaga

---

<div class="post-metadata">

**Author:** ![tmerlin](https://yyz2.discourse-cdn.com/free1/user_avatar/castor-project.discourse.group/tmerlin/32/216_2.png) [@tmerlin](https://castor-project.discourse.group/u/tmerlin)\
**Post date:** [September 8, 2026, 7:42pm UTC](https://castor-project.discourse.group/t/question-about-ioptimizersens-availability-in-castor-3-2-1-for-custom-pet-list-mode-sensitivity-calculation/1475/2 "2026-09-08T19:42:11Z")

</div>

Hi Hiroaki,

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](https://filesender.renater.fr/?s=download&token=532634b4-763f-4a2a-9330-f8fc4944a534) packed with the v3.1.1

You could find more details about `castor-norm` by using the -h option, or in the following discussions:

> [@Castor-norm Inputs](https://castor-project.discourse.group/t/castor-norm-inputs/1074):
>
> Hello Everyone, In castor-norm utility, we need to pass the true image as input using the following command -img path\_to\_img.hdr I have two questions regarding this file: 1- Does anyone know how we can construct/create this image? Is there any tool/software for this? 2- In order to correctly calculate normalization factors, the true image should be the same as the normalization phantom, right? Hence, the header file should have almost the same key and values as reconstructed image of a phan…

> [@Normalization file preparation and normalization factor computation](https://castor-project.discourse.group/t/normalization-file-preparation-and-normalization-factor-computation/966):
>
> Hello All, I have read about preparing normalization file in CASToR. In this forum, it is suggested to follow the steps in [Normalization of Monte Carlo PET data using GATE](https://ieeexplore.ieee.org/document/6153804) by Pépin et al. 2011. Do I need to follow the steps in the paper and calculate the factors by first collecting the number of hits in each LOR and then use the formulas in the paper, or CASToR provides a utility that we can pass the projection data to it and then the utility provides us with the normalization file? Best, Sey…

> [@Normalization with listmode data](https://castor-project.discourse.group/t/normalization-with-listmode-data/1011):
>
> Hi everyone, I’m currently facing a challenge when preparing normalization data for a PET system with a large number of crystals using CASToR. In my workflow: I simulate the normalization phantom and obtain ROOT output. I attempt to convert the ROOT data to histogram-mode using castor-GATERootToCastor. Unfortunately, due to the high number of crystals, the RAM usage during histogram allocation becomes excessive and crashes the conversion (system has 128 GiB RAM, most of it available, but st…

(Note that the GATE conversion tools are not yet available for GATEv10, but from your message I assume you developed you own tools)

Hope this helps,  
Thibaut
