| Summary: | Segfaults and Exceptions in G4PAIonisation | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | totallyfake1 |
| Component: | processes/electromagnetic | Assignee: | Vladimir.Grichine |
| Status: | RESOLVED FIXED | ||
| Severity: | major | ||
| Priority: | P2 | ||
| Version: | 4.0 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Starting G4 version 7.0 users are invited to use G4PAIModel model for desctibing of inonisation with fine details. G4PAIonisation is not supported. |
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