scatter simulation/estimation recommendations for downsampling etc

Open
#1,405 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp

Research direction

Read the referenced sections of src/scatter_buildblock/ScatterEstimation.cxx and ScatterSimulation.cxx, then inspect the voxel-sizing function near ScatterSimulation.cxx:920 and its call sites. Determine the intended defaults for downsampled detector resolution in scatter estimation and simulation, and define completion by applying or documenting consistent defaults with validation for both paths.

Written by the indexing model from the issue text.

Description

It looks like our default settings could lead to suboptimal scatter estimates (definitely simulations). I haven't checked the documentation yet.

A potential issue is that, as we use ray-tracing for computing the line integrals (through both emission and attenuation), the image resolution needs to match (downsampled) detector size. This seems currently not implemented by default. Some pointers

scatter estimation

https://github.com/UCL/STIR/blob/8ced2d73933420457e0bc76074964b7d4ff00f0c/src/scatter_buildblock/ScatterEstimation.cxx#L587-L588
https://github.com/UCL/STIR/blob/8ced2d73933420457e0bc76074964b7d4ff00f0c/src/scatter_buildblock/ScatterEstimation.cxx#L558-L563

scatter simulation

https://github.com/UCL/STIR/blob/8ced2d73933420457e0bc76074964b7d4ff00f0c/src/scatter_buildblock/ScatterSimulation.cxx#L320-L326
https://github.com/UCL/STIR/blob/8ced2d73933420457e0bc76074964b7d4ff00f0c/src/scatter_buildblock/ScatterSimulation.cxx#L328-L333

We do have this function which tries to set voxel sizes appropriately, but it seems it isn't called anywhere
https://github.com/UCL/STIR/blob/8ced2d73933420457e0bc76074964b7d4ff00f0c/src/scatter_buildblock/ScatterSimulation.cxx#L920

Dominant language
C++
Stars
160
Forks
113
Avg merge
12d 15h
Merged PRs (30d)
1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from UCL/STIR

All issues in UCL/STIR

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.