Skip to content

Conversation

@KrisThielemans
Copy link
Collaborator

This should bring master up-to-date again.

@rijobro I have updated the scatter bits, but haven't checked the rest. In particular the NiftyPET code needs your attention.

NikEfth and others added 30 commits February 23, 2018 20:55
When setting up without a subsampled image and not subsampling then setup would fail

More info on the progress
This was a very weird merge from my point of view. :S
Summary: The tangential coordinate downsampling is not specified and currently set to the same value as the number of views.
Currently tests downsampling of the scanner and the image for scatter points. 
This commit might break the Scatter Estimation, as I made some changes in the input args of some functions. I made the changes having in mind the test flow and usability at SIRF. I will fix everything when re-working on the Scatter Estimation.
A test introduced for scatter simulation using only one voxel for the activity and attenuation. The results looks reasonable however, I do not know how to automate the check.
I tried to write a mini scatter estimation, but I feel that it is getting longer than I thought. It might not worth it.
From SIRF is hard to know whether a parameter was successfully set. Therefore I introduce this type of functions.
It is a reasonable energy window
- New function for default downsampling
- Test for default downsampling 
- Test in recon_test_pack for scatter simulation 
- Comparison between new scatter simulation and old
- Re-ordering the ScatterSimulation header and improvement of general organisation 
- set_up() moved to public in order to be accessible from SIRF
-
We just returned Succeeded::no without feedback before.

also corrected some small typos etc
- remove restriction that unscaled_proj_data is ProjDataInMemory
- check return value of ScatterSimulation::process_data()
- minor typos and grammar fixes
Co-Authored-By: Kris Thielemans <KrisThielemans@users.noreply.github.com>
Co-Authored-By: Kris Thielemans <KrisThielemans@users.noreply.github.com>
Co-Authored-By: Kris Thielemans <KrisThielemans@users.noreply.github.com>
Co-Authored-By: Kris Thielemans <KrisThielemans@users.noreply.github.com>
KrisThielemans and others added 18 commits May 18, 2020 15:33
- revert to use anatomical_prior_sptrs.size() as using an_size could lead to uninitialised values possibly
- avoid calling set_anatomical_prior_sptr(anatomical_prior_sptr[i],i) which seemed to lead to undefined behaviour on some systems
- using unsigned int i for loops over anatomical_priors_sptrs.size() to avoid warnings. (had to use i<size() then to avoid wrap-around)
This means that the reconstruction will check if set_up() is after one
of the set_*() functions has changed any parameters
Triple-energy window scatter correction with different window widths.

fixes UCL#524
various fixes to KOSMAPOSL to make it safe to be called without parsing (e.g. from Python or SIRF). Also enable using only the functional kernel (without anatomical priors)

- moved non-parsing related checks from post_processing to set_up().
- set_defaults() clears all vectors that are not set in set_up(), such that it's safe to re-use the same object.
- change set_anatomical_image_filenames to set_anatomical_image_filename as it's setting only a single filename.
- change name of vector members from singular to plural, ex: anatamical_prior_sptr -> anatomical prior_sptrs,
- safer assignment of vector elements in set functions,
- set_up() checks that every anatomical image has been set
- using unsigned int i for loops over anatomical_priors_sptrs.size() to avoid warnings. (had to use i<size() then to avoid wrap-around)
- set _already_set_up=false in all set() functions. This means that the reconstruction will check if set_up() is called after one of the set_*() functions has changed any parameters

related to SyneRBI/SIRF#654

Co-authored-by: Kris Thielemans <k.thielemans@ucl.ac.uk>
This sets Compiler Id for Apple Clang to AppleClang

Fixes UCL#531
merge Release 4.0 updates to release_4
Had to make some changes in scatter related to `shared_ptr<const ...>`
moved lines on shared_ptr<const...> from release_4.0 to 5.0, restoring the 4.0 release notes.
@KrisThielemans KrisThielemans requested a review from rijobro May 23, 2020 06:23
@KrisThielemans KrisThielemans added this to the v5.0 milestone May 23, 2020
@rijobro
Copy link
Collaborator

rijobro commented May 26, 2020

Everything builds fine (including NiftyPET). All ctests and recon test pack are fine!

@KrisThielemans
Copy link
Collaborator Author

seems that #550 to enforce C++11 didn't work. One Travis job is failing accordingly. Also seen by @jafische in #507

Argument handling in CMake macro's tripped me up. This version
improves on UCL#550 and should work (test locally).

Fixes UCL#99
@KrisThielemans
Copy link
Collaborator Author

Linux clang-5 job failed due to log-file exceeded. https://travis-ci.org/github/UCL/STIR/jobs/691726126. Main culprit is auto_ptr<...> is deprecated. This is despite

-- Using C++ version 11
...
-- Performing Test HAVE_STD_UNIQUE_PTR
-- Performing Test HAVE_STD_UNIQUE_PTR - Success

This is because we still check BOOST_NO_CXX11_SMART_PTR which is presumably not happy with the clang-5 implementation.

#if defined(BOOST_NO_CXX11_SMART_PTR) && !defined(STIR_NO_UNIQUE_PTR)
# define STIR_NO_UNIQUE_PTR
#endif

I'll disable this check

@KrisThielemans
Copy link
Collaborator Author

codacy failure is in the NiftyPET projector, but is minor so I'll ignore it.

@KrisThielemans KrisThielemans merged commit c9aa0e4 into UCL:master May 28, 2020
@KrisThielemans KrisThielemans deleted the rel4tomaster branch October 17, 2020 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants