{"id":"54027e48-cf67-4b11-b71e-fe631cf9b740","arxiv_id":"2412.02414","paper_version":2,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":6.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":1,"one_line_summary":"A backward Monte Carlo transport algorithm with an energy-constraint trick lets a small detector efficiently count gamma rays from large, diffuse radioactive sources, validated against Geant4 within about 1 percent.","lead":"Goupil is a new open-source library that simulates gamma-ray travel backwards, from detector to source, making it orders of magnitude faster when radioactive sources are spread over a large area. It matches a standard Geant4 forward simulation to within about 1 percent in test geometries, but it misses the 511 keV annihilation line because secondary particles are ignored in the transport stage.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Eq. 17/18 in the central proof contain an inverted cross-section ratio; as written, p*ω=p does not follow, though Algorithm 3's implementation uses the correct ratio.","rationale":"Focusing on the secondaries approximation misses a more fundamental problem. The manuscript's central identity p*ω=p is 'proved' in §3.3.5 using Eq. 18, whose first line is not an identity but a condition that fails for inelastic collisions. The resulting Eq. 17 is inverted relative to the correct weight derived from Eqs. 7 and 16. This is not a scope limitation or an approximation; it is an error in the mathematical derivation of the algorithm's correctness. If a reader implemented Goupil from the displayed formulas rather than from Algorithm 3's pseudocode, the backward Monte Carlo would be biased by a factor of [σ_j(ν_{i-1})/σ_j(ν_i)]^2 per collision. The strong validation against Geant4 in §5 and the fact that line 33 of Algorithm 3 uses the correct σ_j(ν_{i-1})/σ_j(ν_i) ratio are good evidence that the code itself is correct and the journal version likely contains a typo; nevertheless, the written proof is unreliable as a reference. This concern is load-bearing because it attacks the central formal claim, not a caveated corner case. The reader's identified secondaries issue is real but acknowledged, quantified (<1% in air), and explicitly scoped in §5.2.3; it does not undermine the p*ω=p derivation. The weight-ratio error does. I therefore recommend keeping the CONDITIONAL verdict—the paper is acceptable only after the formulas in Eqs. 17–18 are corrected and the proof re-verified.","tokens_in":26561,"tokens_out":22196,"duration_ms":197963,"concrete_test":"Take a single Compton collision in homogeneous air (no absorption, no Rayleigh). Fix a source line ν_I and a post-collision energy ν_1<ν_I. Write p(S) from Eq. 7 and p*(S) from Eq. 16 for the same trajectory. Evaluate ω from Eq. 17 and from Algorithm 3's recurrence (multiply by σ_j(ν_{i-1})/σ_j(ν_i)). Compute p*ω/p for both. The Eq. 17 form gives σ_j(ν_1)^2/σ_j(ν_I)^2 (i.e., a bias proportional to the cross-section ratio squared), while Algorithm 3's form gives 1. This can also be verified numerically with the public Goupil source by inserting a debug print of the accumulated weight in a one-collision backward run and comparing to the forward collision density.","verdict_should_be":"UNCHANGED","load_bearing_attack":"Let p(S)=Ps(S)∏ p_c,j(i)(ν_i,u_i;ν_{i-1},u_{i-1})/λ_j(i)(r_i,ν_{i-1}) (Eq. 7) and p*(S)=Ps(S)(1/λ_in(r_I,ν_I))∏ p*_c,j(i)(ν_{i-1},u_{i-1};ν_i,u_i)/λ_j(i)(r_i,ν_i) (Eq. 16). Then ω=p/p* must equal λ_in ∏ ω_c [λ_j(r_i,ν_i)/λ_j(r_i,ν_{i-1})] = λ_in ∏ ω_c [σ_j(ν_{i-1})/σ_j(ν_i)] since λ_j∝1/σ_j. Eq. 17 prints the reciprocal ratio σ_j(ν_i)/σ_j(ν_{i-1}). The accompanying 'by definition' identity in Eq. 18, σ_j(ν_i)/λ_j(r_i,ν_i)=σ_j(ν_{i-1})/λ_j(r_i,ν_{i-1}), is not an identity: substituting λ_j=M/(ρN_Aσ_j) gives ρN_A σ_j(ν_i)^2/M = ρN_A σ_j(ν_{i-1})^2/M, which holds only for elastic collisions. The correct identity is σ_j(ν_i)/λ_j(r_i,ν_{i-1}) = σ_j(ν_{i-1})/λ_j(r_i,ν_i). Note that Algorithm 3 line 33 multiplies by σ(j)/σj with σ updated to the new energy, i.e. σ_j(ν_{i-1})/σ_j(ν_i), the correct ratio. Thus the implementation appears right, but the published derivation—the basis for the central claim—is mathematically invalid as written, and any reader implementing from Eq. 17 would obtain biased weights.","agreement_with_reader":"disagree"},"referee_report":{"model":"deepseek-v4-flash","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.","tokens_in":26876,"tokens_out":8487,"duration_ms":78849,"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":[{"comment":"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.","section":"Section 3.3.5, Eqs. (17)-(18)"}],"minor_comments":[{"comment":"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.","section":"Abstract; Sec. 5.2.3; Conclusion"},{"comment":"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.","section":"Sec. 5.1.1 and Table 2"},{"comment":"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.","section":"Table 3"},{"comment":"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.","section":"Algorithm 1 and Algorithm 3"},{"comment":"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.","section":"Appendix H"},{"comment":"The resolution formula, as printed, is hard to parse: 'σ(∆) = 2\n√\n2 ln 2ϵ0\np\n∆∆0'. Please typeset it unambiguously, e.g., as σ(Δ) = 2√(2 ln 2)ϵ0/√(ΔΔ0).","section":"Eq. (38)"}],"recommendation":"major_revision","confidential_remarks":"The manuscript header says 'Accepted for publication in Computer Physics Communications April 29, 2025,' so the authors may already have an editorial process in place. The main technical concern, the algebraic error in Eqs. (17)-(18), appears to be a text-level mistake rather than an implementation error, since Algorithm 3 and the validations are consistent. If this report is for a different journal, please also verify the Geant4 version discrepancy noted in the minor comments."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Short version: this is a useful, well-engineered tool paper, and the software is real and validated. But the printed derivation of the central identity has an inverted cross-section ratio, and the abstract claims more than the benchmarks actually show.\n\nWhat's actually new: Algorithm 2, the constrained backward collision that forces the pre-collision energy onto a discrete radionuclide emission line with a correction weight. That is a genuine extension of the authors' earlier backward Monte Carlo framework, and it addresses a real gap: existing backward codes sample continuous spectra and stop by geometry, which fails for line sources. The proof of the constrained procedure in Appendix A is explicit and self-contained. The code is shipped, LGPL, with a Python interface and a Geant4 adapter. The two Geant4 validations are appropriate external benchmarks. Within their scope the results are convincing: sub-1% agreement on background and photopeaks in Test 1, and about 1% except for the 511 keV region in Test 2, with efficiency gains of roughly 10^3 to 10^5.\n\nThe soft spots, in order of severity:\n\n1. The central proof as printed is wrong. Equation 17 has sigma_j(nu_i)/sigma_j(nu_{i-1}) in the product, and Equation 18 asserts an 'identity' that only holds for elastic collisions. The correct weight needs the reciprocal ratio, sigma_j(nu_{i-1})/sigma_j(nu_i). Algorithm 3 line 33 implements the correct ratio, so the code is right, but a reader implementing from Equation 17 would get biased weights. This is not a cosmetic typo: it sits exactly at the point where the paper claims to prove p*omega = p. The equations or the surrounding text must be fixed.\n\n2. The abstract's 'to the nearest percent' is broader than what the paper demonstrates. Test 1 uses an artificially large 20 m collection volume, which is not a real detector. Test 2 is in water, not air, and explicitly misses the 511 keV annihilation line because secondaries are neglected. The in-air laptop scenario is extrapolated, not benchmarked. The caveats appear in the body, but the abstract does not carry them.\n\n3. The neglect of secondaries outside the detector neighborhood is quantified and reasonable (<1% in Test 1), but it does limit the tool to applications that do not need annihilation gammas or very precise near-detector response.\n\nWho this is for: anyone doing environmental gamma spectrometry, radon monitoring, or contamination mapping. It deserves a serious referee, but only with the derivation corrected and the abstract softened to match the demonstrated scope.","headline":"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.","tokens_in":27476,"tokens_out":3109,"would_cite":true,"duration_ms":32980,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":["65C05","82C70"],"pacs":["02.70.Uu","29.40.Mc"],"model":"deepseek-v4-flash","headline":"A new backward Monte Carlo method transports gamma rays from a large source volume to a small detector without losing discrete emission lines.","keywords":["backward Monte Carlo","gamma-ray transport","importance sampling","radionuclide emission lines","Geant4 validation","scintillation detector","Compton scattering","adjoint transport"],"falsifier":"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.","tokens_in":26274,"feed_emoji":"☢️","tokens_out":2909,"duration_ms":26096,"temperature":0.7,"pith_summary":"The paper presents Goupil, a Monte Carlo engine that simulates low-energy gamma-ray transport in reverse, starting from the detector and working backward until a plausible source location is found. This reverses the usual inefficiency of forward transport, where most simulated photons from a large, diffuse source never reach a small detector. The central claim is that a simple modification to a prior backward algorithm, called a constrained backward collision, allows discrete radionuclide emission lines to be sampled exactly, and that the resulting weighted backward trajectories reproduce the correct forward transport probability. If correct, Goupil makes simulations of environmental gamma-ray detectors vastly more efficient, by orders of magnitude, when the source region is much larger than the detector.","feed_headline":"Backward gamma-ray transport beats forward by 10⁴×","feed_subtitle":"Goupil simulates environmental radiation from a huge source to a tiny detector while keeping photopeaks intact.","key_machinery":"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.","core_discovery":"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.","pith_inferences":["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."],"forward_implications":["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."],"supporting_citations":[{"why":"Supplies the original backward Monte Carlo transport algorithm and the $p^*\\omega = p$ formalism (Lemma 5, corollary 3) that the constrained collision modification builds on.","marker":"[29]"},{"why":"Provides the Compton scattering model (Baro et al. parameterization) that Goupil uses and inverts for the adjoint backward sampling.","marker":"[47]"},{"why":"The authors' earlier CPC paper on the same backward algorithm, cited as [1] in the program summary and later as [29], is the direct basis for the inversion.","marker":"[1]"},{"why":"Geant4 is the reference forward Monte Carlo engine against which Goupil is validated in both tests.","marker":"[12-14]"},{"why":"Provides the radon decay chain emission line data (energies and intensities) used in the validation tests.","marker":"[31]"},{"why":"EPDL atomic tables supply form factors and cross-section data used by Goupil, along with XCOM, as inputs to its physics.","marker":"[32]"}],"fun_headline_variants":["Exact backward Monte Carlo for gamma-ray lines","First exact backward simulation of discrete gamma energies","Backward gamma transport now exact for energy lines","Goupil makes backward gamma-ray sampling exact","Backward Monte Carlo exact for discrete gamma lines"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"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.","fun_headline_variants_meta":{"raw":{"variants":["Exact backward Monte Carlo for gamma-ray lines","First exact backward simulation of discrete gamma energies","Backward gamma transport now exact for energy lines","Goupil makes backward gamma-ray sampling exact","Backward Monte Carlo exact for discrete gamma lines"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000394,"raw_usage":{"total_tokens":1990,"prompt_tokens":789,"completion_tokens":1201,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":405,"completion_tokens_details":{"reasoning_tokens":1141}},"tokens_in":405,"tokens_out":1201,"duration_ms":10595,"temperature":1.0,"reasoning_tokens":1141,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-11T23:29:06.753883+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"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.","supporting_citations":[{"cited_title":"Bar´ o, M","cited_arxiv_id":null,"evidence_quote":"Provides the Compton scattering model (Baro et al. parameterization) that Goupil uses and inverts for the adjoint backward sampling."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"The authors' earlier CPC paper on the same backward algorithm, cited as [1] in the program summary and later as [29], is the direct basis for the inversion."},{"cited_title":"http://www.lnhb.fr/accueil/donnees-nucleaires/module-lara/","cited_arxiv_id":null,"evidence_quote":"Provides the radon decay chain emission line data (energies and intensities) used in the validation tests."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"EPDL atomic tables supply form factors and cross-section data used by Goupil, along with XCOM, as inputs to its physics."}],"review_version":1}