KAHIBARO
Discord Login Register

18.3 Detector Identification

Crystal ID

In a PET or SPECT detector, the smallest sensitive element is usually a crystal or pixel. During digitization, GATE collects energy deposits from many interactions and turns them into a single “single event.” For this event to be useful, you must know in which crystal it occurred. This is the role of the crystal ID.

In a typical GATE geometry for nuclear medicine, you build crystals by repeating a basic block many times along one or more directions. Each repeated element is given an index. The crystal ID is a number that identifies one particular crystal within its local structure, for example inside a block or module.

Internally, GATE often starts from hit information, such as which volume name or copy number was involved. The digitizer then maps this to a more compact identifier. The crystal ID is commonly derived from the volume copy number of the crystal volume, or from its position index in a repeated array. In the singles output, this identifier lets you reconstruct where each event occurred at the fine spatial scale of individual crystals.

When you analyze singles, the crystal ID is essential for tasks such as crystal energy spectra, crystal occupancy maps, or checking uniformity of detector response. For example, you can create a histogram of counts per crystal ID to see whether some crystals are dead, misaligned, or have an abnormal response. For PET coincidence data, crystal IDs on both sides of a coincidence define the line of response at the crystal level before you group them into larger units.

Important: The crystal ID must be consistent with how you designed and repeated the crystal volumes. Any mismatch between geometry repetition and digitizer mapping will produce incorrect spatial information in your singles and coincidences.

Module ID

Crystals are usually grouped into larger mechanical and electronic units, such as blocks, modules, or detector heads. The module ID is a number that identifies which of these larger units a given single event belongs to.

In a ring PET scanner, for example, you often arrange detector modules around the ring, each module containing multiple crystals. During geometry construction you may define a module volume and repeat it along the ring. Each repeated module gets a specific index. The digitizer then extracts that index and stores it as the module ID in the singles output.

The module ID is important because many calibration and correction procedures are performed at the module level, not at the level of individual crystals. For example, energy calibration may be applied per module, and dead time can be modeled per module or per block. In performance studies you can also examine how count rate, energy resolution, or timing vary across modules, which may be related to manufacturing variations or electronics differences.

From an analysis perspective, module IDs help you organize and simplify the data. Instead of treating thousands of crystals as independent, you can aggregate results by module ID to get quicker overviews, such as counts per module or axial profiles of detector response. Module IDs are also useful when mapping detector events back to a physical drawing or specification of the scanner, since modules often correspond to real hardware components.

Important: Always verify that the module ID ordering in your output matches the placement of modules in your geometry. A wrong mapping will swap or rotate modules in your reconstructed detector maps.

Detector ID

The detector ID acts as a more global identifier that usually describes the position of the event within the entire scanner, beyond a single module. Depending on how you design your digitizer chain, the detector ID can encode different levels of hierarchy, for example ring number, module number within the ring, and crystal index within the module.

Some digitizers combine several indices into a single detector ID, for instance by using a formula such as
$$\text{detector\_id} = i_{\text{ring}} \times N_{\text{modules\_per\_ring}} \times N_{\text{crystals\_per\_module}} + i_{\text{module}} \times N_{\text{crystals\_per\_module}} + i_{\text{crystal}}.$$
This produces a unique integer for every crystal in the whole system. In analysis, you can later decode this integer back to its ring, module, and crystal indices. Other setups may store separate indices and use detector ID as a higher level index, such as the detector head number in a multi-head SPECT system.

The detector ID is particularly useful when you work with coincidence data and want to build lines of response, sinograms, or projection images. Each coincidence contains two singles, each with its own detector ID. Using these two IDs, you can map the pair to the correct sinogram bin or projection pixel, or compute the 3D positions of the two detector elements that define the line of response.

In large scanners or unusual geometries, the detector ID can also be used to distinguish between different detector types in the same simulation, for example a main PET ring and an auxiliary detector panel. You can filter events on detector ID during analysis to focus on one part of the scanner, or to compare performance between subsystems.

Important: Define and document a clear rule for how detector IDs are constructed and how they relate to ring, module, and crystal indices. A consistent detector ID scheme is crucial for correct sinogram building, image reconstruction, and performance evaluation.

Views: 11

Comments

Please login to add a comment.

Don't have an account? Register now!