Benchmark Comparison Material
Last updated: 2026-06-19.
This page is for technical discussion. It lists representative geometries, key results, figures, and traceable summary paths.
The current reproducible external Monte Carlo reference is Geant4. OpenMC is still a planned comparison path for photon and neutron-oriented scenarios, but the current workspace does not contain a retained OpenMC artifact for citation.
Current Message
NeoMC currently has benchmark evidence for:
- decay source terms feeding gamma and charged-particle transport
- photon / gamma shielding detector response
- beta electron water depth-dose
- positron transport and annihilation photon accounting
- proton CSDA ionisation range in water
This is not a complete general-purpose Monte Carlo validation suite. The material supports scoped discussion of implemented physics. It does not support broad claims about mature neutron, hadronic, ion, activation, or experimental validation.
Co-60 Gamma Shielding
1 Bq, 1 h windowAir gap
1 cmLead shield
1-2 cmWater detector
1 cmDetector edep, dose,
energy-response bins
Purpose: check decay photon / electron source generation, gamma attenuation, and detector-response scoring.
Current reference: Geant4 Standard EM. OpenMC comparison is pending.
| Case | Histories | Observable | NeoMC - Geant4 |
|---|---|---|---|
| Co-60, air 1 cm + Pb 2 cm + water 1 cm | 20,000 | Detector edep mean | +828 eV/history, +1.19 sigma |
| Co-60, air 1 cm + Pb 1 cm + water 1 cm | 5,000 | Detector edep mean | -157 eV/history, -0.069 sigma |
Beta Electron Depth-Dose
pencil beamWater slab
depth-scored binsDepth-dose curve
D50/D90/D95/D99Escape and accounting
Purpose: check beta spectrum sampling, charged-particle range, continuous energy loss, multiple scattering, and depth-resolved energy deposition.
Current reference: Geant4 Standard EM.
| Case | Histories | Integral edep diff | Depth metric diff |
|---|---|---|---|
| P-32 beta water depth-dose | 5,000 | +0.24 sigma | D90 -0.02 cm, D99 -0.02 cm |
| Sr-90/Y-90 equal-activity beta | 5,000 | +0.13 sigma | D90/D99 match |
| Y-90 beta | 5,000 | +0.071 sigma | D90/D99 match |
Integral dose behavior is statistically consistent with Geant4 in the current runs. Depth-bin and step/accounting differences remain more sensitive than total edep and should stay visible in technical discussion.
F-18 Positron Annihilation
1 Bq, 1 s windowWater cube
10 cmPositron slowing
and annihilation511 keV photon escape
and edep accounting
Purpose: check beta-plus source generation, positron slowing, at-rest / in-flight annihilation accounting, 511 keV photon production, and energy closure.
Current reference: Geant4 Standard EM.
| Histories | Observable | NeoMC | Geant4 | Difference |
|---|---|---|---|---|
| 50,000 | Water edep mean | 429,103 eV/history | 429,157 eV/history | -0.035 sigma |
| 50,000 | Annihilation photon tracks | 96,818 | 96,818 | 0 |
| 50,000 | Escaped 511-window photon tracks | 60,022 | 59,911 | +111 |
Positron annihilation production and integral energy deposition are aligned in the current benchmark. Escape-window counts are close but remain a named observable because they are sensitive to geometry and energy-window definition.
Proton CSDA Range
1 MeV pencil beamWater slab
0.1 cm, depth binsCSDA range
depth-dose and stop/escapeNIST PSTAR context
Purpose: check proton electronic stopping and CSDA range in a deliberately limited ionisation-only scope.
Current reference: Geant4 EM and PSTAR context. This is not a hadronic proton benchmark.
| Histories | Observable | Result |
|---|---|---|
| 1,000 | Integral water edep | NeoMC - Geant4 = 0 eV/history |
| 1,000 | PSTAR CSDA range | NeoMC - Geant4 context = 0 cm |
| 1,000 | D90/D99 depth-bin location | NeoMC - Geant4 = +0.001 cm |
This result supports the current proton CSDA ionisation claim only. It does not validate nuclear reactions, nonelastic hadronic processes, straggling, or broad clinical proton transport behavior.
Geant4 And OpenMC Comparison Status
| Reference | Current role | What can be said now |
|---|---|---|
| Geant4 | Primary current external Monte Carlo reference for gamma, beta, positron, and proton-CSDA scenarios. | Current workspace contains summary artifacts and plots traceable to Geant4 comparisons. |
| OpenMC | Planned comparison path for photon and neutron-oriented scenarios. | No current reproducible OpenMC artifact is present in the workspace for this report; regenerate before citing. |
Traceability
| Figure or table | Data source |
|---|---|
| Co-60 detector energy response | build/benchmarks/gamma_thickness_20260619/neomc_pb_2.0_20k.summary, build/benchmarks/gamma_thickness_20260619/g4_pb_2.0_20k.summary, build/benchmarks/gamma_thickness_20260619/compare_pb_2.0_20k.summary |
| P-32 beta depth-dose | build/benchmarks/electron_beta_recompare_20260619/neomc_p32.summary, build/benchmarks/electron_beta_recompare_20260619/g4_p32.summary, build/benchmarks/electron_beta_recompare_20260619/compare_p32.summary |
| F-18 positron annihilation | build/benchmarks/positron_annihilation_recompare_20260619_50k/neomc.summary, build/benchmarks/positron_annihilation_recompare_20260619_50k/g4.summary, build/benchmarks/positron_annihilation_recompare_20260619_50k/compare.summary |
| Proton CSDA depth-dose | build/benchmarks/session_proton_20260619/neomc.summary, build/benchmarks/session_proton_20260619/geant4.summary, build/benchmarks/session_proton_20260619/comparison.summary |
Next Comparison Work
| Work | Purpose |
|---|---|
| Regenerate OpenMC photon comparison and keep the artifact path. | Make OpenMC claims reproducible in this report. |
| Add experiment or authoritative-data references where practical. | Move beyond inter-code agreement for mature benchmark claims. |
| Add neutron benchmark material as neutron transport matures. | Keep early source or data checks separate from mature transport validation. |
| Expand proton and alpha benchmarks only inside explicit physics scope. | Keep CSDA ionisation evidence separate from hadronic or full ion transport claims. |
| Keep benchmark outputs as summaries plus plots. | Make professional discussion concrete without turning benchmark runners into product API. |