Unknown Nuclear Reaction "XXXX"

I am attempting to model 40 MeV Deuterons impinging onto Graphite and tracking the secondary neutrons.
I’ve been using examples Hadr01 and Hadr03 as bases to build on.
The issue I have a question about is one nuclear reaction from Hadr03. The reaction is:

deuteron + XXXX → deuteron + : 213231 Q = -40MeV

The processes called are hadElastic, dInelastic and ionloni. ionIoni is from my electromagnetic physics. Also the number of process calls for ionIoni is the same number as the amount of times the above reaction is called.

My question is what is this reaction? Could anyone explain it to me? Also is this normal/expected or are my physics incorrect.

It seems that hadElastic or dInelastic processes are invoked each time the incident deuteron does an ionisation. This is abnormal : there is no nuclear reaction.

What would you recommend I do to fix this abnormality? what would be normal?

Now the reaction has turned into
deuteron + XXXX --> : 234533 Q = -40MeV
I think it causing issues with the overall number of neutrons produced

For further context. On a 1 million deuteron simulation the processes called are:

dInelastic: 4337

ionIoni: 992278

hadElastic: 3385

with the above reaction happening 992278 times

The code to identify a nuclear channel is specific to Hadr03. Here, only hadronic processes are registered; therefore we are sure that the first and unique step of the event is triggered by an hadronic interaction.
This no more true in a general situation. In your StepingAction you must check that the current step was really triggered by a nuclear interaction before to try to identify the corresponding nuclear channel.
Also be care of the computation of Q.
More simply you can just ignore what is printed with XXX : it correspond to nothing.

Thank you for the insight about it being linked with SteppingAction!!
I found where there is a call for G4HadronicProcess for the “initialisation of the nuclear channel identification”
What Process would be better to have here?
Or should I use a new SteppingAction?
Or just a completely different example instead of Hadr03?

Also how does one “check that the current step was really triggered by a nuclear interaction before to try to identify the corresponding nuclear channel.”?
Like how do you check if a step is triggered by a nuclear interaction?

I suggest to keep Hadr03 as it is, but with your own hadronic choices : QMD … etc … , to have an explicit description of the basic nuclear reactions; and to start your real simulation from Hadr06 or Hadr07.