remove obsolete functions in ProjDataInfoCylindrical and ProjDataInfoCylindricalNoArcCorr
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 160
- Forks
- 113
- Avg merge
- 12d 15h
- Merged PRs (30d)
- 1
Description
There's overlap between old and new (safer) functions. We should get rid of the old ones. Let's try to document here what needs to be done.
Functions that handle only rings or only tang_pos/view (these should become either private or protected)
-
get_det_num_pair_for_view_tangential_pos_num(replace withget_det_pos_pair_for_bin). Used in a few places includingProjMatrixByBinUsingRayTracingand some normalisation code. -
get_view_tangential_pos_num_for_det_num_pair(make private). Used inget_bin_for_det_pair
-
get_segment_axial_pos_num_for_ring_pair(make private?)CListEventCylindricalScannerWithViewTangRingRingEncoding(used there to save some computation)get_bin_for_det_pair
-
get_num_ring_pairs_for_segment_axial_pos_num(useget_num_det_pos_pairs_for_bin). Used inLmToProjData::get_compression_countget_num_det_pos_pairs_for_bin
-
get_ring_pair_for_segment_axial_pos_num(make protected). Used inget_det_pair_for_bin
-
get_all_ring_pairs_for_segment_axial_pos_num(make protected). Used inget_all_det_pos_pairs_for_bin
Functions that use 4 coordinates (these should be removed)
-
get_bin_for_det_pair(replace withget_bin_for_det_pos_pair). Madeprivatein https://github.com/NikEfth/STIR/pull/63 and hence https://github.com/UCL/STIR/pull/304 -
find_bin_given_cartesian_coordinates_of_detection(replace withget_bin(LOR&)). Used insrc/utilities/list_detector_and_bin_info.cxx(but in comment)- https://github.com/UCL/STIR/blob/a2e5c0d7e314207f8bbe46da89ccc00642859514/src/local/motion/RigidObject3DTransformation.cxx#L288
-
find_scanner_coordinates_given_cartesian_coordinates(replace withget_LORorget_LOR_as_2_points). Used infind_bin_given_cartesian_coordinates_of_detection
-
get_det_pair_for_bin(replace withget_det_pos_pair_for_bin). Used infind_cartesian_coordinates_of_detectionget_det_pos_pair_for_binconstruct_randoms_from_singles.cxxMLnorm.cxx
-
find_cartesian_coordinates_of_detection(replace withget_LORorget_LOR_as_2_points). Used inScatterEstimationByBin::find_detectors
-
find_cartesian_coordinates_given_scanner_coordinates_of_the_front_surface. This is not used. -
find_cartesian_coordinates_given_scanner_coordinates(replace withget_LORorget_LOR_as_2_points). Used inCListEventCylindricalScannerWithDiscreteDetectors::get_LORfind_cartesian_coordinates_of_detection
Of course, many of these are also used in test_proj_data_info.cxx
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the listed functions in ProjDataInfoCylindrical and ProjDataInfoCylindricalNoArcCorr, then inspect their callers in the named source files, including RigidObject3DTransformation.cxx, construct_randoms_from_singles.cxx, MLnorm.cxx, and test_proj_data_info.cxx. Done means obsolete functions are removed or given the stated access level, callers use the replacement APIs, and the affected tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100