Geant4 Version: 11.3.2
Operating System: Ubuntu 24
Compiler/Version: GCC 13.3.0
CMake Version:
TL;DR: Should G4IonConstructor also create the daughters and granddaughters of hypernuclei?
When building an executable with just the G4CMPPhysicsList (for example, to model just phonons and charge carriers), G4GenericIon is also created (it’s used by some of the G4CMP processes).
In G4 v11, that triggers G4IonConstructor to also create all of the light hypernuclei. Then, when SetUpDecayChannels() is called, all of those hypernuclei generate complaints that their daughters don’t exist:
G4VDecayChannel::FillDaughters() - [ anti_doublehyperH4 ]1:anti_proton is not defined !!
The BR of this decay mode is set to zero.
G4VDecayChannel::FillDaughters() - [ anti_doublehyperH4 ]1:pi+ is not defined !!
The BR of this decay mode is set to zero.
To silence these warnings, the daughters (and granddaughters) also need to be defined: neutron, proton and their anti’s, pions, e+/-, mu+/-, and gamma. Should these be instantiated by G4IonConstructor itself, to ensure completeness? Or should we do that in G4CMPPhysics::ConstructParticle(), where we create G4GenericIon?