# Dctracks Track Recon Eval

> Evaluates the performance of machine learning and traditional algorithms for reconstructing particle tracks in drift chamber detectors. It probes hit-level matching accuracy, track-level reconstruction efficiency, charge identification correctness, and momentum resolution under realistic detector conditions. Use when the user wants to benchmark on DCTracks, or asks about evaluating this task. Reports track efficiency.

- Skill: `qhjqhj00/dctracks-track-recon-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/dctracks-track-recon-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/dctracks-track-recon-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/dctracks-track-recon-eval

---


# dctracks-track-recon-eval

> DCTracks: An Open Dataset for Machine Learning-Based Drift Chamber Track Reconstruction — Qian Liyan et al. (2026) (arXiv:2602.14571, 2026)

## What this evaluates

Evaluates the performance of machine learning and traditional algorithms for reconstructing particle tracks in drift chamber detectors. It probes hit-level matching accuracy, track-level reconstruction efficiency, charge identification correctness, and momentum resolution under realistic detector conditions.

## Datasets

- **DCTracks** — total ?; splits: test (-1); repo https://github.com/lyqian1220/DCTracksMetrics.git

## Metrics

- `hit efficiency` — range: [0, 1]
  - Fraction of a particle's detectable truth hits that are correctly reconstructed and matched to that particle: epsilon_hit = N_hit_matched / N_hit_detectable.
- `hit purity` — range: [0, 1]
  - Fraction of reconstructed hits assigned to a track that are correctly matched to the originating particle: p_hit = N_hit_matched / N_hit_assigned.
- `track efficiency` **(primary)** — range: [0, 1]
  - Fraction of detectable truth tracks (>=6 detectable hits) for which a matched reconstructed track exists: epsilon_track = N_track_matched / N_track_detectable.
- `track charge efficiency` — range: [0, 1]
  - Fraction of detectable truth tracks reconstructed with the correct charge: epsilon_track,q = N_track_matched,q-correct / N_track_detectable.
- `wrong charge rate` — range: [0, 1]
  - Fraction of detectable truth tracks reconstructed with the wrong charge: R_wrong,q = N_track_matched,q-incorrect / N_track_detectable.
- `clone rate` — range: [0, 1]
  - Total count of clone tracks (multiple reconstructions matching the same truth track) divided by total detectable truth tracks: R_clone = N_track_clone / N_track_detectable.
- `fake rate` — range: [0, 1]
  - Total number of fake tracks (fails purity/efficiency criteria) divided by total detectable truth tracks: R_fake = N_track_fake / N_track_detectable.
- `pT resolution` — range: percent
  - 68% coverage of the absolute normalized residual distribution around its median: r(pT) = P_68%(|eta_pT - P_50%(eta_pT)|), where eta_pT = (pT_reco - pT_MC) / pT_MC.

## Input / output format

**Input**: Detector readout hits (after digitization, thresholding, and inefficiency losses) and Monte Carlo truth information for single- and two-track events.

**Output**: Reconstructed tracks with assigned hits, charge, and kinematic parameters (e.g., transverse momentum pT).

## Scoring recipe

```python
# 1. Identify detectable truth tracks (>=6 detectable hits)
# 2. For each reconstructed track, compute hit purity and hit efficiency
# 3. A track is "matched" if purity>0.5, hit_eff>0.2, and matched_hits>=6
# 4. If multiple match same truth track, keep highest hit_eff (others are clones)
# 5. Tracks failing criteria are "fake"
# 6. Compute rates:
track_eff = len(matched_truth_tracks) / len(detectable_truth_tracks)
hit_eff = sum(matched_hits_per_truth) / sum(detectable_hits_per_truth)
hit_purity = sum(matched_hits_per_truth) / sum(all_assigned_hits)
# 7. Charge metrics: fraction of matched tracks with correct/incorrect charge
# 8. pT resolution:
residuals = [(r.pt - t.pt) / t.pt for r, t in matched_pairs]
pT_res = quantile(abs(residuals - median(abs(residuals))), 0.68)
```

## Common pitfalls

- Confusing hit-level metrics with track-level metrics; the paper strictly separates them and defines matching criteria at the track level.
- Misinterpreting 'clone tracks' as fake tracks; clones are valid matches that share a truth track, while fakes fail purity/efficiency thresholds.
- Using standard deviation for pT resolution instead of the 68% coverage around the median, as specified for potentially non-Gaussian distributions.

## Evidence (verbatim from paper)

> Track efficiency ($\epsilon_{\text{track}}$) is defined as the fraction of detectable truth tracks for which a matched reconstructed track exists: $\epsilon_{\text{track}}\=\frac{N_{\text{track}}^{\text{matched}}}{N_{\text{track}}^{\text{detectable}}}$. Here, we define a simulated particle a detectable truth track if it has at least six detectable truth hits. $N_{\mathrm{track}}^{\mathrm{detectable}}$ denotes the number of detectable truth tracks in the samples and $N_{\mathrm{track}}^{\mathrm{matched}}$ denotes the subset that have a matched reconstructed track.

## Citation

```bibtex
@misc{qian2026dctracks,
  title={DCTracks: An Open Dataset for Machine Learning-Based Drift Chamber Track Reconstruction},
  author={Qian Liyan et al. (2026)},
  year={2026},
  note={arXiv:2602.14571}
}
```

- arXiv: 2602.14571

