STIR  6.2.0
Files | Classes | Functions
Collaboration diagram for Singles rates etc:

Files

file  randoms_from_singles.cxx
 Implementation of stir::randoms_from_singles.
 
file  SinglesRates.cxx
 Implementation of stir::FrameSinglesRates and stir::SinglesRates.
 
file  SinglesRatesForTimeFrames.cxx
 Implementation of stir::SinglesRatesForTimeFrames.
 
file  SinglesRatesForTimeSlices.cxx
 Implementation of stir::SinglesRatesForTimeSlices.
 
file  SinglesRatesFromECAT7.cxx
 Implementation of stir::ecat::ecat7::SinglesRatesFromECAT7.
 
file  SinglesRatesFromGEHDF5.cxx
 Implementation of stir::GE::RDF_HDF5::SinglesRatesFromGEHDF5.
 
file  SinglesRatesFromSglFile.cxx
 Implementation of stir::ecat::ecat7::SinglesRatesFromECAT7.
 
file  randoms_from_singles.h
 declare stir:randoms_from_singles
 
file  SinglesRates.h
 Declaration of class stir::SinglesRates.
 
file  SinglesRates.inl
 Implementation of class stir::SinglesRates.
 
file  SinglesRatesForTimeFrames.h
 Declaration of class stir::SinglesRatesForTimeFrames.
 
file  SinglesRatesForTimeSlices.h
 Declaration of class stir::SinglesRatesForTimeSlices.
 
file  SinglesRatesFromECAT7.h
 Declaration of class stir::ecat::ecat7::SinglesRatesFromECAT7.
 
file  SinglesRatesFromGEHDF5.h
 Declaration of class stir::GE::RDF_HDF5::SinglesRatesFromGEHDF5.
 
file  SinglesRatesFromSglFile.h
 Declaration of class stir::SinglesRatesFromSglFile.
 

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...
 

Detailed Description

Function Documentation

◆ randoms_from_singles()

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)

Parameters
[in,out]proj_dataProjection 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]singlesInput value for RFS
[in]coincidence_time_windowScanner coincidence window (in secs). Deprecated.
[in]radionuclide_halflifehalf-life. Deprecated.

This uses the formula $ R_{ij}= \tau S_i S_j $ (with $\tau$ 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 $\lambda$. 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 $i,j$, we get

\[ R_{ij}(t) = \tau * S_i(0) S_j(0) exp (-2 \lambda t) \]

Integrating over time, and writing $r$ for the integral of $R$ etc

\[ r_{ij} = \tau S_i(0) S_j(0) \int_{t_1}^{t_2} dt\,exp (-2 \lambda t) \]

converting that to total singles $s$ in the time frame, we get

\[ r_{ij} = \tau s_i s_j \frac{ \int_{t_1}^{t_2} dt\,exp (-2 \lambda t)}{\left(\int_{t1}^{t2} dt\,exp (-\lambda t)\right)^2} \]

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

Todo:
Dead-time is currently completely ignored.

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().