KAHIBARO
Discord Login Register

27.1. Creating the Detector Ring

Table of Contents

Ring diameter

In a PET scanner the detector ring is the cylindrical structure that surrounds the patient or phantom. It is built from many detector blocks or crystals arranged around a circle. In GATE, you never directly draw a perfect mathematical ring. Instead, you define the position of one detector module, then repeat it around a circle using GATE’s repetition features. To do this correctly, you must first decide the ring diameter.

The ring diameter is usually defined as the diameter of the circle passing through the centers of the detector crystals or modules. This is the value you use to compute the radius $R$ and the positions of repeated elements. If the ring diameter is $D$, then the ring radius is
$$
R = \frac{D}{2}.
$$

In practice, you choose $D$ based on the field of view you want to cover and the type of scanner you are simulating. Small-animal PET scanners use ring diameters of a few tens of centimeters. Whole-body clinical PET scanners use diameters around 70 to 90 cm. For a beginner simulation it is common to start with a simple value such as $D = 80\ \text{cm}$ and then adjust once you understand the implications.

What matters for GATE is that all length values are given with explicit units. Suppose you represent your ring by repeating identical detector modules. Each module will be placed at a given radius $R$ from the center. In a typical setup you define a mother volume for the scanner, then you create a module volume inside that mother at a position $(x, y, z)$ and repeat it in angle.

If you denote by $N$ the number of modules distributed uniformly around the ring, the angular spacing between modules is
$$
\Delta\phi = \frac{2\pi}{N}.
$$

The center of module $k$ in the transverse plane $(x, y)$ has coordinates
$$
x_k = R \cos(k\,\Delta\phi), \quad y_k = R \sin(k\,\Delta\phi),
$$
with $k = 0, 1, \dots, N-1$. In practice, you do not need to write these formulas inside your Python script because GATE provides helper constructs to repeat a volume around a ring, but the geometry it builds internally is based on exactly these relations.

There is a geometrical constraint that connects ring diameter, number of detector elements, and the width of each element. Assume you have crystals or modules with width $w$ in the tangential direction. If you want to place $N$ of them without gaps around a circle, the total tangential length must approximately match the circle circumference:
$$
N\,w \approx 2\pi R = \pi D.
$$

This relation helps you design a ring that is consistent with your chosen crystal size. For example, if you have 48 modules each 25 mm wide, the circumference is roughly $48 \times 25\ \text{mm} = 1200\ \text{mm}$, which corresponds to $R \approx 191\ \text{mm}$ or $D \approx 382\ \text{mm}$.

In GATE, you typically proceed in the opposite direction. You start from a desired ring diameter, then decide how many modules you can place given a realistic module width. For a simple didactic scanner, you can ignore small gaps and let GATE place modules so that they slightly overlap or leave small spaces. Later, as you refine your model, you adjust $N$, $w$, or $D$ to avoid unrealistic overlaps.

To summarise the practical setup in a GATE PET ring:

You choose a ring diameter $D$ in physical units, for example $D = 80 * cm$.

You derive the radius $R = D / 2$.

You choose the number of modules $N$ that you want in the ring.

You let GATE repeat one module volume around the $z$ axis, at radius $R$, using an angular step of $2\pi / N$.

When you define the module position as a child of the scanner mother volume, you place the first module at a radius $R$ in a convenient reference angle, typically at $x = R$, $y = 0$. The repetition logic then rotates and translates the others automatically.

Always define the ring radius and module positions using explicit units, for example R = 40 * cm. Forgetting units is one of the most common geometry errors and leads to completely wrong detector sizes and positions.

The ring diameter also affects the sensitivity and spatial resolution of your PET system. A larger diameter reduces detection efficiency for events near the center and changes the parallax effect in thick crystals. These performance aspects will be explored in later PET chapters. Here the key point is to understand that ring diameter is the central geometric parameter that controls the radius at which your detector modules are placed and the spacing between them.

