KAHIBARO
Discord Login Register

25.2. Moving Sources

Source motion

In GATE, a “moving source” is any source whose position or orientation changes as a function of simulation time. Instead of defining a fixed position, you provide a time dependent description of where the source should be during the acquisition. GATE then updates the source pose as events are generated, so your simulation includes both radiation transport and the mechanical or physiological motion at the same time.

Conceptually, there are three key ingredients for source motion: a base source definition, a description of how the source moves in space, and the simulation time interval over which this motion is applied. The base source definition is the same as for a static source. You still specify particle type, energy, activity or number of particles, and basic spatial distribution such as point, box, or volume. Motion is then defined on top of this base configuration.

A common approach is to define a trajectory, which is a function that maps simulation time $t$ to a position vector and, optionally, an orientation. In practice, this can be a set of discrete waypoints or a continuous function in Python. For example, a linearly translating point source along the $x$ axis can be described by
$$
\mathbf{r}(t) = (x_0 + v_x t,\, y_0,\, z_0),
$$
with a constant velocity $v_x$. In more complex cases, such as circular motion around a phantom, you can use
$$
x(t) = R \cos(\omega t), \quad y(t) = R \sin(\omega t), \quad z(t) = z_0,
$$
where $R$ is the rotation radius and $\omega$ is the angular speed.

You can think of this similar to detector rotation, but here it is the source that moves relative to the rest of the geometry. Typical examples include a radiotracer source moving inside a moving phantom, a point source attached to a rotating gantry, or a line source that sweeps across a detector field for calibration. For respiratory or cardiac motion, source motion is often combined with motion of the surrounding anatomy so that both source and geometry follow a consistent motion model.

From a simulation control point of view, it is essential to relate the source trajectory to the global simulation time. You specify the total acquisition time, for example from $t = 0$ to $t = T_{\text{acq}}$, then ensure that the motion functions are defined over exactly this interval. Particles generated at early times see the source at one position, and particles generated later see it somewhere else. The time assigned to each primary particle is tied to the activity model, so motion and decay are synchronized.

When you define motion, you must be careful that the moving source does not intersect solid detector or shielding volumes in unrealistic ways. This is especially important if you model sources that travel through tubing, organs, or moving catheters. Use geometry visualization for a few representative time points to check that the path is physically plausible.

Finally, remember that moving sources can affect how you later interpret recorded data. Many actors, such as dose or phase space actors, will record information in a fixed coordinate system. If the source moves, you may see patterns that are smoothed or blurred in space but structured in time. It is often helpful to record the time of each event and relate it back to the known source position at that time in your subsequent analysis.

Important: A moving source is defined by a time dependent position and, optionally, orientation. Always ensure the motion functions are consistent with the global simulation time interval and do not lead to unphysical intersections with other geometry.

Dynamic activity

Source motion describes where the source is as a function of time. Dynamic activity describes how strong the source is as a function of time. In a medical context, this can model radioactive decay, biological uptake and washout, or time varying injection protocols. Instead of a constant activity $A_0$, you define $A(t)$, the activity at simulation time $t$.

The simplest dynamic activity model is pure radioactive decay for a single radionuclide. If the initial activity at $t = 0$ is $A_0$ and the physical half life is $T_{1/2}$, then
$$
A(t) = A_0 \, 2^{-t / T_{1/2}}.
$$
This law expresses how the activity decreases as the nuclide decays. In static simulations that represent only a very short interval, you might ignore decay and keep $A$ constant. However, for longer acquisitions or for therapy simulations spanning many half lives, the time variation of $A(t)$ is essential.

In many medical imaging or dosimetry problems, physical decay is not the only time dependence. You may also have biological clearance and redistribution, which lead to an effective half life. If you combine these effects, a common approximation is
$$
\frac{1}{T_{\text{eff}}} = \frac{1}{T_{\text{phys}}} + \frac{1}{T_{\text{bio}}},
$$
and then
$$
A(t) = A_0 \, 2^{-t / T_{\text{eff}}}.
$$
More detailed models can describe uptake and washout with separate rising and falling phases. For example, an uptake phase followed by exponential decay can be modeled as
$$
A(t) =
\begin{cases}
A_{\text{max}} \left(1 - e^{-t / \tau_{\text{up}}}\right), & 0 \le t < t_{\text{peak}}, \\
A_{\text{max}} \, e^{-(t - t_{\text{peak}}) / \tau_{\text{down}}}, & t \ge t_{\text{peak}}.
\end{cases}
$$
You can implement such models directly in Python and use them to control how many particles are generated in each time interval.

In time dependent simulations, the rate at which primary particles are produced is proportional to $A(t)$. If $N_{\text{tot}}$ is the total number of primaries you want to simulate between times $0$ and $T_{\text{acq}}$, then the fraction of particles generated in a small time interval from $t$ to $t + \Delta t$ is
$$
\frac{\int_{t}^{t + \Delta t} A(u)\, du}{\int_{0}^{T_{\text{acq}}} A(u)\, du}.
$$
GATE uses this principle internally when you specify an activity and a time duration. As a result, more events occur when $A(t)$ is high, and fewer events occur when $A(t)$ is low.

When you combine dynamic activity with moving sources, you obtain a fully 4D source model, where both spatial distribution and intensity change with time. For example, a bolus injection of tracer can enter a moving organ, with the source distribution building up as the tracer arrives and then washing out while the organ continues to move. Similarly, in radionuclide therapy, you might simulate several time points or a continuous dynamic simulation to compute time integrated dose.

Choosing a suitable time resolution is crucial. If $A(t)$ changes rapidly, use smaller time steps or more particles in the regions where the function varies quickly. Otherwise, you may miss important temporal features and underestimate or overestimate counts or dose during peak activity periods. On the other hand, if $A(t)$ varies slowly, you can use coarser time sampling to save computation.

In post processing, always retain the time information stored by actors. For example, dose rate can be obtained by dividing the dose increment per time interval by the corresponding time width. You can then compute the time integrated activity or dose by summation or numerical integration over time. This is particularly important for internal dosimetry, where absorbed dose depends on the entire history of $A(t)$, not just its value at a single time.

Important: Dynamic activity means $A(t)$ is time dependent. Always model radioactive decay and, if relevant, biological clearance. For a half life $T_{1/2}$, use the decay law
$$
A(t) = A_0 \, 2^{-t / T_{1/2}},
$$
and ensure that your simulation time sampling is fine enough to capture any rapid changes in $A(t)$.

Views: 12

Comments

Please login to add a comment.

Don't have an account? Register now!