How a deck is put together¶
Before diving into the feature chapters, it helps to have a mental model of what a SPECT simulation deck contains and how the OpenTOPAS-SPECT pieces fit into a standard OpenTOPAS parameter file. Everything here is ordinary OpenTOPAS syntax; OpenTOPAS-SPECT only adds a handful of new components (geometry) and scorers (measurement).
The five ingredients¶
Every SPECT deck combines the same five parts. You mix and match them across the feature chapters.
| Ingredient | OpenTOPAS prefix | What OpenTOPAS-SPECT provides |
|---|---|---|
| World and physics | Ge/World, Ph/ |
nothing new, use standard OpenTOPAS |
| Collimator | Ge/<name> |
TsParallelHoleCollimator, TsPinholeCollimator, TsSlitSlatCollimator |
| Detector | Ge/<name> |
a scintillator/semiconductor crystal volume (any OpenTOPAS solid) |
| Source | So/<name> |
native OpenTOPAS sources, or one per phantom region |
| Scorer | Sc/<name> |
TsEDepSpectrum, TsForcedDetectionProjection |
A ready-made camera preset (see systems) bundles the collimator and detector so a
single IncludeFile gives you a validated Symbia or GE geometry. You then add the world, physics,
source, and scorer for your particular study.
The detector chain¶
A photon that reaches the camera passes through two stages, and you choose how much of each to simulate:
-
Collimation. A parallel-hole collimator only passes photons travelling nearly parallel to its holes; everything else is absorbed in the septa. This is what gives SPECT its direction information, and why it throws away ~99.98% of emitted photons. OpenTOPAS-SPECT models the holes and septa explicitly, so the transport captures septal penetration and scatter directly.
-
Detection. Photons that survive the collimator deposit energy in the crystal. The
TsEDepSpectrumscorer records the pulse-height spectrum, from which you apply an energy window to select the photopeak.
Because full collimator transport is so wasteful, OpenTOPAS-SPECT also offers a fast path, the
TsForcedDetectionProjection scorer, that replaces stages 1 and 2 with an analytic projection
through the collimator. Use full transport when you care about scatter and penetration physics; use
forced detection when you need many views quickly. See Variance reduction.
Coordinate conventions¶
The phantoms and acquisitions in this package follow one convention, and it is worth stating up front because it determines how detectors are placed and rotated:
- The patient long axis is
z(the torso is long inz). - A gamma camera images a transaxial plane; a single anterior detector sits beside the patient
(offset in
y) with its face looking back along the axis toward the patient. - A rotating acquisition orbits the detector around
z, or, equivalently and often more reliably, holds the detector fixed and rotates the phantom aboutz. The CT-driven motion chapter andexamples/phantom/spect_acquisition.txtuse both approaches and explain when each applies.
OpenTOPAS rotations are passive
A component's RotX/RotY/RotZ rotate its frame, not the object, and are applied in the
order X→Y→Z about the parent axes. This matters when you aim a detector face at the patient: the
surest way to confirm a face points where you intend is to compute the world direction of its
local normal, instead of eyeballing a render. The tools in this package do that check for you.