REVIEW 1 major objections 6 minor 55 references
Goupil: A Monte Carlo engine for the backward transport of low-energy gamma-rays
T0 review · 1 major / 6 minor · reviewed 2026-08-11 · deepseek-v4-flash
Pith's one-line read A new backward Monte Carlo method transports gamma rays from a large source volume to a small detector without losing discrete emission lines.
desk verdict Solid tool paper with a genuine error in the printed central proof (inverted cross-section ratio) that must be fixed, plus an abstract that overstates the validation scope. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The central object is the constrained backward collision (Algorithm 2). It is a modification to a prior backward Monte Carlo algorithm that allows the pre-collision energy of a backward-sampled photon to be constrained by the discrete emission energy of the source. The machinery is the weighted identity $p^*(S)\omega(S) = p(S)$, proved by a ratio of forward and backward collision PDFs (equations 16-18). This identity guarantees that weighted backward trajectories are statistically identical to forward ones.
What would settle it
Run the Goupil backward algorithm on a geometry with a compact, high-energy source (e.g., 2 MeV or higher) in air or water and check whether the 511 keV annihilation peak, or any other secondary-induced feature, is reproduced to within the claimed 1% accuracy; if it is not, the claim fails for those settings.
Extended reading notes
Core claim
The core claim is that the backward transport algorithm with constrained backward collisions produces trajectories whose PDF, $p^*(S)$, can be weighted by a factor $\omega(S)$ so that $p^*(S)\omega(S)$ equals the forward transport PDF $p(S)$ exactly, as shown by equations 16-18. The modification itself, Algorithm 2, overrides the pre-collision photon energy to the source emission energy $\nu_I$ whenever the backward-sampled energy would exceed it, and applies a corrective weight $p_c/(1-P_c^*)$ that exactly accounts for the truncation. This makes backward Monte Carlo sampling of discrete energy lines, such as the emission lines of $^{222}$Rn progeny, possible for the first time.
Load-bearing premise
The algorithm is valid only if secondary particles—electrons, positrons, and secondary gammas—contribute negligibly to the transport outside the immediate neighborhood of the detector, since they are not simulated in the backward stage.
Editorial extensions
If this is right
- Simulates gamma-ray detector responses for sources spread over large volumes, where forward Monte Carlo would be impractically slow, at events rates of a few kHz.
- Enables full-spectrum simulations that include both photo-peaks and scattered background, not just the point-kernel approximation.
- Preserves the discrete emission lines of radionuclides, solving a key limitation of existing backward algorithms.
- Works as a mixed scheme: backward transport from the detector to an envelope around it feeds a forward, secondary-aware simulation inside the detector, achieving about 1% agreement with end-to-end forward Geant4, except at the 511 keV annihilation line.
- Yields Monte Carlo efficiencies of ~30-39% in tested cases, compared to ~3e-5 for forward transport, and speedups of about 1e3 to 5e4.
Reading between the lines
- The same constrained-collision trick could be applied to other backward transport problems with discrete stopping conditions, e.g. fixed-energy particle sources in muography or neutron transport.
- The neglect of secondaries in backward transport is a win for speed but means the 511 keV positron-annihilation line, and any other secondary-induced signatures, are missing; applications needing those must use the mixed scheme or a correction.
- The 511 keV line being the only discrepancy in the mixed test suggests error is localized, but the assumption that secondaries are below 1% of flux outside the immediate detector neighborhood should be re-tested in denser media or for higher-energy sources.
- An extension to continuous source spectra with energy-dependent activities would require weighting by the energy probability density, similar to the line-selection weight $\omega_s$ in equation 19.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper presents Goupil, an open-source library implementing backward Monte Carlo transport of low-energy gamma-rays, aimed at geometries where the source region is much larger than the detector. The central algorithmic novelty is a constrained backward collision procedure (Algorithm 2) that permits sampling of discrete emission lines, together with a weight formula claimed to satisfy p*ω=p. The method is validated in two ways: a large air/soil geometry compared with Geant4 forward transport (Test 1), and a mixed Goupil-backward / Geant4-forward simulation of a NaI(Tl) detector immersed in water compared with an end-to-end Geant4 simulation (Test 2). The reported efficiency gains are orders of magnitude (e.g., Δt1 from 0.67 s to 14.9 µs in Test 1), with agreement within about 1% for primary-photon quantities.
Significance. If the algorithm is correct, it offers a substantial practical improvement for environmental gamma-ray spectrometry, where conventional forward Monte Carlo becomes prohibitively slow for large air volumes. The paper's strengths include a self-contained derivation of the constrained-collision weight (Appendix A), external benchmarks against an independent transport engine, and a publicly available implementation with reproducible example scripts. The validations are quantitative and appropriately compared with Monte Carlo uncertainties (Tables 2-4, Figures 6-9). The main caveat is the deliberate neglect of secondary particles (electrons, positrons, and secondary gammas), which the authors quantify as <1% of the primary flux but which removes the 511 keV positron-annihilation line; this limitation is explicitly acknowledged in Sections 2, 5.2.3, and the Conclusion. A further concern, discussed in the major comments, is a mathematical error in the published weight derivation (Eqs. 17-18) that must be corrected even though the implementation appears correct.
major comments (1)
- [Section 3.3.5, Eqs. (17)-(18)] In the derivation of ω, Eq. (17) and the first line of Eq. (18) are algebraically incorrect. From Eqs. (7) and (16), the weight must be ω = p/p* = λ_in ∏ ω_c [λ_j(r_i,ν_i)/λ_j(r_i,ν_{i-1})], which, using λ_j = M/(ρ N_A σ_j), equals λ_in ∏ ω_c [σ_j(ν_{i-1})/σ_j(ν_i)]. Equation (17) prints the reciprocal ratio σ_j(ν_i)/σ_j(ν_{i-1}). The accompanying 'by definition' identity σ_j(ν_i)/λ_j(r_i,ν_i) = σ_j(ν_{i-1})/λ_j(r_i,ν_{i-1}) is not an identity: substituting the definition of λ_j gives ρ N_A σ_j(ν_i)^2/M = ρ N_A σ_j(ν_{i-1})^2/M, which holds only when σ_j(ν_i)=σ_j(ν_{i-1}). The correct identity is σ_j(ν_i)/λ_j(r_i,ν_{i-1}) = σ_j(ν_{i-1})/λ_j(r_i,ν_i), and the correct ratio in Eq. (17) is σ_j(ν_{i-1})/σ_j(ν_i). Notably, Algorithm 3 line 33 multiplies by σ(j)/σj after updating σ to the new energy, i.e., the correct ratio, so the software appears to implement the right weight; however, the printed derivation, which is the basis of the claim p*ω=p, is invalid as written and would mislead a reader implementing from Eq. (17). Please correct the equations and the surrounding text.
minor comments (6)
- [Abstract; Sec. 5.2.3; Conclusion] The abstract states that the detector response is 'accurately simulated (to the nearest percent)' without qualification; the body later states that the mixed simulation matches forward results 'with the exception of the 511 keV region.' Please qualify the abstract, for example by noting that the 1% agreement applies to primary-photon transport and excludes positron-annihilation secondaries.
- [Sec. 5.1.1 and Table 2] The text of Test 1 specifies Geant4 version 11.4.1, while Table 2 says 'Version 11.2.1 of Geant4 was used.' The version used in the comparison should be stated consistently.
- [Table 3] The uncertainty entries such as '±0.3 h' are unclear: the unit 'h' is not defined and the intensities are in kHz. Please clarify the notation used for the Monte Carlo uncertainties.
- [Algorithm 1 and Algorithm 3] In the pseudocode, the call 'SelectProcess(σ, σ,R)' appears to be a typo: the second argument should be the summed cross-section (as suggested by the text 'SelectProcess (L16) ... selects one of the interaction processes with probability qj = σj/σ'). Please correct the pseudocode.
- [Appendix H] The phrase 'Niess et al. [29, lemme 1]' mixes French and English; it should be 'Lemma 1' for consistency with the rest of the manuscript.
- [Eq. (38)] The resolution formula, as printed, is hard to parse: 'σ(∆) = 2 √ 2 ln 2ϵ0 p ∆∆0'. Please typeset it unambiguously, e.g., as σ(Δ) = 2√(2 ln 2)ϵ0/√(ΔΔ0).
Circularity Check
No significant circularity: the backward transport is validated against independent Geant4 benchmarks, and the Eq. 17/18 algebra issue is a correctness typo, not a circular reduction.
full rationale
The central claim is the importance-sampling identity p*(S) omega(S) = p(S) (Eqs. 16-18), which is a reweighting of backward trajectories to reproduce the forward PDF. The derivation uses the same physics for both directions: cross-sections come from external EPDL/XCOM/Penelope tables, and no transport parameter is fitted to the validation targets. The only fitted quantity, the NaI(Tl) resolution epsilon0 = 6.7%, is a detector-response parameter applied symmetrically to both forward and mixed simulations in Test 2, so it cannot manufacture the ~1% agreement. The validation against Geant4 forward transport (Secs. 5.1.3 and 5.2.3) is an external, independent benchmark with no tunable constants in the transport equations. The paper invokes the authors' prior framework [29] for corollary 3 and Lemma 5 when inverting the forward algorithm; this is normal prior-work support, and the genuinely new constrained-collision step carries its own proof in Appendix A. The external Geant4 agreement independently confirms the overall algorithm. I flag, as a correctness issue rather than circularity, that Eq. 18 prints the identity sigma_j(nu_i)/lambda_j(r_i,nu_i) = sigma_j(nu_{i-1})/lambda_j(r_i,nu_{i-1}) 'by definition'; substituting lambda_j = M/(rho N_A sigma_j) shows this would require sigma_j(nu_i)^2 = sigma_j(nu_{i-1})^2. The identity actually needed for p* omega = p is sigma_j(nu_i)/lambda_j(r_i,nu_{i-1}) = sigma_j(nu_{i-1})/lambda_j(r_i,nu_i), and Algorithm 3 line 33 implements the corresponding ratio correctly. Thus the printed proof contains an algebraic typo, but the derivation is not circular. Score 1 reflects only the minor, non-load-bearing self-citation weight.
Assumptions & free parameters
free parameters (1)
- NaI(Tl) energy resolution epsilon0 =
6.7%
assumptions (5)
- domain assumption Gamma photons can be treated as point-like particles moving along straight segments between instantaneous collisions with atoms of the propagation medium.
- domain assumption Secondary particles can be neglected outside the immediate detector neighborhood without biasing the transported flux by more than about 1 percent.
- standard math The backward-inversion results of Niess et al. [29], specifically corollary 3, Lemma 5, and the flux-type interface conditions, apply to the gamma-ray collision processes used here.
- domain assumption Materials can be modeled as perfect gases of atoms, and the EPDL/XCOM/Penelope atomic tables used for cross sections and form factors are accurate for this energy range.
- domain assumption There are no gamma sources inside the collection surface C, and source activities outside C are known.
Cite this review
Pith. "Pith review of Goupil: A Monte Carlo engine for the backward transport of low-energy gamma-rays." pith.science (2026). https://pith.science/paper/R2DUTQ2F
@misc{pith2026241202414,
author = {Pith},
title = {Pith review of: Goupil: A Monte Carlo engine for the backward transport of low-energy gamma-rays},
year = {2026},
howpublished = {\url{https://pith.science/paper/R2DUTQ2F}},
note = {Machine review of arXiv:2412.02414}
}
read the original abstract
Goupil is a software library designed for the Monte Carlo transport of low-energy gamma-rays, such as those emitted from radioactive isotopes. The library is distributed as a Python module. It implements a dedicated backward sampling algorithm that is highly effective for geometries where the source size largely exceeds the detector size. When used in conjunction with a conventional Monte Carlo engine (i.e., Geant), the response of a scintillation detector to gamma-active radio-isotopes scattered over the environment is accurately simulated (to the nearest percent) while achieving events rates of a few kHz (with a ~2.3 GHz CPU).
Figures
Figures from the paper (6 more)
Reference graph
Works this paper leans on
-
[1]
R. L. Grasty, Geophysics 40 (1975) 503–519
work page 1975
-
[2]
Y. Sanada, T. Torii, J. Environ. Radioact. 139 (2015) 294–299. https://doi.org/10.1016/j. jenvrad.2014.06.027
doi:10.1016/j 2015
-
[3]
R. L. Grasty, J. Hovgaard, J. Multala, Radiat. Prot. Dosim. 73 (1997) 225–230. https://doi.org/ 10.1093/oxfordjournals.rpd.a032139
-
[4]
P. P. Povinec, I. Osvath, M. S. Baxter, Appl. Radiat. Isot. 47 (1996) 1127–1133. https://doi.org/ 10.1016/S0969-8043(96)00118-2
- [5]
-
[6]
M. Baldoncini, M. Alb´ eri, C. Bottardi, et al., Atmospheric Environ. 170 (2017) 259–268. https: //doi.org/10.1016/j.atmosenv.2017.09.048
-
[7]
H. Dulai, J. Kamenik, C. A. Waters, et al., J. Radioanal. Nucl. Chem. 307 (2016) 1865–1870. https://doi.org/10.1007/s10967-015-4580-9
-
[8]
N. Takeuchi, A. Katase, J. Nucl. Sci. Technol. 19 (1982) 393–409. https://doi.org/10.1080/ 18811248.1982.9734160. 30
arXiv 1982
Show all 55 references
-
[9]
Reinhardt, L
N. Reinhardt, L. Herrmann, J. Plant Nutr. Soil Sci. 182 (2019) 9–27. https://doi.org/10.1002/ jpln.201700447
2019
-
[10]
Terray, P.-J
L. Terray, P.-J. Gauthier, V. Breton, et al., J. Geophys. Res. Solid 125 (2020) e2019JB019149. https://doi.org/10.1029/2019JB019149
2020 doi
-
[11]
B. R. S. Minty, AGSO J. Aust. Geol. Geophys. 17 (1997) 39–50
1997
-
[12]
Agostinelli, J
S. Agostinelli, J. Allison, K. Amako, et al., Nucl. Instrum. Methods. Phys. Res. A 506 (2003) 250–303. https://doi.org/10.1016/S0168-9002(03)01368-8
2003 doi
-
[13]
Allison, K
J. Allison, K. Amako, J. Apostolakis, et al., IEEE Trans. Nucl. Sci. 53 (2006) 270–278. https: //doi.org/10.1109/TNS.2006.869826
2006
-
[14]
Allison, K
J. Allison, K. Amako, J. Apostolakis, et al., Nucl. Instrum. Methods. Phys. Res. A 835 (2016) 186–225. https://doi.org/10.1016/j.nima.2016.06.125
2016 doi
-
[15]
M. E. Rising, J. C. Armstrong, S. R. Bolding, et al., Technical Report LA-UR-22-33103, Rev. 1, Los Alamos National Laboratory, 2023. https://doi.org/10.2172/1909545
2023 doi
-
[16]
Bagatelas, C
C. Bagatelas, C. Tsabaris, M. Kokkoris, et al., Environ. Monit. Assess. 165 (2010) 159–168. https: //doi.org/10.1007/s10661-009-0935-4
2010 doi
-
[17]
E. G. Androulakaki, M. Kokkoris, C. Tsabaris, et al., Appl. Radiat. Isot. 114 (2016) 76–86. https: //doi.org/10.1016/j.apradiso.2016.05.008
2016 doi
-
[18]
Baldoncini, M
M. Baldoncini, M. Alb´ eri, C. Bottardi, et al., J. Environ. Radioact. 192 (2018) 105–116. https: //doi.org/10.1016/j.jenvrad.2018.06.001
2018 doi
-
[19]
Satoh, K
D. Satoh, K. Kojima, A. Oizumi, et al., J. Nucl. Sci. Technol. 51 (2014) 656–670. https://doi. org/10.1080/00223131.2014.886534
2014
-
[20]
L. E. Smith, C. J. Gesh, R. T. Pagh, et al., IEEE Trans. Nucl. Sci. 55 (2008) 2598–2606. https: //doi.org/10.1109/TNS.2008.2002819
2008
-
[21]
M. W. Shaver, L. E. Smith, R. T. Pagh, et al., Nucl. Technol. 168 (2009) 95–100. https://doi. org/10.13182/NT09-A9106
2009 doi
-
[22]
Gabler, J
D. Gabler, J. Henniger, U. Reichelt, Nucl. Instrum. Method Phys. Res. Sect. B Beam Interact. Mater. At. 251 (2006) 326–332. https://doi.org/10.1016/j.nimb.2006.07.005
2006 doi
-
[23]
Pourrouquet, J.-C
P. Pourrouquet, J.-C. Thomas, P.-F. Peyrard, et al., in: 2011 IEEE Radiation Effects Data Work- shop, 2011, pp. 1–5. 10.1109/REDW.2010.6062530
2011
-
[24]
A. P. Robinson, D. Henderson, L. Kersting, E. Moll, Nucl. Sci. Eng. 196 (2022) 1–15. https: //doi.org/10.1080/00295639.2021.1935103
2022
-
[25]
Malins, M
A. Malins, M. Machida, K. Niita, EPJ Web Conf. 153 (2017) 06001. https://doi.org/10.1051/ epjconf/201715306001
2017
-
[26]
Desorgher, F
L. Desorgher, F. Lei, G. Santin, Nucl. Instrum. Methods. Phys. Res. A 621 (2010) 247–257. https: //doi.org/10.1016/j.nima.2010.06.001
2010 doi
-
[27]
M. D. Looper, Technical Report ATR-2018-00052, Aerospace Corp El Segundo, CA, El Segundo, United States, 2018
2018
-
[28]
B. Jun, B. X. Zhu, L. M. Martinez-Sierra, I. Jun, IEEE Trans. Nucl. Sci. 67 (2020) 1629–1636. https://doi.org/10.1109/TNS.2020.2979657
2020
-
[29]
Niess, A
V. Niess, A. Barnoud, C. Cˆ arloganu, E. Le M´ en´ edeu, Comput. Phys. Commun. 229 (2018) 54–67. https://doi.org/10.1016/j.cpc.2018.04.001
2018 doi
-
[30]
Niess, Comput
V. Niess, Comput. Phys. Commun. 279 (2022) 108438. https://doi.org/10.1016/j.cpc.2022. 108438
2022 doi
-
[31]
http://www.lnhb.fr/accueil/donnees-nucleaires/module-lara/
Lara, 2023. http://www.lnhb.fr/accueil/donnees-nucleaires/module-lara/
2023
-
[32]
D. E. Cullen, J. H. Hubbell, L. Kissel, EPDL97, Technical Report, LLNL, 1997
1997
-
[33]
M. J. Berger, Methods in Computational Physics 1 (1963) 135–215
1963
-
[34]
https://www.rust-lang.org/
Rust Programming Language, 2023. https://www.rust-lang.org/
2023
-
[35]
https://pypi.org/project/goupil/
Python Package Index, Goupil, 2024. https://pypi.org/project/goupil/
2024
-
[36]
https://github.com/niess/goupil/
Github, Goupil, 2024. https://github.com/niess/goupil/
2024
-
[37]
https://goupil.readthedocs.io/en/latest/
Read the Docs, Goupil, 2024. https://goupil.readthedocs.io/en/latest/
2024
-
[38]
https://github.com/niess/calzone/
Github, Calzone, 2025. https://github.com/niess/calzone/
2025
-
[39]
Bar´ o, J
J. Bar´ o, J. Sempau, J. M. Fern´ andez-Varea, F. Salvat, Nucl. Instrum. Methods. Phys. Res. B 100 (1995) 31–46. https://doi.org/10.1016/0168-583X(95)00349-5
1995 doi
-
[40]
Salvat, Penelope-2014: A code system for monte carlo simulation of electron and photon trans- port, 2015
F. Salvat, Penelope-2014: A code system for monte carlo simulation of electron and photon trans- port, 2015. https://www.oecd-nea.org/lists/penelope.html
2014
-
[41]
R. L. Workman, V. Burkert, V. Crede, et al. (Particle Data Group), PTEP 2022 (2022) 083C01. https://doi.org/10.1093/ptep/ptac097
2022 doi
-
[42]
Higham, J
D. Higham, J. Comput. Appl. Math. 39 (1992) 287–294. https://doi.org/10.1016/0377-0427(92) 90205-C. 31
1992 doi
-
[43]
https://www-nds.iaea.org/epics/
EPICS, 2023. https://www-nds.iaea.org/epics/
2023
- [44]
-
[45]
Born, Atomic Physics, Blackie and Son, 1969
M. Born, Atomic Physics, Blackie and Son, 1969
1969
-
[46]
Klein, Y
O. Klein, Y. Nishina, Z. f¨ ur Phys. 52 (1929) 853–868. https://doi.org/10.1007/BF01366453
1929 doi
-
[47]
Bar´ o, M
J. Bar´ o, M. Roteta, J. M. Fern´ andez-Varea, F. Salvat, Radiat. Phys. Chem. 44 (1994) 531–552. https://doi.org/10.1016/0969-806X(94)90053-1
1994 doi
-
[48]
Ribberfors, K
R. Ribberfors, K. F. Berggren, Phys. Rev. A 26 (1982) 3325–3333. https://doi.org/10.1103/ PhysRevA.26.3325
1982
-
[49]
Niess, A
V. Niess, A. Barnoud, C. Cˆ arloganu, O. Martineau-Huynh, Comput. Phys. Commun. 247 (2020) 106952. https://doi.org/10.1016/j.cpc.2019.106952
2020
-
[50]
M´ esocentre Clermont-Auvergne, 2024.https://mesocentre.uca.fr/
2024
-
[51]
Duc Tam, N
H. Duc Tam, N. T. Hai Yen, L. B. Tran, H. Dinh Chuong, T. Thien Thanh, Appl. Radiat. Isot. 130 (2017) 75–79. https://doi.org/10.1016/j.apradiso.2017.09.020
2017 doi
-
[52]
G. F. Knoll, Radiation detection and measurement, John Wiley & Sons, 2010
2010
-
[53]
C. R. Harris, K. J. Millman, S. J. van der Walt, et al., Nature 585 (2020) 357–362. https: //doi.org/10.1038/s41586-020-2649-2
2020 doi
-
[54]
J. D. Hunter, Comput. Sci. Eng. 9 (2007) 90–95. https://doi.org/10.1109/MCSE.2007.55
2007 doi
-
[55]
Butcher, H
J. Butcher, H. Messel, Nucl. Phys. 20 (1960) 15–128. https://doi.org/10.1016/0029-5582(60) 90162-0. 32 Air Detector Soil Forward Backward γ sources Pb,214 Bi, etc.214 Figure 1: Schematic view of the Monte Carlo transport of gamma photons emitted by radionuclides. Yellow lines ...
1960 doi
Reviewed August 11, 2026 · model on record in the stance chip above.
Discussion (0). Continue with ORCID to comment.