Problem 898

Summary: problem with the LBE physics list
Product: Geant4 Reporter: Ivana.Hrivnacova
Component: processes/hadronicAssignee: dennis.herbert.wright
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 8.1   
Hardware: PC   
OS: Linux   

Description Ivana.Hrivnacova 2006-10-06 06:22:52 CEST
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
Comment 1 dennis.herbert.wright 2006-12-30 13:35:59 CET
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())