Possible reactant/input-order dependence in Geant4-DNA IRT-sync — clarification requested


Geant4 version: 11.4.2
Chemistry model: IRT_syn
Platform: macOS 12.7.6, Intel x86_64

Hello Geant4-DNA developers,

We are investigating reactant-order invariance in the Geant4-DNA IRT-sync chemistry model.

As a baseline control, the unmodified official UHDR example configured with IRT_syn successfully reaches the genuine scheduler path, including:

G4ITModelProcessor::CalculateMinTimeStep
G4DNAIndependentReactionTimeStepper::CalculateStep

We then constructed a minimal scheduler-managed bimolecular test using supported Geant4-DNA molecular-track handoff paths.

The validation considers two independent ordering factors:

  1. Reactant input order:
    A then B
    versus
    B then A

  2. Reaction-registration order:
    A+B
    versus
    B+A

The four combinations were therefore:

  • AB input / AB registration
  • BA input / AB registration
  • AB input / BA registration
  • BA input / BA registration

Before the confirmatory run, we validated that true reactant-order reversal was actually occurring while preserving the same scheduler lifecycle, geometry, molecular identities, diffusion parameters, and reaction configuration.

A corrected 2×2 factorial validation was then run using predefined criteria and new independent random-seed blocks.

Multiple ordering-dependent effects were observed in the confirmatory analysis.

However, subsequent diagnostics have not been able to determine whether these observations arise from:

  • changes in RNG consumption caused by reactant ordering,
  • reactant-input implementation asymmetry,
  • reaction-registration asymmetry,
  • or a genuine ensemble/distribution-level ordering dependence inside IRT-sync.

Therefore, at this stage we are NOT asserting that this represents an implementation defect in IRT-sync.

The observation is also separate from an ordinary-IRT ordering issue that we investigated independently; we are not assuming that the same mechanism applies to IRT-sync.

Questions for Geant4-DNA / IRT-sync developers:

  1. Is reactant input order expected to alter any IRT-sync ensemble-level or distributional output?

  2. Is reaction-registration order (A+B versus B+A) expected to alter any IRT-sync distributional output?

  3. Can reversing reactant or reaction-registration order change the random-number consumption sequence while preserving the underlying ensemble distributions?

  4. Are there known reactant-identity or ordering assumptions inside
    G4DNAIndependentReactionTimeStepper
    or its associated diffusion-controlled reaction model?

  5. Is there an official or recommended regression test for verifying reactant-order and reaction-registration-order invariance in IRT-sync?

We would appreciate clarification on the intended ordering behaviour of IRT-sync and on the recommended diagnostic/regression-testing procedure.

We have a minimal NanoRT-independent reproducer, build/run instructions, preserved logs, and checksums available if they would be useful.

Thank you.

Dear,

Thanks for your report! Can you try the chem6 example (examples/extended/medical/dna/chem6)? In the macro file beam.in. You can choose the IRT-syn and one reaction, for example: e_aq + H → H2 + OHm

Could you also change the order of the reactants and check whether this affects the results?

Dear,

Thank you very much for the guidance.

Yes, we will repeat the test using the official chem6 example with IRT-syn and the reaction:

e_aq + H → H2 + OHm

We will then reverse only the reactant order:

H + e_aq → H2 + OHm

while keeping all other settings unchanged, and compare the results.

We will report the outcome here.

Thank you again for your help.

Best regards,
Mehmet Karabuga

Dear,

Thank you for the suggestion.

We repeated the test using the official Geant4 11.4.2 chem6 example with IRT-syn and the reaction:

e_aq + H → H2 + OHm

We then reversed only the stored reactant order:

H + e_aq → H2 + OHm

while keeping all other settings identical.

We first performed a pilot test and then a reproducibility study with 20 independent matched seed pairs. Within each pair, A and B used exactly the same random seeds.

For all 20 matched pairs:

  • Species.txt was identical.
  • Retained scorer-event counts were identical.
  • Target-reaction counts were identical.
  • Total reaction counts were identical.
  • All reported G-values were identical.
  • ROOT ntuple payloads were identical.
  • The only ROOT file differences were two metadata bytes associated with timestamps.

