Problem 2516 - Bug in G4TwoBodyAngularDist.cc: wrong final state for pi+ n charge exchange - should be pi0 p but is pi0 pi+ instead
Summary: Bug in G4TwoBodyAngularDist.cc: wrong final state for pi+ n charge exchange -...
Status: RESOLVED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: processes/hadronic/models/cascade (show other problems)
Version: 11.0
Hardware: All All
: P4 major
Assignee: Alberto.Ribon
URL:
Depends on:
Blocks:
 
Reported: 2022-11-10 16:56 CET by Sven Menke
Modified: 2022-11-14 11:33 CET (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description Sven Menke 2022-11-10 16:56:09 CET
Dear Dennis, all,

there is a pretty severe bug in https://geant4.kek.jp/lxr/source/processes/hadronic/models/cascade/cascade/src/G4TwoBodyAngularDist.cc#L166
where for the charge exchange reaction of pi+ neutron to pi0 proton the final state is wrongly checked to be pi0 pi+. 

The L166 in G4TwoBodyAngularDist.cc currently reads:

if ((is == pim*pro && fs == pi0*neu) || (is == pip*neu && fs == pi0*pip) ||

but should instead read:

if ((is == pim*pro && fs == pi0*neu) || (is == pip*neu && fs == pi0*pro) ||

note the last 2 characters before the final closing bracket.
I don't know how severe this actually is - but most likely all pi+ neutron charge exchange reactions are simply ignored currently ...

Cheers,
--Sven
Comment 1 Alberto.Ribon 2022-11-14 11:33:34 CET
Dear Sven,

thank you very much also for this: it has been already integrated in the Geant4 repository!

Cheers,
Alberto