We are getting break when using the LBE physics list within Geant4 VMC application. I have tested this physics list within Geant4 novice N04 example (by just changing QGSP with LBE in exampleN04.cc) and could reproduce the crash, see the gdb backtrace below. Thank you, Ivana Hrivnacova ---- Registering model factories... You have successfully registered the following model factories. Registered model factories: generic drawByCharge drawByParticleID drawByOriginVolume Registered models: None Registered filter factories: chargeFilter particleFilter originVolumeFilter Registered filters: None Detaching after fork from child process 10267. /work/projects/vmc/dev/geant4/data/G4NDL0.2 Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208751904 (LWP 10264)] 0x02d4437f in G4ProcessManager::AddProcess () from /work/projects/vmc/dev/geant4/lib/Linux-g++/libG4procman.so (gdb) bt #0 0x02d4437f in G4ProcessManager::AddProcess () from /work/projects/vmc/dev/geant4/lib/Linux-g++/libG4procman.so #1 0x0806010a in TLBE<G4VModularPhysicsList>::ConstructGeneral ( this=0x8d36f28) at /work/projects/vmc/dev/geant4/physics_lists/hadronic/LBE/include/LBE.icc:764 #2 0x08056ad8 in TLBE<G4VModularPhysicsList>::ConstructProcess ( this=0x8d36f28) at /work/projects/vmc/dev/geant4/physics_lists/hadronic/LBE/include/LBE.icc:205 #3 0x0089663c in G4RunManagerKernel::InitializePhysics () from /work/projects/vmc/dev/geant4/lib/Linux-g++/libG4run.so #4 0x00899432 in G4RunManager::InitializePhysics () from /work/projects/vmc/dev/geant4/lib/Linux-g++/libG4run.so
Fixed by Alex Howard. The fix will be included in the next patch or release. Until then, you can fix the code yourself by modifying geant4/source/physics_lists/lists/include/LBE.icc as follows: add these three lines: #include "G4MesonConstructor.hh" #include "G4BaryonConstructor.hh" #include "G4IonConstructor.hh" then change the following three methods to look like: template<class T> void TLBE<T>::ConstructMyMesons() { // mesons G4MesonConstructor mConstructor; mConstructor.ConstructParticle(); } template<class T> void TLBE<T>::ConstructMyBaryons() { // baryons G4BaryonConstructor bConstructor; bConstructor.ConstructParticle(); } template<class T> void TLBE<T>::ConstructMyIons() { // ions G4IonConstructor iConstructor; iConstructor.ConstructParticle(); } finally, in method template<class T> void TLBE<T>::ConstructGeneral() replace if (theDecayProcess->IsApplicable(*particle)) with if (theDecayProcess->IsApplicable(*particle) && !particle->IsShortLived())