Problem 894 - Decay of k2 meson causes infinite loop
Summary: Decay of k2 meson causes infinite loop
Status: CLOSED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: particles (show other problems)
Version: 8.1
Hardware: All All
: P1 critical
Assignee: kurasige
URL:
Depends on:
Blocks:
 
Reported: 2006-09-26 12:23 CEST by kurasige
Modified: 2012-02-15 09:03 CET (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description kurasige 2006-09-26 12:23:40 CEST
I was trying to run the Atlas detector simulation from 11.0.41 on a file
produced with mcatnlo/herwig (let me know and i'll send the input file). I'm
using G4Atlas_Sim.py.
This uses geant4.7.1.p01.clhep1.9.2.1.
Processing the first event, the program ran for a while, then suddenly
started growing in memory size, until it filled up the entire address
space and crashed.

It looks like the problem is with the geant4 decay tables.
G4ExcitedMesonConstructor.cc sets up the following decays
for k2(1770) (and no others):

k2(1770)+ -> k2(1770)0 + pi+
-> k2(1770)+ + pi0
k2(1770)0 -> k2(1770)+ + pi-
-> k2(1770)0 + pi0

This is a cyclic set of decays. If i look with the debugger while
the memory is rapidly growing, it is these decays that are being
processed. Each time through, the track stack grows by one entry.
If i look in the input file, i see that it does contain instances
of these k2(1770) particles (PDGIDs +-10315 and +-10325).

From the PDG tables, k2(1770) decays dominantly to k2*(1430)+pi.
So i tried the appended patch, which seems to fix the memory exposion,
at least. What i do not understand at this point is why i didn't
see the same problem in the 10.0 simulation. The decay tables
are set up the same way, and i checked the input files i was using,
and they also contained k2(1770) particles.

Other notes:

- G4PhaseSpaceDecayChannel::TwoBodyDecayIt() will happily do a decay,
even if it violates energy conservation. If the total rest mass of the
daughters is greater than that of the parent, Pmx, which is supposed
to return the daughters' momena (in the parent's rest frame), returns -1.
TwoBodyDecayIt does not, however, test for this case, and treats
this as a physical momemtum.

- I occasionally see messages about a missing decay table
for D mesons:

G4Decay::DoIt : decay table not defined for D0
G4Decay::DoIt : decay table not defined for D-
Comment 1 kurasige 2006-09-26 15:25:59 CEST
The decay mode for k2(1770) set in G4ExcitedMesonConstructor was wrong.
(k2(1770) decays into k2(1770) + pi). The bug will be fixed in the next release
(The fixed tag is particles-V08-01-02)
As for D mesons, geant4 has no decay table in default. User needs to set the
decaytable and decay channels for them or defines decay products in the primary
event (i.e. using pre-assigned decay channels)
The problems rconcerning G4PhaseSpaceDecayChannel::TwoBodyDecayIt will be fixed
later.