diff --git a/documentation/release_6.1.htm b/documentation/release_6.1.htm
index 294a01373..899265a79 100644
--- a/documentation/release_6.1.htm
+++ b/documentation/release_6.1.htm
@@ -52,6 +52,7 @@
New functionality
-
Add TOF capability of the parallelproj projector (see PR #1356)
+ Read TOF bin order from interfile header (see PR #1389)
diff --git a/src/IO/InterfileHeader.cxx b/src/IO/InterfileHeader.cxx
index aed8ea910..ec911f68a 100644
--- a/src/IO/InterfileHeader.cxx
+++ b/src/IO/InterfileHeader.cxx
@@ -617,6 +617,8 @@ InterfilePDFSHeader::InterfilePDFSHeader()
#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;
add_key("Size of unmashed TOF time bins (ps)", &size_of_timing_pos);
#if STIR_VERSION < 070000
@@ -701,7 +703,7 @@ InterfilePDFSHeader::find_storage_order()
// TOF
if (matrix_labels[4] == "timing positions")
{
- num_timing_poss = matrix_size[4][0];
+ this->num_timing_poss = matrix_size[4][0];
}
else
{
@@ -1023,6 +1025,17 @@ InterfilePDFSHeader::post_processing()
<< endl;
#endif
+ // TOF order
+ if (this->timing_poss_sequence.size())
+ {
+ if (this->timing_poss_sequence.size() != static_cast::size_type>(this->num_timing_poss))
+ {
+ warning("Inconsistent number of TOF bins (" + std::to_string(this->num_timing_poss)
+ + ") and size of the 'TOF bin order' list (" + std::to_string(this->timing_poss_sequence.size()) + ").");
+ // return true;
+ }
+ }
+
// handle scanner
shared_ptr guessed_scanner_ptr(Scanner::get_scanner_from_name(get_exam_info().originating_system));