UCL/STIR

coincidence window width is required for RFS

KrisThielemans opened this issue · 0 comments

randoms-from-singles needs to know the coincidence window width. The TOF PR introduced

ProjDataInfo::get_coincidence_window_in_pico_sec() const
{
return scanner_ptr->is_tof_ready()? (scanner_ptr->get_max_num_timing_poss() *
scanner_ptr->get_size_of_timing_pos())
:(scanner_ptr->get_size_of_timing_pos());
}

but this only works for TOF-ready scanners.

Of course, we don't know the width for most scanners currently in STIR.

Luckily, RFS is currently only used for GE scanners. The GE RDF data-format does store it (even before they had TOF)

const int posCoincidenceWindow = read_dataset_int32("/HeaderData/AcqParameters/EDCATParameters/posCoincidenceWindow");
const int negCoincidenceWindow = read_dataset_int32("/HeaderData/AcqParameters/EDCATParameters/negCoincidenceWindow");
const float coincTimingPrecisionInPico = read_float(file, "/HeaderData/AcqParameters/EDCATParameters/coincTimingPrecision") * 1000; // in nanoSecs in file
const int num_tof_bins = posCoincidenceWindow + negCoincidenceWindow + 1;

I guess at the moment we can only throw an error if the data is not known.