STIR
6.2.0
|
Classes | |
class | stir::FrameSinglesRates |
A single frame of singles information. More... | |
class | stir::SinglesRates |
The base-class for using singles info. More... | |
class | stir::SinglesRatesForTimeFrames |
A class for singles rates that are recorded in time frames. More... | |
class | stir::SinglesRatesForTimeSlices |
A class for singles that are recorded at equal time intervals. More... | |
class | stir::ecat::ecat7::SinglesRatesFromECAT7 |
A class that extracts singles info from an ECAT7 sinogram file. More... | |
class | stir::GE::RDF_HDF5::SinglesRatesFromGEHDF5 |
A class for reading singles over the number of time samples from an GE HDF5 .BLF listmode file format. More... | |
class | stir::ecat::ecat7::SinglesRatesFromSglFile |
A class for reading/writing singles from an ECAT7 .sgl file. More... | |
Functions | |
void | stir::randoms_from_singles (ProjData &proj_data, const SinglesRates &singles, float coincidence_time_window=-1.F, float radionuclide_halflife=-1.F) |
Estimate randoms from singles (RFS) More... | |
void stir::randoms_from_singles | ( | ProjData & | proj_data, |
const SinglesRates & | singles, | ||
float | coincidence_time_window = -1.F , |
||
float | radionuclide_halflife = -1.F |
||
) |
Estimate randoms from singles (RFS)
[in,out] | proj_data | Projection data to store output. It needs to be properly initialised with sizes etc. If coincidence_time_window or radionuclide_halflife are invalid, they will be determined from the proj_data. |
[in] | singles | Input value for RFS |
[in] | coincidence_time_window | Scanner coincidence window (in secs). Deprecated. |
[in] | radionuclide_halflife | half-life. Deprecated. |
This uses the formula (with the coincidence_time_window
) for finding the randoms-rate in terms of the singles-rates. The function then takes duration properly into account using the following procedure. This uses isotope_halflife
in the computation of . Default value is -1 and the function will extract isotope_halflife
from proj_data
. If set, will use the passed value.
We actually have total counts in the singles for sinograms and need total counts in the randoms. Assuming the radioactivity distribution is stationary and only decays, and dropping indices , we get
Integrating over time, and writing $r$ for the integral of $R$ etc
converting that to total singles $s$ in the time frame, we get
For more details, see: Stearns, C. W., McDaniel, D. L., Kohlmyer, S. G., Arul, P. R., Geiser, B. P., & Shanmugam, V. (2003). Random coincidence estimation from single event rates on the Discovery ST PET/CT scanner. 2003 IEEE Nuclear Science Symposium. Conference Record (IEEE Cat. No.03CH37515), 5, 3067-3069. https://doi.org/10.1109/NSSMIC.2003.1352545
References stir::decay_correction_factor(), stir::ExamData::get_exam_info_sptr(), stir::Radionuclide::get_half_life(), stir::ProjData::get_proj_data_info_sptr(), stir::ExamInfo::get_radionuclide(), stir::SinglesRates::get_singles(), stir::info(), stir::multiply_crystal_factors(), and stir::square().