|
STIR 6.4.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) | |
| 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 

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 
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 
![\[ R_{ij}(t) = \tau * S_i(0) S_j(0) exp (-2 \lambda t)
\]](form_10.png)
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)
\]](form_11.png)
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}
\]](form_12.png)
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 decay_correction_factor(), stir::ExamData::get_exam_info_sptr(), stir::Radionuclide::get_half_life(), stir::DataWithProjDataInfo::get_proj_data_info_sptr(), stir::ExamInfo::get_radionuclide(), stir::SinglesRates::get_singles(), info(), randoms_from_singles(), and square().
Referenced by randoms_from_singles().