What is simulated by the FritiofCaptureAtRest for antiprotons?

Geant4 Version: 11.2
Operating System: WSL Ubuntu 22.04.5 LTS
Compiler/Version:
CMake Version:


Dear Geant4 Community,

I have a simulation where I shoot slow (1.005 keV) antiprotons into different materials, and then I look for the “CaptureAtRest” process from which I store information about the secondaries produced. I compared different physics lists (FTFP_BERT_HP, QGSP_BIC_HP, QGSP_BERT_HP, FTFP_INCLXX_HP, QGSP_INCLXX_HP) to see the difference between implemented models. To my knowledge, the antiproton stopping was handled solely by hFritiofCaptureAtRest in Geant4 v.10.0-v11.1. In Geant4 v11.2, the INCL++ model was also updated to include hINCLXXCaptureAtRest for antiprotons. When I check the “CaptureAtRest” process name, I indeed see only two: hFritiofCaptureAtRest and hINCLXXCaptureAtRest.

According to the “processes//hadronic/stopping/src/G4HadronicAbsorptionFritiof.cc”, the hFritiofCaptureAtRest doesn’t include any intranuclear cascade, and it goes directly to Preco.

G4HadronicAbsorptionFritiof::
G4HadronicAbsorptionFritiof( G4ParticleDefinition* pdef )
  : G4HadronStoppingProcess( "hFritiofCaptureAtRest" ), 
    pdefApplicable( pdef ) {
  
  G4TheoFSGenerator * theModel = new G4TheoFSGenerator( "FTFP" );
  G4FTFModel * theStringModel = new G4FTFModel;
  theStringModel->SetFragmentationModel(new G4ExcitedStringDecay());

  // Not a cascade - goes straight to Preco
  G4HadronicInteraction* p =
    G4HadronicInteractionRegistry::Instance()->FindModel("PRECO");

Therefore, I would expect the distributions to be identical across all physics lists in versions before v11.2, and to be split into two types (one for FTFP and one for INCLXX-based physics lists) in v11.2. Below are the distributions of atomic mass numbers of nuclei produced in the “CaptureAtRest” process for different physics lists in Geant4 versions v11.1 and v11.2:


I ran the simulation for each physics list and Geant4 version with the same initial random number seed. From the distributions I showed, I would conclude that the cascade model has some effect on the hFritiofCaptureAtRest process, even if it isn’t explicitly called.

I would like to understand how the nucleus is modelled in the hFritiofCaptureAtRest process. Is the model based on the included INUCL model? In the documentation for The Geant4 Bertini Intranuclear Cascade Model there is:

The target nucleus is modelled by up to six concentric shells of constant density as an approximation to the continuously changing density distribution of nuclear matter within nuclei.

Is the same approach applied in the hFritiofCaptureAtRest process?