GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Bugs, Fixes, Releases » Geane crashes in PndPidCorrelator
icon5.gif  Geane crashes in PndPidCorrelator [message #10331] Thu, 04 March 2010 12:18 Go to next message
Jens Sören Lange is currently offline  Jens Sören Lange
Messages: 193
Registered: June 2005
first-grade participant
From: *wlan.uni-giessen.de
Hi all,

even after Stefano's and Dima's fixes there are still Geane crashes in the PndPidCorrelator (which we need for the MicroCandidates and the kfitter). This happens in particular for electrons, and in particular when PHOTOS in switched on (!) in EvtGen (but unclear yet, why this has any impact on Geane). On the other hand, for muons it seems not to occur.

Anyway: we need to find a pragmatic solution.

Therefore an idea: does anyone maybe knnow, if there is a trick how we can catch the SIGSEGV (for example in tutorials/charmonium/run_pid_tpccombi.C) and jump to the next event instead of crashing completely?

Soeren & Martin


===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0 0x000000347c099c85 in waitpid () from /lib64/libc.so.6
#1 0x000000347c03c331 in do_system () from /lib64/libc.so.6
#2 0x00002acc0ada4da9 in TUnixSystem::StackTrace ()
from /home/emjayg/fairsoft/tools/root/lib/libCore.so.5.26
#3 0x00002acc0ada29c3 in TUnixSystem::DispatchSignals ()
from /home/emjayg/fairsoft/tools/root/lib/libCore.so.5.26
#4 <signal handler called>
#5 0x00002acc1c805cc3 in g3ekbin_ ()
from /home/emjayg/fairsoft/transport/geant3/lib/tgt_linuxx8664gcc/libgeant321 .so
#6 0x00002acc1c902465 in ertrak_ ()
from /home/emjayg/fairsoft/transport/geant3/lib/tgt_linuxx8664gcc/libgeant321 .so
#7 0x00002acc1c99ad57 in TGeant3::Ertrak ()
from /home/emjayg/fairsoft/transport/geant3/lib/tgt_linuxx8664gcc/libgeant321 .so
#8 0x00002acc178e031a in FairGeanePro::FindPCA (this=0x4a3d0220, pca=1,
PDGCode=-13, point=<incomplete type>, wire1=<incomplete type>,
wire2=<incomplete type>, maxdistance=18.954264406277513, Rad=
0x4a3d0478,
vpf=
0x4a3d0488, vwi=
0x4a3d04b0, Di=
0x4a3d0480, trklength=
0x4a3d04d8)
at /home/emjayg/pandaroot/trunk/geane/FairGeanePro.cxx:556
#9 0x00002acc178e4cb7 in FairGeanePro::Propagate (this=0x4a3d0220,
TParam=0x4a3d00a0, TEnd=0x4a3d0760, PDG=-13)
at /home/emjayg/pandaroot/trunk/geane/FairGeanePro.cxx:104
#10 0x00002acc1953fdb4 in PndPidCorrelator::GetTrackInfo (this=0x1fe98390,
track=0x2720da70, pidCand=0x4a3cfed0)
at /home/emjayg/pandaroot/trunk/pid/PidCorr/PndPidTrackInfo.cxx:47
#11 0x00002acc195392cf in PndPidCorrelator::ConstructChargedCandidate (
this=0x1fe98390)
at /home/emjayg/pandaroot/trunk/pid/PidCorr/PndPidCorrelator.cxx:348
#12 0x00002acc195395c2 in PndPidCorrelator::Exec (this=0x1fe98390,
option=0x2acc12201e88 "")
at /home/emjayg/pandaroot/trunk/pid/PidCorr/PndPidCorrelator.cxx:320
#13 0x00002acc0ad2fdf9 in TTask::ExecuteTasks ()
from /home/emjayg/fairsoft/tools/root/lib/libCore.so.5.26
#14 0x00002acc0ad2f86b in TTask::ExecuteTask ()
from /home/emjayg/fairsoft/tools/root/lib/libCore.so.5.26
#15 0x00002acc12187923 in FairRunAna::Run (this=0x1ee5f080, Ev_start=0,
Ev_end=5000) at /home/emjayg/pandaroot/trunk/base/FairRunAna.cxx:271
#16 0x00002acc121c2ee4 in G__FairDict_669_0_5 (result7=0x7fff61da0880,
funcname=0x1ee5b9a0 "\001", libp=0x7fff61d95e70, hash=0)
at /home/emjayg/pandaroot/build/base/FairDict.cxx:9099
Re: Geane crashes in PndPidCorrelator [message #10332 is a reply to message #10331] Thu, 04 March 2010 12:27 Go to previous messageGo to next message
Anonymous Poster From: *e18.physik.tu-muenchen.de
Hi Soeren,

I can tell you how to catch a SIGSEGV, but I doubt that your program can still after it, but you can try.... Another problem is that you can write your own interrupt handler for this signal, but the question would be how to get out of this routine and back to the place you want to continue with execution... You can use C labels, but then I think the signal handler and your jump point need to be in the same object file, i.e. the same .cxx file...

Anyways, here is how you could try:

#include <signal.h>

static void SignalHandler(int isig) {
//irq handler, do something: goto?!?
}

//somewhere in you init code, register the irq handler
signal(SIGSEGV, &SignalHandler);

But I doubt it will really help...

Cheers, Christian
Re: Geane crashes in PndPidCorrelator [message #10336 is a reply to message #10332] Thu, 04 March 2010 17:32 Go to previous messageGo to next message
Jens Sören Lange is currently offline  Jens Sören Lange
Messages: 193
Registered: June 2005
first-grade participant
From: *physik.uni-giessen.de
Hi Christian,

yes, yes, we know. We have that as homework in the technical informatics class (printf "Schalke wird Meister" or something by signal catching when typing CTRL-C ...), but: how to do this in a root macro? There is one similar posted question in roottalk, but it seems it was not answered. Also, in the PndPidCorrelator one has no access anymore to an event counter (it is just hidden from the user) so we wouldn't know how to jump to the next event in the signal handler.

Martin is trying right now to find the event for which it crashes. Maybe we can finally see, why (why should a radiated photon crash the Geane for the propagation of the charged track from which it was radiated?)

cheers, Soeren
Re: Geane crashes in PndPidCorrelator [message #10355 is a reply to message #10336] Sun, 07 March 2010 16:31 Go to previous messageGo to next message
Jens Sören Lange is currently offline  Jens Sören Lange
Messages: 193
Registered: June 2005
first-grade participant
From: *web.vodafone.de
Hi all, a short update.

Martin identified the event which crashed Geane.

N Id Ist M1 M2 DF DL px py pz E t
x y z
0 443 2 -1 -1 1 3 0.00000000 -0.00000000 4.06565876
5.11079103 0.00000000 0.00000000 0.00000000 0.00000000
1 -11 1 0 0 -1 -1 -0.87957973 -0.34001792 0.31825857
0.99526954 0.00000000 0.00000000 -0.00000000 0.00000000
2 11 1 0 0 -1 -1 1.11174623 0.42895594 3.66460233
3.85347809 0.00000000 0.00000000 -0.00000000 0.00000000
3 22 1 0 0 -1 -1 -0.23216651 -0.08893803 0.08279787
0.26204340 0.00000000 0.00000000 -0.00000000 0.00000000


There is nothing particular in it.

Even more, if one processes it again (Martin tried 5x),
then suddenly it does not crash Geane anymore.

So, a preliminary conclusion:

1.) Tracks with muons seem _not_ to crash Geane.
2.) Tracks with electrons seem _not_ to crash Geane,
if photos is switched off in EvtGen.
3.) Tracks with electrons seem to crash Geane,
if photos is switched on in EvtGen.
4.) The crashes in Geane seem to have a non-deterministic
component. If the event is re-processed, then the Crash
might not occur again.

