Problem 2516

Summary: Bug in G4TwoBodyAngularDist.cc: wrong final state for pi+ n charge exchange - should be pi0 p but is pi0 pi+ instead
Product: Geant4 Reporter: Sven Menke <menke>
Component: processes/hadronic/models/cascadeAssignee: Alberto.Ribon
Status: RESOLVED FIXED    
Severity: major    
Priority: P4    
Version: 11.0   
Hardware: All   
OS: All   

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