27.3. Position Resolution
Table of Contents
Position uncertainty
In a Geant4 simulation an interaction point or hit position is usually known with perfect precision at the scale of the geometry description. Real detectors, however, never measure position exactly. Finite sensor size, readout granularity, electronic noise and reconstruction algorithms all introduce an uncertainty in the reconstructed position. When you want to compare simulations with experimental data, or design and optimize a detector, you need to include this finite position resolution in your analysis.
Position uncertainty is usually described by a probability distribution that gives the difference between the true position and the measured position. For many detectors, and for many independent small effects, this distribution is well approximated by a Gaussian. In that case the uncertainty can be summarized by a single parameter, the standard deviation $\sigma$, often quoted in units of millimeters. For example, a strip detector might have a position resolution of $\sigma = 200~\mu\text{m}$ along the strip-orthogonal direction, while a scintillator block read out in segments might achieve a few millimeters resolution.
It is important to distinguish between the exact hit position that Geant4 gives you from the geometry and tracking, and the reconstructed position that a real analysis would produce. Position smearing is the operation that takes the exact position and transforms it into a reconstructed one with finite resolution.
Key rule: The positions from G4Step, G4Track, or hit objects represent the true simulated positions. To model a realistic detector, do not change these internal positions. Instead, create separate reconstructed positions by adding random position smearing in your analysis or in dedicated reconstruction code.
In practice, you will often store both the true and the smeared positions in your output. This allows you to study how detector resolution affects physics performance, for example how well you can reconstruct a vertex or a particle track.
To implement position resolution in a beginner-friendly way, you can proceed as follows. First, choose a resolution model that matches the type of detector element. For a simple 1D segmentation, such as adjacent strips or bars, a common approximation is that the uncertainty is flat within the element width. For pixels or small scintillator blocks, a Gaussian centered at the true position is often more appropriate. Next, when you create a hit or fill an ntuple, compute the smeared position. If you assume a Gaussian with standard deviation $\sigma$, you can generate a random displacement $\Delta x$ from a normal distribution with mean zero and width $\sigma$, and then define a measured coordinate
$$
x_{\text{meas}} = x_{\text{true}} + \Delta x.
$$
You can do the same for $y$ and $z$ coordinates if your detector has comparable resolution in all directions.
Gaussian smearing formula: For each coordinate,
$$
x_{\text{meas}} = x_{\text{true}} + \mathcal{N}(0,\sigma_x), \quad
y_{\text{meas}} = y_{\text{true}} + \mathcal{N}(0,\sigma_y), \quad
z_{\text{meas}} = z_{\text{true}} + \mathcal{N}(0,\sigma_z),
$$
where $\mathcal{N}(0,\sigma)$ is a Gaussian random number with mean $0$ and standard deviation $\sigma$.
Often, the resolution is not the same in all directions. For a strip detector, you may have good resolution along one axis and very poor resolution along the strip length. For a calorimeter, the transverse position resolution can depend on energy, and the depth coordinate may not be directly measured. In such cases, you should smear only the measured coordinates, and either keep the others exact or model them according to the reconstruction algorithm used in the experiment. For example, a calorimeter that measures only which cell fired might assign the measured position to the cell center, then optionally apply an additional Gaussian smearing to mimic energy-weighted centroid reconstruction.
Geant4 itself does not force a particular position resolution model. You are free to design a model that matches your detector concept. However, there are two common places where you implement position smearing. One is inside your sensitive detector hit class or in the sensitive detector itself. When a hit is created with a true position, you immediately compute a smeared position and store both. The second is in the analysis stage, for example in your EventAction or when you process ntuples with an external tool, where you take the stored true positions and apply smearing offline.
Regardless of where you implement it, be careful about units and coordinate systems. Positions returned by Geant4 classes are in the global coordinate system by default. If your detector resolution is naturally described in a local coordinate system attached to a particular detector element, transform the true position into local coordinates, apply smearing there, then transform back to global coordinates if needed. This is especially important when the detector elements are rotated or arranged in rings, such as in PET scanners or tracking barrels.
Position resolution directly affects physics results. Poorer resolution broadens spatial distributions, degrades the accuracy of vertex positions, and can smear sharp features such as edges or small structures in an image. In imaging applications like PET, finite position resolution limits the spatial resolution of the reconstructed image. In tracking detectors, position resolution contributes to uncertainties in reconstructed momentum and impact parameters. By including realistic smearing in your simulation, you can study these effects and ensure that your simulated performance is comparable to what an actual detector can achieve.
Finally, when you validate your position resolution model, compare smeared simulation results with experimental measurements, such as residual distributions or point spread functions. The width of these distributions should correspond to the resolution you intend to simulate. If not, adjust your chosen $\sigma$ values or, if necessary, replace the simple Gaussian model with a more realistic function that includes non-Gaussian tails or energy dependence.
Views: 7
KAHIBARO