I am trying to reconstruct a dataset with the normalization correction factors included in the listmode data. I am getting the following error when I submit for reconstruction:
***** The following error message was issued by MPI instance 0
***** oSensitivityGenerator::InitializeNormalizationFiles() → Normalization correction is included in the data file while it is not in the sensitivity computation !
I am trying to reconstruct a dataset with the normalization correction factors included in the listmode data. I am getting the following error when I submit for reconstruction:
***** The following error message was issued by MPI instance 0
***** oSensitivityGenerator::InitializeNormalizationFiles() → Normalization correction is included in the data file while it is not in the sensitivity computation !
If you look at an MLEM equation, it does not make sense to include normalization factor in the system matrix in the right part of the equation but not in the left part (where the sensitivity is taken into account).
When you perform a list-mode reconstruction, a sensitivity image has to be computed from all possible lines of response that may contribute to the list-mode file.
So there is a sensitivity image; either you provided it, or it is computed by looping on all crystal pairs or on events from a normalization datafile if provided.
If you include normalization correction factors in the list-mode file, it means that you are able to know the normalization correction factor for any possible crystal pair admissible in the list-mode file.
From these normalization factors, you have to build a normalization datafile that contains the list of any admissible line of response with the associated normalization factor (this type of datafile is described in the documentation).
Then you provide this normalization datafile using ‘-norm’ option to castor, so that it will loop on it to compute the sensitivity image.
The way this is described in table 3 of the userguide sounds as if the user has the option to either pass the norm factors for each crystals pair within the LM file, or as a separate norm file, and then Castor takes care of the rest; i.e. it has nothing to do with the MLEM equation. Thank you for the clarification.
I would appreciate your input on one additional task please. I want to reconstruct the LM data with a span>1? I am writing for every event all the possible crystal pairs, and in case the number of LOR’s is less than “k” (as described in table 3) I write “garbage” with both ID1 and ID2 equal to zero. My norm file has the same format in addition to the normalization correction factor for each crystal pair. I also set the “Maximum number of lines per event” to the proper maximum number of crystal pair in the .cdh file. Does this sound right?