Home » PANDA » PandaRoot » Bugs, Fixes, Releases » Geane crashes in PndPidCorrelator
Geane crashes in PndPidCorrelator [message #10331] |
Thu, 04 March 2010 12:18 |
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 |
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 #10360 is a reply to message #10357] |
Sun, 07 March 2010 19:31 |
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
|
|
|
Goto Forum:
Current Time: Wed Nov 13 17:08:21 CET 2024
Total time taken to generate the page: 0.00683 seconds
|