18.5 Analyzing Singles
Table of Contents
Energy spectra
Singles data contains one entry for each detected event after digitization, which is ideal for building energy spectra. At this stage, detector effects such as energy summation, blurring, and thresholds have already been applied, so the spectra you obtain are close to what a real detector would measure.
To create an energy spectrum, you typically fill a histogram with the singles energy values. In ROOT or Python, you read the singles tree or table, select the column that stores deposited or reconstructed energy (often in keV), and bin these values into an energy histogram. The horizontal axis represents energy and the vertical axis represents the number of singles per energy bin.
You should recognize typical spectral features. For PET, the 511 keV photopeak appears as a clear peak, possibly with a low-energy tail due to incomplete energy deposition. For SPECT or gamma cameras, one or more photopeaks appear at the main gamma energies of the radionuclide, with a continuum below due to scattered photons. Identifying these structures helps you decide on energy windows and evaluate the detector energy resolution.
Energy resolution is often quantified by the full width at half maximum, FWHM, of a photopeak. If $E_\text{peak}$ is the peak position and $\text{FWHM}$ its width at half maximum, the relative energy resolution is defined as
Energy resolution (relative):
$$ R_E = \frac{\text{FWHM}}{E_\text{peak}} \times 100 \,\% $$
You obtain the FWHM by fitting the photopeak with a Gaussian function or by directly measuring the width at half maximum from the histogram. Comparing the simulated resolution to the expected or measured value is a standard validation step.
Energy spectra of singles are also used to tune the digitizer. You can change the Gaussian blurring parameters and thresholds in the digitizer chain and re-run the simulation until the simulated photopeak height, width, and low-energy tail qualitatively or quantitatively match reference measurements.
Finally, energy spectra guide the definition of primary and scatter windows. For PET, you select an energy window around the 511 keV photopeak to reject most scattered and random events. For SPECT, you may define one main photopeak window and one or more scatter windows below the peak, based on the observed spectrum. Singles spectra give immediate feedback on how these windows affect which events are kept or discarded.
Count rates
Singles allow you to estimate how many detector events occur per unit time, which is essential for evaluating scanner performance, dead time, and expected statistical noise. Each single usually has an associated detection time and event weight, so you can count how many singles occur within a known acquisition duration.
If $N_\text{singles}$ is the total number of singles recorded during a simulated acquisition time $T$, the average singles count rate is
Singles count rate:
$$ R_\text{singles} = \frac{N_\text{singles}}{T} \quad [\text{counts/s}] $$
Be careful with units. If $T$ is provided in nanoseconds or microseconds, convert it to seconds before computing the count rate. For time-dependent simulations, you can divide the acquisition into time bins and compute a count rate for each bin by counting how many singles fall into each time interval.
Count rates can be compared to expected or measured values to check whether your source activity, geometry, and detector efficiency are realistic. For example, increasing the source activity should increase the singles count rate approximately linearly at low activities. At higher activities, dead-time models in the digitizer may cause saturation, so the increase becomes sublinear. If your simulation includes dead time, you can compare the ideal rate predicted from activity and detection probability with the measured singles rate to verify the dead-time implementation.
You can also separate singles into different categories and compute count rates for each. For PET, this might be prompt singles within the energy window, scattered singles, and random-related singles. In a SPECT simulation, you can count how many singles fall into the main energy window versus scatter windows. This type of breakdown helps you understand how activity, attenuation, and scatter influence the distribution of detected events.
When interpreting count rates, also consider statistical uncertainty. If $N_\text{singles}$ events are counted, the statistical uncertainty on that count is approximately $\sqrt{N_\text{singles}}$ for independent events. The relative uncertainty of the rate is then $\sqrt{N_\text{singles}} / N_\text{singles}$, which decreases as you simulate more events. This relation guides how many primary histories you need to simulate to achieve a desired level of precision on singles-based metrics.
Detector occupancy
Detector occupancy describes how singles are distributed among detector elements, such as crystals, modules, or pixels. It is computed by grouping singles by detector identifier and counting how many events each detector element records.
A simple way to quantify occupancy is to count the number of singles $N_i$ in each detector element $i$. You can also normalize these counts in different ways. If $N_\text{tot}$ is the total number of singles, the fractional occupancy of element $i$ is given by
Fractional occupancy of detector element $i$:
$$ f_i = \frac{N_i}{N_\text{tot}} $$
This quantity describes the proportion of all detected events that occurred in a given crystal or pixel. For ring-based PET scanners, you might also group crystals by ring or axial position and compute the occupancy per ring to see how uniform the detection is along the axial direction.
Visualization is particularly helpful. You can map counts or fractional occupancies onto a 1D index, a 2D crystal array, or even a 3D representation of the detector. Hot spots reveal regions with higher detection rates, while cold spots reveal underperforming or shadowed regions. In a perfectly symmetric scanner with a central source, you expect symmetric occupancy patterns. Deviations can indicate problems such as misalignment, missing volumes, or incorrect attenuation.
Detector occupancy is also influenced by attenuation and scatter in the object being imaged. For nonuniform phantoms or patients, some regions of the detector will naturally see more photons than others. By comparing occupancy patterns for simple symmetric phantoms to more complex ones, you can separate hardware effects from object effects.
Singles occupancy is useful for validating geometry and detector response. If an entire module or ring shows zero occupancy, there may be a geometry overlap, a missing material assignment, or an incorrect digitizer configuration that prevents hits from being converted into singles for that portion of the detector. If one region shows significantly higher occupancy than expected, there may be a mistake in detector indexing or an unintended concentration of activity.
Finally, occupancy information can feed into later performance metrics. Highly nonuniform occupancy may impact energy and timing calibration, or introduce biases in image reconstruction. By analyzing singles occupancy early, you can correct these issues at the simulation or digitizer level before using the data for coincidences, reconstruction, or quantitative studies.
Views: 11
KAHIBARO