(These observations are surprising).

Soeren and Martin

Re: Geane crashes in PndPidCorrelator [message #10357 is a reply to message #10355] Sun, 07 March 2010 16:57 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *56-82-r.retail.telecomitalia.it
In general "Geane crashes" (even if that is not a geane crashes but a crash in FairGeanePro) do not depend on "events" or particle type, but on singularity on some kind of calcuation.

Without using exactly the same random chain is almost impossible to reproduce them. I think it would be better to produce a "reco" file which crashes at the pid stage, and to use it as starting point for the debug.
Re: Geane crashes in PndPidCorrelator [message #10360 is a reply to message #10357] Sun, 07 March 2010 19:31 Go to previous message
Jens Sören Lange is currently offline  Jens Sören Lange
Messages: 193
Registered: June 2005
first-grade participant
From: *web.vodafone.de
Hi Stefano,

yes it is clear that in the code it does not depend explicitely on the particle type. But the results seem to tell us that it depends on the photon which is radiated along the track. Photos calculates the Bremsstrahlung (final state radiation) in the charged quark lines, proportional to 1/mass^4 plus corrections and thus much more probable for electrons instead of muons (thus one might consider it as an inherent particle type dependance).

However, it means (and that is the important point) that Geane has a _random_ component in the algorithm?

cheers, Soeren
Previous Topic: stt does not compile anymore in trunk rev. 8026
Next Topic: Crash in genfit -> KalmanTask 15/3/2010
Goto Forum:
  


Current Time: Sun Dec 08 23:17:12 CET 2024

Total time taken to generate the page: 0.00556 seconds