Hi!
There were several posts about wrong cross section in G4ChargeExchange model link1 link2. I did a modification of G4ChargeExchange model and insert a right cross section for a reaction 9Be(p,n)9B like it was done in that following work [*]. That cross section was taken from CS_data. Here you can find source files which can be used in any your geant4 model. You just need to insert that in your corresponding include and src directory and register physics at main.cc file for example:
FTFP_BERT* pl = new FTFP_BERT;
pl->RegisterPhysics(new G4ChargeExchangePhysics());
If you need to investigate other reaction you just need change a cross section dataset in G4BGGNucleonElasticXS_MOD.hh file. And change if statement to other material in G4BGGNucleonElasticXS_MOD.cc file.
If you find any errors please give a feedback here. I hope that will help someone .
G4ChargeExchangePhysics.cc (4.5 KB)
G4BGGNucleonElasticXS_MOD.cc (7.3 KB)
G4ChargeExchangeProcess.cc (7.1 KB)
G4ChargeExchange.cc (10.7 KB)
G4BGGNucleonElasticXS_MOD.hh (34.4 KB)
G4ChargeExchangeProcess.hh (4.0 KB)
G4ChargeExchangePhysics.hh (2.3 KB)
G4ChargeExchange.hh (4.0 KB)
Do not forget to install libInterpolate/Interpolate.hpp.
Geant4 Version: 11.1
Operating System: Debian
_Compiler/Version:_10.2.1
_CMake Version:_3.8.14