SPECT Detector Chain Electronics: PMT/SiPM, ADC/TDC
← Back to: Medical Imaging & Patient Monitoring
A SPECT detector chain turns each gamma interaction into a trustworthy event word—energy + timestamp + flags—so spectra and timing stay stable under real count-rate and temperature drift. The best designs optimize preamp/shaping/ADC/TDC together and use calibration plus event flags to keep only valid events without distorting measured performance.
What the SPECT detector chain must deliver
A SPECT detector chain converts each gamma interaction into an event word that carries a usable energy value and a timestamp, plus quality flags that explain whether the measurement is trustworthy.
The design target is not “a clean waveform,” but a stable, rate-capable event stream with predictable energy accuracy and time ordering.
Event-level output: what “good data” looks like
Recommended minimum fields (implementation-agnostic):
- Channel ID: stable mapping to detector geometry (module/pixel/channel).
- Energy: monotonic with pulse height/area; calibration converts code → energy units.
- Timestamp: defined LSB (time resolution), bit-width, and rollover handling.
- Flags: explicit reasons for rejecting or down-weighting events (e.g., pile-up suspected).
Key performance targets (metric tree)
Energy fidelity → energy resolution, peak stability, and linearity
- Resolution: shaped-noise + baseline drift determine peak width (use consistent definitions such as FWHM of an energy peak).
- Linearity: energy code vs input charge should be monotonic and predictable; saturation recovery must not bias following events.
- Stability: gain/offset drift shows up as peak shift; flags should identify baseline instability or overload conditions.
Rate capability → count-rate, dead time, and pile-up behavior
- Count-rate: maximum sustainable event throughput without unacceptable peak distortion or event loss.
- Dead time: conversion + shaping + recovery budget sets the “busy window”; define how busy is signaled and measured.
- Pile-up: overlapping pulses cause energy bias; detection/flagging must be explicit to protect image quality.
Timing integrity → timestamp resolution, jitter, and ordering
- Timestamp LSB: defines how finely events can be ordered and windowed (local definition; system sync is handled elsewhere).
- Pickoff jitter: trigger method (threshold vs CFD) and noise set time uncertainty.
- Rollover: counter wrap must be handled so event ordering does not break across wrap boundaries.
Scope note: this page covers detector-to-event conversion only (PMT/SiPM → AFE → shaping → energy/timing → timestamped event word). System-wide networking, storage, security, and compliance subsystems are out of scope here.
Detector signal realities: PMT vs SiPM pulses
PMT and SiPM detectors both produce fast current pulses, but their effective input capacitance, noise sources, and drift behavior differ enough that the preamp and shaping choices must be tuned to the detector type.
The detector pulse characteristics set the bandwidth and shaping window, while detector-specific noise and drift determine baseline strategy and trigger robustness.
What the front-end must “respect”
- Pulse shape: rise/fall times set the minimum analog bandwidth and the practical shaping time constant.
- Amplitude range: determines dynamic range and overload recovery requirements (saturation tail can bias subsequent events).
- Event rate: sets pile-up probability; longer shaping increases SNR but reduces rate capability.
- Noise & drift: baseline stability, trigger false-rate, and energy peak stability are dominated by detector-dependent effects.
Pulse & noise sources (engineering comparison)
| Item | PMT | SiPM |
|---|---|---|
| Output nature | Fast current pulse with high gain; overload recovery behavior matters. | Fast current pulse from many microcells; baseline and trigger pressure increases with dark activity. |
| Input capacitance sensitivity | Often more forgiving, but cable/packaging can still impact bandwidth. | Commonly more sensitive; higher Cin can slow edges and raise noise gain requirements. |
| Dominant noise drivers | Front-end noise + statistical pulse variation; overload tail can mimic baseline drift. | Dark pulses, crosstalk/afterpulsing effects (seen as extra baseline activity); trigger false rate can rise quickly. |
| Drift & stability | Gain stability is crucial; energy peak shift signals drift or baseline error. | Temperature and bias margin strongly affect gain and noise; baseline management is a primary design constraint. |
Typical symptoms (and what to check first)
Baseline lifts or slowly drifts
- Likely causes: incomplete overload recovery, excessive low-frequency noise, baseline restorer settings too aggressive.
- Quick checks: reduce input activity (or pulser rate) and observe baseline return; shorten shaping window and compare peak shift.
Random triggers increase (false event rate)
- Likely causes: threshold too low for detector noise activity, excessive bandwidth at pickoff point, inadequate filtering for dark pulses.
- Quick checks: sweep trigger threshold; compare leading-edge vs CFD pickoff; add a simple time-over-threshold flag to reject tiny pulses.
Peak position shifts at high count rate
- Likely causes: pile-up, dead-time growth, baseline not fully restored between events, saturation tail bias.
- Quick checks: rate sweep while tracking peak mean and width; enable pile-up flags; reduce shaping time and compare distortion trends.
The purpose of this section is to connect detector behavior to architecture choices (preamp topology, shaping window, and trigger method) without expanding into unrelated subsystems.
Front-end preamps: TIA vs charge amplifier vs current-mode
The preamp choice defines what the rest of the chain can measure reliably. For event-based SPECT front-ends, the trade is bandwidth and timing pickoff vs energy stability vs overload recovery.
- Pick TIA when fast edges and timing pickoff quality matter, and the input capacitance (Cin) is manageable.
- Pick a charge amplifier when energy stability (charge-to-amplitude) is priority and pulse-shape sensitivity must be reduced.
- Pick current-mode transfer when an explicit current interface or linear current routing is needed before shaping/measurement.
Engineering view: when each topology wins
TIA (Transimpedance) — current pulse → voltage
- Best for: wide bandwidth, clean timing pickoff, straightforward signal scaling (Rf sets gain).
- Watch: Cin increases noise gain and stability pressure; overload can create a recovery tail that biases following events.
- Key knobs: feedback R/C (gain + stability), input clamp/limit, and a defined recovery path after saturation.
Charge amplifier (Integrator) — current pulse → integrated charge
- Best for: energy measurement stability (charge → amplitude) and reduced sensitivity to pulse-shape variations.
- Watch: reset method defines dead time; reset injection or leakage can create baseline steps and peak bias.
- Key knobs: Cf (gain), reset scheme (active or passive), and the busy window definition around reset.
Current-mode transfer — keep signal as current, then convert/shape
- Best for: controlled current routing, explicit linear current interface, or staged current processing before conversion.
- Watch: compliance voltage limits and current mirror errors can introduce non-linearity at large pulses.
- Key knobs: compliance headroom, limit/clip behavior, and where the current-to-voltage conversion happens.
Dynamic range & recovery: what limits count-rate first
- Saturation tail: a slow return to baseline shifts the next event’s measured energy (peak walks) and increases false pile-up flags.
- Clamping bias: hard clamps protect the input but can clip pulse area, causing energy under-reporting if not flagged.
- Reset artifacts: charge amps can introduce a baseline step during reset; peak sampling must never overlap with reset transients.
Front-end-only mitigation toolkit
- Soft limiting (preferred): limit peak without a hard clip edge; improves recovery behavior and reduces baseline steps.
- Defined busy window: assert “busy” during overload recovery or reset, then flag events outside valid windows.
- Fast recovery path: provide an intentional discharge/recenter path so baseline returns quickly after large pulses.
Quick comparison (what changes downstream)
| Dimension | TIA | Charge amplifier | Current-mode |
|---|---|---|---|
| Noise | Strong Cin dependence; bandwidth and Rf noise shape energy/timing SNR. | Integrates charge; less sensitive to edge shape, but reset/leakage can add low-frequency artifacts. | Mirror/transfer errors and compliance limits can appear as effective noise/nonlinearity. |
| Bandwidth | High bandwidth achievable; timing pickoff is naturally supported. | Bandwidth is intentionally limited by integration; timing pickoff often needs a parallel path. | Depends on where I→V conversion is placed; compliance can limit fast edges. |
| Linearity | Clamps and saturation recovery can distort pulse area if not flagged. | Good charge linearity; reset injection or droop can bias peak height. | Mirror mismatch or limit behavior can create gain nonlinearity at large pulses. |
| Recovery | Overload tail is the main enemy; needs a defined fast return-to-baseline path. | Reset defines dead time; reset transients must be kept out of measurement windows. | Recovery depends on compliance headroom and current limit behavior. |
| Complexity | Stability engineering with Cin; clamp/recovery tuning. | Reset/busy definition and artifact control; often cleaner energy path. | Needs clear compliance and current routing plan; sensitive to analog headroom. |
Programmable shaping: why shaping matters
Shaping turns a detector pulse into a waveform that can be measured consistently: it boosts usable SNR, defines a predictable measurement window, and stabilizes the baseline so energy peaks do not drift with rate.
The shaping time constant is a deliberate trade: longer windows reduce high-frequency noise but increase pile-up risk and dead-time budget.
CR-RC vs semi-Gaussian vs trapezoid (intuitive differences)
- CR-RC: simple and responsive; useful when a compact, predictable peak is needed, but baseline handling must be intentional at high rate.
- Semi-Gaussian: smoother peak shape; often improves peak stability for energy measurement at the cost of a wider measurement window.
- Trapezoid: produces a flat-top that is friendly for peak sampling; parameterized by rise time and flat-top duration.
How shaping time affects noise, peak width, and rate limit
Short shaping (narrow window)
- Pros: lower pile-up probability, smaller busy window, better high-rate throughput.
- Cons: higher sensitivity to noise and edge jitter; peak measurement can become more variable.
Long shaping (wide window)
- Pros: better noise averaging, smoother peak shape, often more stable energy estimates at low-to-moderate rate.
- Cons: higher pile-up risk, larger dead-time budget, baseline drift becomes more visible unless controlled.
Practical rule: pick the shortest shaping window that meets energy stability goals, then use baseline control and explicit flags to protect quality at high count rate.
Shaping time selection flow (rate-driven)
- Set the expected count-rate range (low / mid / high) for the detector channel group.
- Budget the valid measurement window: peak sampling window + recovery margin must fit inside the acceptable busy time.
- Select the shaping family (CR-RC / semi-Gaussian / trapezoid) based on the measurement method (peak-hold vs sampled peak).
- Tune the time constant / rise + flat-top so the peak sample lands on a stable portion of the waveform.
- Close the loop with two scans: (a) peak mean/width vs rate, (b) baseline distribution vs rate (drift and steps).
Baseline restorer: when it is required (and how artifacts appear)
Required when event spacing becomes comparable to the pulse tail or when low-frequency drift pushes the baseline between events. Without baseline control, energy peaks shift with rate and the pile-up classifier becomes unreliable.
- Artifact #1 — energy under-report: overly aggressive baseline pull can subtract real pulse area.
- Artifact #2 — peak jitter: baseline updates that overlap the peak sampling window create step-like peak movement.
- Safe practice: update baseline only in event gaps, keep a defined “no-touch” window around peak measurement, and flag baseline-unstable events.
Peak detect / energy measurement options
Energy measurement in a SPECT event chain is a controlled conversion of one pulse into one stable number. The real design choice is how the chain defines a valid measurement window and how it behaves when pulses overlap.
Three common options are used: analog peak-hold + ADC, gated integration, or full waveform sampling with digital peak/shape extraction.
Architecture choices (what each one optimizes)
1) Analog peak-hold + ADC — capture the peak, then convert once
- Best for: compact data (one conversion per event), predictable latency, simple event-word generation.
- Must control: trigger-to-hold delay, hold droop/leakage, reset injection, and a strict busy window.
- Rate limit: defined by hold + convert + reset scheduling (not just the ADC speed).
2) Gated integration — integrate over a defined window to estimate charge/area
- Best for: reducing sensitivity to pulse-shape variation when the “energy content” is better represented by area than peak.
- Must control: gate placement/length, baseline handling, and overlap behavior (two pulses in one gate).
- Rate limit: gate duration + baseline recovery; overlap creates systematic bias if not flagged.
3) Full waveform sampling + digital peak/shape — sample the shaped waveform and compute energy digitally
- Best for: pile-up separation, digital shaping, and stronger quality classification (event flags backed by waveform evidence).
- Cost: higher ADC bandwidth/power, larger data movement, and more processing per channel.
- Worth it only when pile-up or shape-based quality control is required at the target count rate.
Measurement windows: trigger → hold/integrate → convert → reset
- Trigger source: a stable pickoff (threshold or shaped-peak timing) defines “event start” and starts the timing budget.
- Hold / gate timing: the capture window must align with the true peak (or intended energy segment) and avoid baseline-restorer movement.
- Convert scheduling: ADC conversion must occur after settling and inside a clean window; concurrent events must be flagged or queued.
- Reset isolation: reset transients must never overlap measurement windows; otherwise systematic energy bias appears.
Practical guardrails: define Busy as the union of hold/gate + conversion + reset, and emit flags that explain whether an event was measured in a valid window.
Error sources checklist (each mapped to a measurable symptom)
| Error source | Typical symptom in spectra / stats | Quick validation |
|---|---|---|
| Hold droop / leakage | Peak shifts downward as hold time increases; drift appears even at low rate. | Sweep hold duration at fixed pulse amplitude; plot peak mean vs hold time. |
| Trigger-to-hold misalignment | Peak broadens; energy resolution degrades without a clear mean shift. | Sweep delay; look for the minimum-width point in the peak histogram. |
| Reset injection | Peak mean shows periodic steps; correlation appears between adjacent events. | Toggle reset strength/timing; check peak mean vs event index distance. |
| Busy boundary ambiguity | Unexpected count-rate “knee”; unexplained event loss or double-counts. | Log Busy and flags; compare spectra with/without excluding “invalid-window” events. |
| Pile-up inside window | High-energy tail or peak skew grows with rate; peak width inflates strongly. | Increase/decrease shaping window; observe rate-dependent skew and pile-up flag rate. |
| ADC settling / drive error | Code-dependent distortion; peak nonlinearity near large amplitudes. | Step response test into S/H; verify settling within the convert aperture. |
ADC strategy: resolution, rate, and front-end interface
In an event-driven SPECT chain, the ADC is not “better” just because it has more bits. The usable energy resolution is often limited by front-end noise, window timing, and input settling into the sample/hold.
Pick the ADC by throughput per channel, power budget, and how hard the input interface is to drive, then only add waveform sampling when it enables real pile-up handling or digital shaping.
SAR vs pipeline: event-chain tradeoffs
| Item | SAR ADC | Pipeline ADC |
|---|---|---|
| Best fit | Single-shot conversions after peak-hold or gated measurement; low latency per event. | High sample-rate operation for waveform sampling or many channels needing continuous throughput. |
| Power | Often favorable at moderate rates; scales with conversion activity. | Higher at high rates; justified when waveform data enables real performance gains. |
| Input drive difficulty | Sensitive to source impedance and settling into S/H; buffer design matters. | Also demanding; continuous high-rate drive requires careful buffer/anti-alias choices. |
| Latency & scheduling | Fits cleanly into “hold → convert → reset” windows; simpler busy handling. | Pipeline latency is longer; event association needs explicit alignment/metadata. |
Front-end interface: driver, sampling capacitor, and input range
- Settling inside the aperture: the buffer must settle to the required accuracy before the ADC captures; otherwise peaks broaden and “gain” becomes amplitude-dependent.
- Source impedance vs S/H: the ADC sampling capacitor pulls charge from the source. Too much source impedance causes droop and code-dependent distortion.
- Input range alignment: set the chain gain so typical events use the linear range; frequent clipping forces energy bias unless flagged.
- Anti-alias (local): keep it minimal and local to the ADC interface; the goal is to control bandwidth seen by S/H without creating long tails.
Waveform sampling check: full sampling is justified when it enables pile-up separation or digital shaping. If the design still collapses to “one peak number,” event-driven conversion usually wins on power and complexity.
ADC selection matrix (by rate, channel count, power)
| Scenario | Recommended approach | Why it fits |
|---|---|---|
| Low rate / low channels / tight power | Peak-hold + SAR (single-shot) | Low activity, simple scheduling, minimal data, easy window/flag control. |
| Mid rate / many channels / normal power | Peak-hold + fast SAR (queued conversions) | Throughput scales with queueing; keeps event payload compact and interpretable. |
| High rate / pile-up hurts energy | Waveform sampling + digital shaping (pipeline or high-rate SAR) | Sampling enables separation/quality scoring; justifies power and data cost. |
| High rate but no waveform processing | Stay event-driven; shorten windows and strengthen flags | Avoids expensive sampling that does not translate into better energy or usability. |
Timing pickoff & TDC: getting timestamps right
A timestamp is only as good as the pickoff point. With a fixed threshold (leading-edge) trigger, larger pulses cross the threshold earlier than smaller pulses. This amplitude-dependent timing error is time-walk, and it can dominate timing consistency even when the clock is stable.
Typical symptoms are a clear correlation between timestamp vs energy, rate-dependent spreading when baseline moves, and channel-to-channel timing mismatch that cannot be explained by clock jitter alone.
Leading-edge vs CFD (constant fraction)
- Leading-edge uses one fixed threshold crossing. It is simple and low cost, but it produces time-walk when pulse amplitude varies.
- CFD triggers at a constant fraction of the pulse amplitude, so the pickoff point tracks pulse height and reduces time-walk.
- Engineering reality: CFD requires stable pulse shape assumptions, correct delay/fraction settings, and a validity rule for low-amplitude events.
When a fixed threshold must be used, the design should plan for an explicit time-walk correction using energy or time-over-threshold as an amplitude proxy.
Time-over-threshold (ToT): useful proxy, not a perfect amplitude
- What it provides: a simple width measurement that correlates with pulse amplitude for a given shaping and baseline condition.
- Where it helps: time-walk correction inputs, pile-up suspicion, saturation suspicion, and trigger quality screening.
- Limitations: ToT shifts with pulse shape, baseline drift, and threshold setting; it should be treated as a calibration-dependent proxy.
TDC in an event chain: coarse counter + fine interpolation
A practical timestamp is commonly built as:
- Coarse time: a clock-driven counter indicating the event’s clock period.
- Fine time: a sub-clock measurement (TDC or interpolator) indicating where inside the period the pickoff occurred.
- Calibration: fine-time bins must be characterized; invalid/overflow states must be flagged to avoid “plausible but wrong” timestamps.
A robust implementation reports tdc_valid and supports periodic calibration checks, so timestamp quality can be filtered at the event-word level.
Time-walk symptoms → correction methods (energy/ToT LUT)
| Observed symptom | Likely cause | Correction approach |
|---|---|---|
| Timestamp shifts systematically with energy (time vs energy slope) | Leading-edge time-walk (fixed threshold crossing) | Build a LUT Δt = f(energy) and correct timestamps; track residual spread after correction. |
| Timing degrades mainly at high rate; drift correlates with baseline movement | Baseline shift changes effective crossing conditions | Use baseline quality flags; apply LUT only when baseline is stable, otherwise mark baseline_unstable. |
| Low-energy events have outliers or non-physical early timestamps | Pickoff noise dominates; CFD becomes unreliable near threshold | Enforce a validity gate; use ToT/energy to qualify; mark tdc_valid and pickoff_valid flags. |
| Time-walk changes after shaping updates or temperature changes | Pulse shape changes; LUT is no longer matched | Version the LUT by shaper setting and cal version; store the version in the event word. |
Event framing: timestamp counter, flags, and data integrity
The event word is the “last mile” of the detector chain. If the fields and flags are not explicit, energy spectra and timing statistics become hard to trust and even harder to debug. A good event format is parsable, filterable, traceable, and verifiable.
This section stays strictly at the event-word level (no storage/recorder details). The goal is a robust payload: {Channel, Energy, Timestamp, Flags, Version, Integrity}.
Timestamp counter: width and rollover handling
- Counter width sets the rollover period. Rollover is normal; it must be handled by design.
- Recommended event-level approach: store a wide enough coarse counter plus fine time, and mark wrap conditions explicitly.
- Minimum observability: include timestamp_valid (or equivalent) so invalid/interpolator states can be filtered safely.
Rollover safety rule: timestamps must never look like “time goes backwards” without an explicit wrap indicator or epoch context.
Flags: convert anomalies into filterable categories
| Flag | Meaning | Can energy be used? | Can timing be used? |
|---|---|---|---|
| pileup_suspect | Two (or more) pulses overlapped inside the measurement window. | Usually no (or separate class) | Sometimes (use with care) |
| saturation | Front-end or ADC clipped; energy is biased. | no | Often yes if pickoff valid |
| baseline_unstable | Baseline moved during measurement; both energy and pickoff can drift. | Usually no | Usually no |
| invalid_window | Measured outside a valid hold/gate/convert schedule (busy overlap). | no | no |
| tdc_invalid | Fine time is not valid (overflow, not calibrated, or forbidden state). | Often yes | no (fine timing) |
| calibration_mode | Event produced under calibration settings; keep separate from clinical data. | Depends on use | Depends on use |
Event word template (example field set)
The field widths below are an example layout that keeps the core payload fixed: Channel, Energy, Timestamp, Flags, plus Calibration/Config version and an integrity check. Adjust widths to match channel count, counter rollover targets, and ADC resolution, but keep the semantic meaning stable.
| Field | Example width | Meaning / usage |
|---|---|---|
| SOF / header | 8b | Frame alignment and quick sanity checks. |
| Channel ID | 10b | Identifies detector channel for multi-channel aggregation. |
| Energy | 16b | ADC-derived energy code (or processed energy) for spectral binning. |
| T_coarse | 32b | Clock counter for coarse timestamp; rollover handled by width + wrap rules. |
| T_fine | 12b | TDC/interpolator fine time within the coarse clock period. |
| Flags | 12b | pile-up, saturation, baseline, invalid_window, tdc_invalid, cal_mode, etc. |
| Cal/Config version | 16b | Traceability for LUTs, shaper settings, gain ranges, and timing calibration. |
| CRC | 16b | Integrity check for transport/buffering inside the acquisition chain. |
| Reserved | 6b | Future expansion without breaking parsers. |
Calibration & stabilization: gain/offset/temp drift
A SPECT detector chain must stay stable for hours to days. “Calibrated once” is not sufficient because the same gamma event can drift in measured energy when detector gain, baseline, and references move with temperature and time. Long-run stability comes from a closed loop: measure drift → update correction → tag data with calibration version.
Keep calibration strictly inside this chain: gain/offset/LUT, pulser self-test, and event-level traceability (flags + cal_version).
SiPM drift control: stabilize gain with bias compensation
- Observation: SiPM gain changes with temperature and over-voltage; the same scintillation light can produce a different pulse area/height.
- Control variable: adjust SiPM bias setpoint using a DAC (or digitally controlled bias trim) as a function of temperature.
- Practical guardrails: apply a slope limit (avoid “baseline jumps”), clamp bias range, and tag events when compensation is updating.
- Traceability: store cal_version (and optional temp_comp_mode) in the event word so datasets remain comparable.
Example parts (as reference points for BOM planning): temperature sensor TMP117; calibration/trim DACs such as DAC80501 or AD5686R; low-drift reference such as LTC6655.
Energy scale: linear trim + optional nonlinearity LUT
- Fast startup: apply offset + gain (two-point) calibration to place peaks in the correct bins quickly.
- Channel uniformity: align channel-to-channel response so energy windows behave consistently across the detector.
- Higher accuracy: if residual curvature remains, apply a piecewise or LUT correction (versioned and traceable).
- Always include: an explicit cal_version and lut_id field (or a combined version tag) in the event word.
Common failure signatures to watch: peak centroid drift (gain/offset), FWHM widening (noise/baseline instability), and low-energy excess (threshold/baseline recovery issues).
Online health monitoring: pulser injection self-test
- Goal: verify that the chain can still measure a known stimulus without opening the detector.
- Injection points: input node (covers preamp), shaper input (covers shaping/peak/ADC), or both (better fault isolation).
- Scheduling: inject at low duty and tag events as calibration_mode to prevent contamination of clinical spectra.
- Expected outputs: a stable “reference peak” code, stable baseline metrics, and stable trigger/timestamp behavior under controlled pulses.
Calibration flow (power-up → stable run)
| Phase | Inputs | Updates | Event tagging |
|---|---|---|---|
| 1) Power-up baseline | Baseline noise stats, temperature, bias readback | Initialize offset, safe bias range, default flags | calibration_mode=1, cal_version |
| 2) Warm-up settle | Temperature trend, baseline stability | Enable slope-limited bias compensation | temp_comp_active flag |
| 3) Coarse energy trim | Known stimulus (pulser peak or reference line) | Offset + gain (two-point) per channel | cal_version++ |
| 4) Fine correction | Multi-point residuals, INL indicators | Piecewise/LUT update (optional) | lut_id, cal_version++ |
| 5) Run-time drift control | Temperature + periodic pulser checks | Bias trim + periodic micro-adjust of gain/offset (policy-based) | baseline_unstable, calibration_mode when active |
Count-rate limits: dead time, pile-up, and recovery
Count-rate is not an abstract concept. It is dominated by the chain’s busy window: how long the system needs to shape, capture, convert, reset, and become trustworthy again for the next event. If the busy window is not budgeted, pile-up and recovery artifacts will silently bias the energy spectrum.
Dead time models: paralyzable vs non-paralyzable
- Non-paralyzable: events arriving during the busy window are rejected, but they do not extend the busy window.
- Paralyzable: events arriving during the busy window effectively “restart” the window, so high rates can collapse throughput.
- How to tell: in a rate scan, paralyzable behavior shows stronger roll-off at high input rates and can look like the chain “gets stuck busy.”
Pile-up detection: what it looks like in waveforms and codes
- Double-peak / shoulder: a second event lands before the first fully returns to baseline; peak detect biases high or low.
- Baseline slope: the measurement window rides on a moving baseline; energy codes shift even for identical pulses.
- Incomplete recovery: after large pulses, smaller pulses are distorted; low-energy windows become unreliable.
Make pile-up and recovery visible in the event stream: report pileup_suspect, baseline_unstable, and saturation flags with clear filtering rules.
Rate-improvement levers that stay inside this chain
- Shorter shaping time: reduces busy window and pile-up probability, but can trade energy resolution.
- Fast reset / controlled recovery: improves post-saturation behavior and reduces the “dead tail” after large pulses.
- Dual-path concept: a fast pickoff path for timing + a slower, cleaner path for energy (keeps timing usable when energy is biased).
- Targeted digitization: full waveform sampling only when it unlocks digital separation; otherwise keep event-mode conversion for efficiency.
Timing budget: from target count-rate to allowable busy window
Use this budget to identify the bottleneck. The key is to measure each term with probes or diagnostic counters and match it to the model.
| Busy-window component | What sets it | How to measure | Mitigation inside chain |
|---|---|---|---|
| T_shaper_to_peak | Shaping constant / filter order | Scope at shaper output; peak time histogram | Shorter shaping, or split fast/slow paths |
| T_hold_or_gate | Peak-hold window / gated integration | Logic analyzer on hold/gate lines | Tighter gating, faster settle, reduce leakage errors |
| T_adc_convert | ADC conversion latency / throughput | ADC BUSY/EOC timing; internal counters | Higher-throughput ADC, pipelining, parallel channels |
| T_reset_recovery | Reset injection, baseline return, overload recovery | Scope baseline return; post-sat small-signal test | Controlled reset, clamp strategy, baseline restorer tuning |
| Quality veto window | Pile-up logic, baseline checks, validity gates | Flag rates vs input rate; veto counters | Tune thresholds and logic so veto is selective, not overly aggressive |
FAQs (SPECT Detector Chain)
These FAQs stay strictly inside the event chain: PMT/SiPM → preamp → shaping/peak/ADC/TDC → timestamp + event flags.