STIR
STIR copied to clipboard
EstimateScatter forces the use of ForwardProjectorByBinUsingProjMatrixByBin for mask computation
Attempting to estimate scatter from a CT attenuation map, many small voxels.
This leads to an issue with the ForwardProjectorByBinUsingProjMatrixByBin
as https://github.com/UCL/STIR/blob/454be92288d3eac39bbaf79fd8bfdd1c71937521/src/recon_buildblock/DataSymmetriesForBins_PET_CartesianGrid.cxx#L74-L79
I am generally using parallelproj that avoids this issue elsewhere in the code base (no symmetries) but estimate_scatter
forces the use of ForwardProjectorByBinUsingProjMatrixByBin
when computing the mask projection data.
https://github.com/UCL/STIR/blob/454be92288d3eac39bbaf79fd8bfdd1c71937521/src/scatter_buildblock/ScatterEstimation.cxx#L1238-L1240
Two options
- Pre-compute and set the mask projdata before setup is called.
- Add a settable member forward projector shared pointer to the EstimateScatter class.
@KrisThielemans thoughts? Estimate scatter is already complex and convoluted, the second option adds more but simplifies. It can default to the current behavior.