Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modifications for psmr2024 #1430

Open
wants to merge 83 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 81 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
9e246fd
Adding support for singleTOF scanner.
NikEfth Mar 26, 2024
4634d30
Fast reconstruction for LAFOV scanners
NikEfth May 15, 2024
4ba55e6
Update src/buildblock/ProjDataInfo.cxx
NikEfth May 16, 2024
f5d663d
Update src/include/stir/ProjDataInfo.inl
NikEfth May 16, 2024
438be2f
Update src/recon_buildblock/ProjMatrixByBin.cxx
NikEfth May 16, 2024
0fb593d
Minor fixes and comments.
NikEfth May 16, 2024
7bf7e52
Minor fixes and executable to cache listmode files without reconstruc…
NikEfth May 16, 2024
6aa04b0
Update CMakeLists.txt
NikEfth May 16, 2024
5fa949c
Update src/IO/InterfileHeader.cxx
NikEfth May 16, 2024
e67faec
Minor fixes
NikEfth May 16, 2024
e7a2656
Merge branch 'master' into modifications_for_psmr2024
NikEfth May 16, 2024
9179482
Split GeneralisedPriorTests into several classes
KrisThielemans Apr 26, 2024
f7c15e6
fix abs() bug for RDP and slightly cleaner code
KrisThielemans Apr 26, 2024
a9c3ddb
change RDP Hessian behaviour at 0,0 when epsilon==0
KrisThielemans Apr 27, 2024
005acb2
extra tests for the Relative Difference Prior
KrisThielemans Apr 26, 2024
b7f727d
make epsilon in numerical test for prior gradient a bit smaller
KrisThielemans Apr 27, 2024
d8b3826
fix and document RDP large limit test for numerical error
KrisThielemans Apr 27, 2024
f17a7b0
update RDP doc [ci skip]
KrisThielemans Apr 27, 2024
619cc86
increase numerical precision of priors
KrisThielemans Apr 27, 2024
32dc591
[GHA] remove explicit setting of xcode version
KrisThielemans Apr 28, 2024
fa21161
update Byte Order compile-time checks
KrisThielemans Apr 30, 2024
ead279e
fix white-space
KrisThielemans May 9, 2024
205218d
List-mode objective function: always uses OpenMP for gradient
KrisThielemans May 9, 2024
eb31e8d
use more local variables in LM_distributable_computation
KrisThielemans May 10, 2024
45a102c
prepare LM_distributable function for Hessian
KrisThielemans May 12, 2024
7286488
minor clean-up and clarifications
NikEfth May 16, 2024
e1438a8
LM_listmode_function: implement Hessian and move functions
KrisThielemans May 12, 2024
60445db
fix error when OpenMP is not present
KrisThielemans May 12, 2024
7487039
Add compute_gradient* (as opposed to only subset)
KrisThielemans May 13, 2024
055b17e
Move common test to ObjectiveFunctionTests
KrisThielemans May 13, 2024
e11fbf9
add numerical test for accumulate_Hessian_times_input
KrisThielemans May 13, 2024
2315597
fix sign of LM Hessian
KrisThielemans May 13, 2024
9022195
LM obj-fun: add value() and tests
KrisThielemans May 13, 2024
f2f29bd
LM objfun tests slightly better diagnostics
KrisThielemans May 13, 2024
735e590
[GHA] upload ctest artefact if failure
KrisThielemans May 13, 2024
f3daa55
add "increment" test for gradient (enabled for LM data)
KrisThielemans May 14, 2024
0be2403
[GHA] disabled LM objfunc test on MacOS
KrisThielemans May 14, 2024
db1d7b7
fix return value FastErf::get_maximum_sample_value
KrisThielemans May 14, 2024
5864938
[CMake] force C++ version for more recent ROOT
KrisThielemans May 14, 2024
c813638
update to 6.1 and minor doc improvements
KrisThielemans May 14, 2024
a7bbe64
minor changes preparing for 6.1
KrisThielemans May 15, 2024
58143b1
Changing all occurrences of abs() to std::abs() (#1425)
markus-jehl May 15, 2024
b7003ad
add TOF loop in computation of Hessian for projdata
KrisThielemans May 15, 2024
1f6f8c5
fix set_up of norm in TOF ProjData gradient
KrisThielemans May 16, 2024
f4c1fb4
small rationalising of warnings
KrisThielemans May 16, 2024
44af378
let git blame ignore some maintenance commits
KrisThielemans May 16, 2024
23be801
updates to release notes
KrisThielemans May 16, 2024
d6231b0
update CITATION.cff according to git-fame
KrisThielemans May 16, 2024
1180e45
small change to credits
KrisThielemans May 16, 2024
4eac4ed
update history for release 6.1
KrisThielemans May 16, 2024
4439d5f
change comment to avoid confusing doxygen [ci skip]
KrisThielemans May 16, 2024
055f1c1
Merge remote-tracking branch 'refs/remotes/origin/modifications_for_p…
NikEfth May 16, 2024
0d6516b
New utility to convert ProjData to FanProjData3D.
NikEfth May 17, 2024
5c1af3f
Added option to load the model fanprojdata from the disk.
NikEfth May 17, 2024
a743a32
Update src/buildblock/Scanner.cxx
NikEfth May 17, 2024
c05dc3e
Fixes for test_time_of_flight.
NikEfth May 17, 2024
da59b78
minor fix
NikEfth May 17, 2024
fc36235
Fix to pass recon tests
NikEfth May 17, 2024
21597d0
find ML normalization from listmode data.
NikEfth May 17, 2024
9162578
Parallelization changes and labels
NikEfth May 17, 2024
069231c
Important fix.
NikEfth May 17, 2024
74fe00b
OpenMP parallelise Array::sum/find_max/find_min
KrisThielemans May 17, 2024
b297080
parallelise some functions in ML_norm
KrisThielemans May 17, 2024
75b9d66
ML_norm estimation: avoid doing some block calculations if !do_block
KrisThielemans May 17, 2024
3b56f1a
some ML_norm parallelisations
KrisThielemans May 17, 2024
c54c8a5
set KL_threshold to avoid problems
KrisThielemans May 17, 2024
6c411d8
More parallelization.
NikEfth May 18, 2024
a455248
small fix
NikEfth May 18, 2024
23cd5c4
fixes minor
NikEfth May 18, 2024
9860aa3
parallellized apply_geo_norm
NikEfth May 18, 2024
e1149e2
Fix single TOF position
NikEfth May 18, 2024
14f3cea
Print TOF
NikEfth May 18, 2024
2100f42
extra documentation for ML_estimate_component_based_normalisation
KrisThielemans May 18, 2024
a5d816a
[SWIG] expose ML_estimate etc.
KrisThielemans May 18, 2024
a22c45c
remove hard-wired 50 threads
KrisThielemans May 18, 2024
4aa5466
Some restructuring, needed.
NikEfth May 18, 2024
b1333e7
Merge remote-tracking branch 'refs/remotes/origin/modifications_for_p…
NikEfth May 18, 2024
53c9d05
fix writing of single-TOF bin data
KrisThielemans May 19, 2024
0c18fb6
another fix on tof data
KrisThielemans May 19, 2024
9520af8
Merge remote-tracking branch 'origin/master' into modifications_for_p…
KrisThielemans Jun 1, 2024
7eea917
fix Interfile writing of TOF data with 1 TOF bin
KrisThielemans Jun 1, 2024
d26b68a
replace std::cout calls with info()
KrisThielemans Jun 1, 2024
34a35de
Merge remote-tracking branch 'origin/master' into modifications_for_p…
KrisThielemans Jun 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions recon_test_pack/root_header.hroot
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ View offset (degrees) := 0
Maximum number of (unmashed) TOF time bins := 5
Size of unmashed TOF time bins (ps) := 820.0
TOF timing resolution (ps) := 400.0
TOF mashing factor:= 1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we shouldn't need to add this.


GATE scanner type := GATE_Cylindrical_PET
GATE_Cylindrical_PET Parameters :=
Expand Down
6 changes: 3 additions & 3 deletions src/IO/InterfileHeader.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -612,19 +612,19 @@ InterfilePDFSHeader::InterfilePDFSHeader()
reference_energy = -1.f;
add_key("Reference energy (in keV)", &reference_energy);

max_num_timing_poss = -1;
max_num_timing_poss = 1;
KrisThielemans marked this conversation as resolved.
Show resolved Hide resolved
add_key("Maximum number of (unmashed) TOF time bins", &max_num_timing_poss);
#if STIR_VERSION < 070000
add_alias_key("Maximum number of (unmashed) TOF time bins", "Number of TOF time bins");
#endif
timing_poss_sequence.clear();
add_key("TOF bin order", &timing_poss_sequence);
size_of_timing_pos = -1.f;
size_of_timing_pos = 0.0f;
add_key("Size of unmashed TOF time bins (ps)", &size_of_timing_pos);
#if STIR_VERSION < 070000
add_alias_key("Size of unmashed TOF time bins (ps)", "Size of timing bin (ps)");
#endif
timing_resolution = -1.f;
timing_resolution = 0.0f;
add_key("TOF timing resolution (ps)", &timing_resolution);
#if STIR_VERSION < 070000
add_alias_key("TOF timing resolution (ps)", "timing resolution (ps)");
Expand Down
9 changes: 6 additions & 3 deletions src/IO/interfile.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1201,7 +1201,7 @@ write_basic_interfile_PDFS_header(const string& header_file_name, const string&

// it's PET data if we get here
// N.E. Added timing locations
const bool is_TOF = pdfs.get_proj_data_info_sptr()->get_num_tof_poss() > 1;
const bool is_TOF = pdfs.get_proj_data_info_sptr()->is_tof_data();
output_header << "number of dimensions := " + std::to_string(is_TOF ? 5 : 4) + "\n";

// TODO support more ?
Expand All @@ -1225,12 +1225,16 @@ write_basic_interfile_PDFS_header(const string& header_file_name, const string&
*/
{
case ProjDataFromStream::Segment_View_AxialPos_TangPos: {
if (is_TOF) // TOF data with 1 timing position
order_of_timing_poss = 5;
order_of_segment = 4;
order_of_view = 3;
order_of_z = 2;
break;
}
case ProjDataFromStream::Segment_AxialPos_View_TangPos: {
if (is_TOF) // TOF data with 1 timing position
order_of_timing_poss = 5;
order_of_segment = 4;
order_of_view = 2;
order_of_z = 3;
Expand All @@ -1252,8 +1256,7 @@ write_basic_interfile_PDFS_header(const string& header_file_name, const string&
if (order_of_timing_poss > 0)
{
output_header << "matrix axis label [" << order_of_timing_poss << "] := timing positions\n";
output_header << "!matrix size [" << order_of_timing_poss << "] := " << pdfs.get_timing_poss_sequence_in_stream().size()
<< "\n";
output_header << "!matrix size [" << order_of_timing_poss << "] := " << pdfs.get_num_tof_poss() << "\n";
}

output_header << "matrix axis label [" << order_of_segment << "] := segment\n";
Expand Down
4 changes: 2 additions & 2 deletions src/buildblock/FilePath.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ FilePath::is_directory() const
struct stat info;

if (stat(my_string.c_str(), &info) != 0)
error(boost::format("FilePath: Cannot access %1%.") % my_string);
warning(boost::format("FilePath: Cannot access %1%.") % my_string);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did we make this change?

else if (info.st_mode & S_IFDIR)
return true;
#endif
Expand All @@ -92,7 +92,7 @@ FilePath::is_regular_file() const
struct stat info;

if (stat(my_string.c_str(), &info) != 0)
error(boost::format("FilePath: Cannot access %1%.") % my_string);
warning(boost::format("FilePath: Cannot access %1%.") % my_string);
else if (info.st_mode & S_IFREG)
return true;
#endif
Expand Down
Loading
Loading