Monte Carlo settings: g4em-penelope electromagnetic physics with atomic
de-excitation (fluorescence, Auger, PIXE) turned on; 0.05 mm production cuts.
Reference systems: Siemens Symbia (NaI, 9.5 mm) and GE StarGuide (CZT, 7.25 mm).
Mono-energetic pencil beam into a large bare crystal slab, scored with
TsEDepSpectrum (examples/component/energy_response.txt). The NaI response at 140.5 keV
shows the expected structure:
- Full-energy photopeak at 140.5 keV.
- Iodine K-escape peak at ~112 keV (140.5 keV - 28.6 keV Kalpha).
- Compton continuum terminating at the Compton edge (~49.8 keV predicted).
Photopeak-window efficiency (20% window, fraction of incident photons depositing within the window), from 10^6 photons:
| Crystal | 113 keV | 140.5 keV | 208 keV | 218 keV | 250 keV | 440 keV |
|---|---|---|---|---|---|---|
| NaI 9.5 mm | 0.944 | 0.862 | 0.545 | 0.505 | 0.400 | 0.149 |
| CZT 7.25 mm | 0.968 | 0.905 | 0.607 | 0.566 | 0.456 | 0.178 |
Trends are physical: efficiency falls with energy; CZT exceeds NaI at matched energy (higher density and effective Z despite the thinner crystal).
Note: Geant4 scores energy deposition. The CZT low-energy tail from incomplete charge collection (hole tailing / charge sharing) is a charge-transport effect and is not included; it is applied as a separate empirical model where required.
Point source at 5-30 cm in front of a TsParallelHoleCollimator + crystal
(examples/component/collimator_detector_response.txt). The simulated point-spread width
(FWHM) broadens linearly with source-to-collimator distance, as expected for a
parallel-hole collimator.
Symbia LEHR at 140.5 keV (mm):
| Distance | 10 cm | 15 cm | 20 cm | 30 cm |
|---|---|---|---|---|
| MC | 5.3 | 7.3 | 9.3 | 13.3 |
| Analytic | 5.9 | 8.3 | 10.6 | 15.4 |
The MC point-spread width matches the analytic parallel-hole geometric-resolution expression across the full distance range, reproducing its linear distance-dependence and agreeing at the 10 cm reference distance to within a fraction of a millimeter.
Higher-energy lines broaden through septal penetration. For the Symbia high-energy collimator at 440 keV the core FWHM is 14.3 mm at 10 cm, but including the penetration wing the full width grows by ~70%.
Isotropic point source + collimator + crystal, counts in the photopeak window
divided by emitted decays (examples/system/symbia_lehr_sensitivity.txt). Symbia LEHR at 10 cm:
| Quantity | Value |
|---|---|
| Monte Carlo | 8.6e-5 counts/decay |
| Published (5460 cpm/MBq) | 9.1e-5 counts/decay |
| Ratio | 0.95 |
This validates the full forward chain (collimator transport, crystal response and photopeak windowing) at absolute scale with no tuning.
The collimator presets in systems/ were checked by absolute planar
sensitivity: an isotropic point source at 10 cm, a collimator sized wider than the crystal (so
no photons bypass its edge), and photopeak-window (126.5-154.6 keV) counts divided by emitted
decays. Each row is reproducible from a shipped deck (examples/system/<preset>_sensitivity.txt).
Results are compared against an independent Monte Carlo characterization of the GE Discovery NM/CT
670 geometry (Sawant et al., J Nucl Med Technol 2025;53:30-35, SIMIND) and, for the Siemens Symbia
LEHR, against the measured NEMA sensitivity.
99mTc (140.5 keV), counts/decay (5x10^7 histories, ~1.5% statistical):
| Collimator | OpenTOPAS-SPECT | Reference | Ratio |
|---|---|---|---|
| Siemens Symbia LEHR | 8.6e-5 | 9.1e-5 (measured, section 3) | 0.95 |
| GE LEHR | 9.15e-5 | 7.6-8.5e-5 (SIMIND) | 1.08-1.20 |
| GE MEGP | 9.32e-5 | 7.4-8.3e-5 (SIMIND) | 1.12-1.26 |
| GE HEGP | 1.09e-4 | 1.00e-4 (SIMIND) | 1.09 |
Where a measured reference exists (Symbia LEHR, NEMA) the model agrees within ~5% (ratio 0.95), which anchors the absolute scale. The GE presets read ~10-25% above the SIMIND study, within the spread typical of SPECT Monte Carlo inter-comparisons. Decomposing that excess against an opaque-septa (geometric-only) reference separates two contributions:
- Geometric hole efficiency (dominant). The geometric-only GE LEHR sensitivity (8.7e-5) already
sits at the top of the SIMIND range before any penetration, so most of the gap is the open-area of
the explicit hexagonal-hole geometry (open fraction
[d/(d+t)]^2= 78% LEHR, 55% MEGP, 48% HEGP) versus the reference collimator model, plus inter-code differences in window, backscatter, and the unmodeled crystal cover. - Septal penetration and collimator scatter (secondary). Adding the real lead septa raises the 140 keV sensitivity by 4.8% (LEHR, 0.2 mm septa), 2.9% (MEGP), and 2.7% (HEGP): small at the imaging energy but correctly ordered by septal thickness, which is what makes the low-resolution collimators read slightly higher than the high-resolution ones.
Septal penetration is strongly energy-dependent, and is exercised directly at 364 keV (131I), where a low-resolution collimator becomes penetration-dominated: the ratio of LEHR to HEGP sensitivity at 364 keV is 64.8 (OpenTOPAS-SPECT) versus 67.7 (SIMIND), confirming that penetration through the thin LEHR septa is transported correctly.
Geometric resolution: the analytic parallel-hole resolution computed from the encoded hole diameter and length, combined in quadrature with a typical NaI intrinsic resolution, reproduces the published planar FWHM within ~10% (GE LEHR 6.9 vs 7.2 mm, MEGP 9.0 vs 9.7 mm, HEGP 10.7 vs 12.1 mm at 99mTc).
All systems/ presets were additionally confirmed to build with no geometry overlaps and to
score correctly for round, hexagonal, and square holes across the NaI and CZT/tungsten material
sets (OpenTOPAS 4.2.p2 / Geant4 11.2.2).
The phantoms/scenarios/ presets were checked not only for building
and emitting, but for physical correctness of the activity distribution. Each phantom was imaged
in an anterior view by a numerical parallel-hole collimator: a phase-space plane just outside
the torso records exiting photons, and only those travelling nearly perpendicular to it (direction
cosine along the bore < −0.985) are kept, so a photon that survives that cut leaves the detector-plane
position equal to its origin (x, z), giving a clean parallel projection that also carries the
tissue attenuation. Three quantitative tests, all passed (OpenTOPAS 4.2.p2):
- Localization, for every hot region across all four scenarios (~30 regions), the detected-signal
centroid falls within 1–2 mm of the region's true
(x, z)(method verified against a known point source: recovered 59.9/100.5 mm vs true 60/100 mm). - Left/right symmetry, mirror-image organ pairs with equal assigned activity produce equal detected counts: kidneys 0.97, salivary glands 0.973 (isolated high-statistics test, 500k emissions each). Wide-ROI apparent asymmetries traced to ROI contamination from a neighbouring lesion and to low-count fluctuation; the geometry itself was correct.
- Attenuation ordering, detection efficiency (counts per emission) is lowest for the large, deep liver (~0.017) and rises monotonically for smaller, more superficial organs, as expected from self-attenuation and depth.
A full anterior projection of each scenario visually reproduces the intended hot pattern (kidneys,
salivary glands, liver, lesions for 177Lu/225Ac PSMA; liver tumor + lungs for 90Y; heart, salivary,
adrenal, bladder and tumor for 131I mIBG), each hot spot coincident with its source marker. 90Y's
statistics are photon-starved by design (β → bremsstrahlung is low-yield), consistent with the case
for variance reduction (variance_reduction.md).
tests/control_experiment.py exercises the whole imaging chain against a closed-form answer. An
off-axis point source (radial offset rho) is imaged over a 360 deg acquisition through a Symbia LEHR
collimator with forced detection. The SPECT consistency law requires the projected position of the
point to trace a sinusoid of amplitude rho versus view angle. The test decodes each view's
weighted centroid and checks: (a) fitted sinogram amplitude equals rho, (b) per-view centroid follows
rho*cos(phi) to sub-pixel residual, (c) counts are flat across views (uniform angular sensitivity for
a source at fixed radius in vacuum).
Result (rho = 60 mm, 12 views, LEHR): fitted amplitude 60.0 mm (expected 60), max residual 0.5 mm (< one 4 mm pixel), count spread 0.0%, so the acquisition geometry, detector projection, forced detection, and multi-view motion are all correct end to end. The test exits non-zero on failure, so it can gate a release.