In advanced scanner designs with multiple concentric rings, you may have an inner ring and an outer ring with different diameters. In that case you repeat the same construction for each ring, with its own radius, and possibly different numbers of modules. The basic geometry relationships remain the same.

Axial length

The axial length of a PET detector ring is the length of the scanner along the patient head-to-foot direction, which is usually aligned with the $z$ axis of the simulation. This dimension defines the axial field of view, that is, how much of the body you can see in the axial direction without moving the patient bed during a scan.

In GATE, the axial length is controlled by the size and arrangement of the crystals or modules along $z$. A single ring of crystals with small axial thickness provides only a very short axial coverage. Modern PET scanners often have many rings of crystals stacked along $z$ or very long continuous blocks that cover a large axial range.

You usually decide the axial length in one of two ways:

You define a single ring of crystals or modules with axial length equal to the crystal thickness in the axial direction. This gives a minimal axial field of view.

You define multiple rings of modules stacked along $z$. Each ring is placed at a different $z$ position, and the total axial length is the distance between the first and last ring, plus margins.

Suppose you create a scanner with $N_z$ crystal rings, each separated by an axial pitch $p$ (center to center), and each crystal has axial length $L_c$. If you center the scanner at $z = 0$, the approximate total active axial length covered by crystal centers is
$$
L_{\text{centers}} = (N_z - 1)\,p.
$$
The physical crystal extent is slightly larger, by half a crystal length at each end:
$$
L_{\text{active}} \approx L_{\text{centers}} + L_c.
$$

In GATE you do not usually compute these expressions explicitly, but they guide how you choose the parameters. For example, if you want a scanner with 20 cm axial field of view and your crystals are 2 cm long axially, you could select $N_z = 10$ rings with a pitch of 2 cm. Then the centers cover $(10 - 1) \times 2\ \text{cm} = 18\ \text{cm}$ and the total active length is about $18 + 2 = 20\ \text{cm}$.

There are two common implementation patterns in GATE for axial length:

You model one detector block and use a 2D repetition, around the circle and along $z$. In this case, you specify both the number of modules in angle and the number along $z$, as well as the axial pitch. GATE then distributes modules along the axis, automatically giving the desired axial length.

You model one full ring of detector modules and then create separate copies translated along $z$ for each ring. This makes the logic clear but can be more verbose to write. It can however be useful for educational purposes, as you can explicitly see how axial positions affect the geometry.

The axial length must be consistent with the size of your world volume and with the phantom or patient you plan to simulate. The scanner and the object must fit comfortably inside the world, with enough margin so that particles that exit the scanner can still be transported within the world volume. For instance, if your scanner has axial length $L_{\text{scanner}} = 25\ \text{cm}$, it is reasonable to set the world axial half-length to something like 50 cm or more, depending on your use case.

In a typical design process, you follow these steps for axial configuration:

You decide the desired axial field of view, for example 20 cm for a whole-body scanner or 5 cm for a small test system.

You choose the axial length of individual crystals or modules.

You choose the number of crystal rings and the pitch between them, or you design a continuous axial block with the appropriate length.

You verify that the resulting $z$ positions keep your scanner symmetric around $z = 0$ or match the reference you want, especially if your phantom or patient geometry is defined relative to this origin.

You always give all lengths explicit units when defining the scanner dimensions and placements.

The axial length not only defines coverage, it also influences count rates, sensitivity profiles along $z$, and the amount of data produced. Longer axial coverage usually improves sensitivity because more annihilation photons interact with the detector, but it also increases the computational load and output size. In later chapters, where you construct lines of response and analyze PET performance, you will see how axial geometry affects sensitivity profiles and axial resolution.

From a coding perspective, when you define the detector ring in GATE and add axial repetition, you must ensure that the ring radius and axial length are compatible with one another. The ring diameter determines the radial placement of modules in the transverse plane. The axial length determines how many such rings exist along $z$ and where they are located. Together, ring diameter and axial length fully specify the basic cylindrical envelope of your PET scanner.

Views: 12

Comments

Please login to add a comment.

Don't have an account? Register now!