Therefore, under this official chem6 + IRT-syn configuration, reversing the reactant order produced no detectable physical or scoring difference.

This suggests that the order-dependent effects we previously observed in our minimal custom test are likely related to some other aspect of that test configuration rather than the official chem6 IRT-syn reaction itself.

Would you recommend any additional official IRT-syn test, or a specific code path we should inspect next to understand why our custom minimal test showed ordering-dependent behaviour?

Thank you again for your guidance.

Best regards,
Mehmet Karabuga

Thanks for your test! The chemical reactions should be added in the reaction table : G4DNAMolecularReactionTable

Please check if your reaction list is fully added in the G4DNAMolecularReactionTable ?

Best regards,

Dear,

Thank you. I checked G4DNAMolecularReactionTable explicitly in a clean Geant4 11.4.2 build.

For this minimal reproducer, the complete reaction list intentionally consists of a single synthetic channel:

e_aq + H3O+ -> H

The table is reset and this channel is added through G4DNAMolecularReactionTable. I then queried the table at runtime in both reactant orders.

GetReactionData(A,B) and GetReactionData(B,A) both resolve to the same G4DNAMolecularReactionData object.

I also repeated the test as a 2×2 factorial check:

  • reaction registration: A+B or B+A

  • reactant input: A+B or B+A

Five independent seeds were tested, giving 20 runs in total.

In all 20 runs, the A+B/B+A reaction-table lookup was symmetric. For each fixed seed, all four registration/input-order combinations also produced the same H product, the same final chemical outcome, and the same product position.

Therefore, in this clean minimal reproducer, the intended reaction is present in G4DNAMolecularReactionTable, and I am currently unable to reproduce the ordering-dependent behaviour that I observed in the earlier custom diagnostic.

I also identified a provenance inconsistency in my earlier diagnostic package. Therefore, I do not want to attribute that earlier observation to Geant4 until its origin is understood.

I have preserved the clean reproducer, the 20-run results, build information, and SHA-256 checksums and can upload the reproducibility package if it would be useful.

Would you recommend checking another part of the custom chemistry setup next, or should I now compare this reproducer directly against the reaction-table construction used by the official chem6 IRT-syn configuration?

Thank you again for your guidance.

Best regards,
Mehmet Karabuga

Dear,

Thank you. I checked G4DNAMolecularReactionTableexplicitly in a clean Geant4 11.4.2 build.

For this minimal reproducer, the complete reaction list intentionally consists of a single synthetic channel:

e_aq + H3O+ -> H

The table is reset and this channel is added through G4DNAMolecularReactionTable. I then queried the table at runtime in both reactant orders.

GetReactionData(A,B) and GetReactionData(B,A)both resolve to the same G4DNAMolecularReactionDataobject.

I also repeated the test as a 2×2 factorial check:

  • reaction registration: A+B or B+A

  • reactant input: A+B or B+A

Five independent seeds were tested, giving 20 runs in total.

In all 20 runs, the A+B/B+A reaction-table lookup was symmetric. For each fixed seed, all four registration/input-order combinations also produced the same H product, the same final chemical outcome, and the same product position.

Therefore, in this clean minimal reproducer, the intended reaction is present in G4DNAMolecularReactionTable, and I am currently unable to reproduce the ordering-dependent behaviour that I observed in the earlier custom diagnostic.

I also identified a provenance inconsistency in my earlier diagnostic package. Therefore, I do not want to attribute that earlier observation to Geant4 until its origin is understood.

I have preserved the clean reproducer, the 20-run results, build information, and SHA-256 checksums and can upload the reproducibility package if it would be useful.

Would you recommend checking another part of the custom chemistry setup next, or should I now compare this reproducer directly against the reaction-table construction used by the official chem6 IRT-syn configuration?

Thank you again for your guidance.

Best regards,
Mehmet Karabuga

Dear,

Just a brief follow-up regarding my previous post.

I would be grateful for any guidance on the next diagnostic step, particularly whether you recommend comparing the reaction-table construction of our minimal reproducer with the official chem6 IRT-syn configuration, or inspecting another part of the IRT-syn chemistry path.

Thank you again for your time and help.

Best regards,
Mehmet Karabuga