Problem 403

Summary: Segfaults and Exceptions in G4PAIonisation
Product: Geant4 Reporter: totallyfake1
Component: processes/electromagneticAssignee: Vladimir.Grichine
Status: RESOLVED FIXED    
Severity: major    
Priority: P2    
Version: 4.0   
Hardware: PC   
OS: Linux   

Description totallyfake1 2002-08-26 23:17:10 CEST
Two problems, possibly related:

Something in G4PAIonisation seems to have changed dramatically since 4.3.2. I
have some very simple code which passes protons through a volume of Xenon. It
works fine in 4.3.2, 4.3.1, and 4.3.0, but crashes with a seg fault in 4.4.0p2,
and 4.4.1p1.

The physicslist setup is very simple:
} else if (particleName == "proton") {
   pmanager->AddProcess(new G4MultipleScattering(),-1,1,1);
   pmanager->AddProcess(new G4PAIonisation("Xenon"),-1,2,-1);

the seg fault is occurring in: G4PAIonisation::BuildPAIonisationTable
(this=0x8aaf5a8) at /usr/include/g++-2/stl_vector.h:142

I can make this seg fault go away if I add the following line to
source/processes/electromagnetic/standard/src/G4PAIonisation.cc:
fPAItransferBank = NULL; at line 235
---
Now, possibly related is an issue in TestEm8, which I compile with no
modifications.  Running with the input file run11.mac works perfectly.
However, if I change the particle type in run11.mac (line 39) to be a proton, I
get an exception:
G4EnergyLossTables::GetTables: table not found!
*** G4Exception: Aborting execution ***

This does NOT happen with the TestEm8 of Geant 4.3.2

Thanks much,
SPW
Comment 1 Vladimir.Grichine 2005-02-07 06:51:59 CET
Starting G4 version 7.0 users are invited to use G4PAIModel model for
desctibing of inonisation with fine details. G4PAIonisation is
not supported.