GSI Forum - RDF feed
type: channel
description: GSI Helmholtzzentrum für Schwerionenforschung
items: Crash in genfit/geane
items: Re: Crash in genfit/geane
items: IFIELD setting.

Crash in genfit/geane
type: item
description: Hello, I wanted to reconstruct some tracks using lhetrack+genfit, using TPC+MVD. I have run the macros in macro/pid, exactly: root run_sim_tpccombi_pgun.C"(500,13,1)" root run_digi_tpccombi.C root run_reco_tpccombi.C and after a while I get a crash coming from the kalman. I have modified a bit the class PndLheKalmanTask.cxx in order to have some cout, and this is the error output: Toggle Spoiler *** Event # 307 ===== PndLheHitsMaker ===== Total number of hits for tracking: 6 Total number of tracks in TPC: 1 Good tracks in TPC: 1 Working with 6 hits found 1 tracks finder : Real Time = 32.80 seconds Cpu Time = 21.66 seconds ===== PndLheTrackFitter ===== Number of tracks for fitting 1 PndLheKalmanTask::Exec -I- PndLheKalmanTask: contains 1 Tracks. starting track0 TVector3 A 3D physics vector (x,y,z)=(0.267173,1.618713,2.636418) (rho,theta,phi)=(3.105207,31.893551,80.627678) TVector3 A 3D physics vector (x,y,z)=(0.093364,0.606249,0.979436) (rho,theta,phi)=(1.155660,32.057903,81.245092) TVector3 A 3D physics vector (x,y,z)=(0.500000,0.500000,0.500000) (rho,theta,phi)=(0.866025,54.735610,45.000000) TVector3 A 3D physics vector (x,y,z)=(0.009336,0.060625,0.097944) (rho,theta,phi)=(0.115566,32.057903,81.245092) charge: -1.000 -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdHit*) called. PndMvdHit in 1_1/27_0/108_1/107_2/106_1/89_5/86_1/85_1/ at (0.2615, 1.620, 2.630) cm with 2.238e+04 e, Cluster No. 0, mc point id = 0 hit.GetClusterIndex() 0 hit.GetBotIndex() -1 hit.GetRefIndex() 0 Detector path: /cave_1/MVD-1.0oPv-1.0oSv-1.0_0/Pv-1_1/PixeloHshellov2_2/PixeloSdk-v2-NE W_1/PixeloModo4x2_5/PixelActiveo4x2oPartAss_1/PixelActiveo4x2_1 -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with (x,y) = (-0.9550,0.8103). (dx,dy) = (0.002887,0.002887). not used: dz=0.005774 -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdHit*) called. PndMvdHit in 1_1/27_0/108_1/107_2/106_2/89_5/86_1/85_1/ at (0.3952, 2.548, 4.130) cm with 1.660e+04 e, Cluster No. 1, mc point id = 1 hit.GetClusterIndex() 1 hit.GetBotIndex()…
creator: StefanoSpataro
date: 2009-08-27T12:21:00-00:00

Re: Crash in genfit/geane
type: item
description: Hi, could you please run this in gdb? gdb root.exe run youscript.C where fr X where the frame X is the one where the crash happens (xm55). Thanks, Christian
date: 2009-08-28T15:32:50-00:00

Re: Crash in genfit/geane
type: item
description: This is the output: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread -1208949056 (LWP 25287)] 0xb513165b in xmm55_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so (gdb) where #0 0xb513165b in xmm55_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #1 0xb51a8286 in trprfn_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #2 0xb51a34b5 in erprop_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #3 0xb51a5026 in ertrch_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #4 0xb51a5b81 in ertrgo_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #5 0xb51a4137 in ertrak_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #6 0xb52340c3 in TGeant3::Ertrak () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #7 0x028615c2 in FairGeanePro::Propagate (this=0xcb1d860, PDG=13) at /home/stefano/july09/pandaroot/geane/FairGeanePro.cxx:276 #8 0x02860e47 in FairGeanePro::Propagate (this=0xcb1d860, TStart=0xbfeb4d30, TEnd=0xbfeb53e0, PDG=13) at /home/stefano/july09/pandaroot/geane/FairGeanePro.cxx:227 #9 0x062b5d87 in GeaneTrackRep::extrapolate (this=0xf6c1670, pl=@0xbfeb62a0, statePred=@0xbfeb6420, covPred=@0xbfeb6320) at /home/stefano/july09/pandaroot/trackrep/GeaneTrackRep.cxx:167 #10 0x0245953e in Kalman::processHit (this=0xbfeb78b0, tr=0xf7071a0, ihit=0, irep=0, rejectOutlier=false) at /home/stefano/july09/pandaroot/genfit/Kalman.cxx:248 #11 0x024586b4 in Kalman::fittingPass (this=0xbfeb78b0, trk=0xf7071a0, direction=1) at /home/stefano/july09/pandaroot/genfit/Kalman.cxx:140 #12 0x02457e57 in Kalman::processTrack (this=0xbfeb78b0, trk=0xf7071a0) at /home/stefano/july09/pandaroot/genfit/Kalman.cxx:38 #13 0x037ee792 in PndLheKalmanTask::Exec (this=0xc15a8c8, opt=0x20f80a8 "") at /home/stefano/july09/pandaroot/lhetrack/PndLheKalmanTask.cxx:245 #14 0x008f8b25 i…
creator: StefanoSpataro
date: 2009-08-28T17:25:57-00:00

Re: Crash in genfit/geane
type: item
description: Under suggestion of Lia, I have modified the geane parameters for the material "air", adding the following lines in gconfig/Geane.C: TGeoMedium *o=gGeoManager->GetMedium("air"); o->SetParam(3, .4); to change the maximum angle of deflection inside the magnetic field. In this case the analysis proceeds without errors. If I use larger values, such as 0.5 or greater, then I have the crash exactly at the same pointx. I don't know if maybe it could be good to change this option for the common geane parameters, or if this is just a hard fix... ADDED 29/08/09 I have tried with a different data set and I have followed in the same problem,. This time I had to go to 0.05 in orer to get rid of that crash. And, once I am applying such lower cuts, I have seen that there are more warnings such as: FitterException thrown with excString: cov_is_zero in line: 257 in file: /home/stefano/july09/pandaroot/genfit/Kalman.cxx with fatal flag 0 FitterException Info Output =========================== =========================== FitterException thrown with excString: GEANE propagation failed in line: 272 in file: /home/stefano/july09/pandaroot/trackrep/GeaneTrackRep.cxx with fatal flag 1 FitterException Info Output =========================== =========================== Then maybe gendoit is skipping those tracks/reco hits.
creator: StefanoSpataro
date: 2009-08-28T18:02:56-00:00

Re: Crash in genfit/geane
type: item
description: Quote: ADDED 29/08/09 I have tried with a different data set and I have followed in the same problem,. This time I had to go to 0.05 in orer to get rid of that crash. Is there a work around for this problem? I have this every time, when running root run_sim_tpccombi_pgun.C"(1000,13,2,-1)" root run_digi_tpccombi.C root run_reco_tpccombi.C root run_kalman_tpc.C The actual floating point exception error occurs in #15 0xae69c5c5 in TGeant3::Ertrak (this=0xa120780, x1=0xd502208, p1=0xd502214, x2=0xd50217c, p2=0xd502188, ipa=6, chopt=0xa14a7e8 "LE") at TGeant3/TGeant3.cxx:5402 when it is called by FairGeanePro (the exact place differs). Gosia Sudol on her 64 bit computer doesn't it have it at all.
creator: Ronald Kunne
date: 2009-10-16T12:58:43-00:00

Re: Crash in genfit/geane
type: item
description: You have to copy the file macro/pid/Geane.C into gconfig folder. If you have again the crash, try to decrease a bit the param for air (do not touch PWO). This is just a trick, waiting for the final fix of the original fortran code (there is somebody working on it). Once the fix will be released, you will have to use the "official" Geane.C, but for the moment try with this fix.
creator: StefanoSpataro
date: 2009-10-16T13:17:07-00:00

Re: Crash in genfit/geane
type: item
description: Hi, I am trying to keep track of all FPE pitfalls. Can you please give me more exact information on the crash, i.e. the complete stack trace and also frame info of the steps in the stack trace that are inside the fortran code. You can get this if you compiled the external packages with debugging symbols (which it looks like you did) and then start the crashing macro like gdb root.exe run mymacro.C [after the crash] where fr N fr M where N and M and ... are the frames inside fortran. In case you knew all this, I want to apologize for telling you again Cheers, Christian
date: 2009-10-17T10:45:52-00:00

IFIELD setting.
type: item
description: Hi, while looking at the crash problem I was printing the magnetic field values read by geane (Hx, Hy, Hz) and I saw sometimes it sees 0, 0, 0 instead of the correct value (compared to the map values)... This is due to the fact that in some materials in the media_pnd.geo file the IFIELD parameter is set to 0 (for example for copper and mylar, two stt media): the STT is inside the magnetic field but geane does not see it in these cases. Is there any reason why IFIELD must be set to 0 on some materials I didn' t think about? I think that all the materials which are inside the magnetic field should switch this parameter on (i.e. set IFIELD to 1 and not to 0), otherwise during the geane tracking it will be assumed that here there is no field and the track will not bend inside these materials. I would change at least copper and mylar (since I saw the problem there), is there any objection? I ask, since not only stt uses these materials. Best regards, Lia. P.S.: Unfortunately this is not the source of the crash, so I keep investigating... please be patient!
creator: Lia Lavezzi
date: 2009-10-19T08:56:09-00:00

Re: Crash in genfit/geane
type: item
description: Stefano Spataro wrote on Fri, 16 October 2009 15:17 You have to copy the file macro/pid/Geane.C into gconfig folder. Yes, thanks very much. This cures it!
creator: Ronald Kunne
date: 2009-10-23T13:40:04-00:00

Re: Crash in genfit/geane
type: item
description: Christian Hoeppner wrote on Sat, 17 October 2009 12:45 Can you please give me more exact information on the crash, i.e. the complete stack trace and also frame info of the steps in the stack trace that are inside the fortran code. I didn't get your method to work, but here is all the info I do get. I hope this is enough to work with. Macro with the crash: run_kalman_tpc.C Simulated events: root run_sim_tpccombi_pgun.C"(1000,11,2,-1)" Error output: *** Break *** floating point exception Attaching to program: /proc/9990/exe, process 9990 [Thread debugging using libthread_db enabled] [New Thread 0xb6a6a6c0 (LWP 9990)] 0xb7f1c410 in __kernel_vsyscall () #1 0xb6b334d3 in waitpid () from /lib/tls/i686/cmov/libc.so.6 #2 0xb6ad6643 in ?? () from /lib/tls/i686/cmov/libc.so.6 #3 0xb6bfad7d in system () from /lib/tls/i686/cmov/libpthread.so.0 #4 0xb798cd99 in TUnixSystem::Exec (this=0x80ea6f8, #5 0xb798c04e in TUnixSystem::StackTrace (this=0x80ea6f8) at core/unix/src/TUnixSystem.cxx:2133 #6 0xb798f1dc in TUnixSystem::DispatchSignals (this=0x80ea6f8, sig=kSigFloatingException) at core/unix/src/TUnixSystem.cxx:1100 #7 0xb798f309 in SigHandler (sig=kSigFloatingException) at core/unix/src/TUnixSystem.cxx:350 #8 0xb7985481 in sighandler (sig=8) at core/unix/src/TUnixSystem.cxx:3369 #9 <signal handler called> #10 0xb6c21442 in powf () from /lib/tls/i686/cmov/libm.so.6 #11 0xae23383a in erland_ (step=@0xae44e8ac, zmat=@0xae45a9fc, amat=@0xae45a9f8, rho=@0xae45aa00, p=@0xae44e778, e=@0xae44e77c, xmass=@0xae44f7b4, dedx=@0xae44e89c, dedx2=@0xae5d00d4) at erdecks/erland.F:178 #12 0xae23709e in ertrch_ () at erdecks/ertrch.F:421 #13 0xae23816c in ertrgo_ () at erdecks/ertrgo.F:249 #14 0xae2355b9 in ertrak_ (x1=0xc8a5310, p1=0xc8a531c, x2=0xc8a5284, p2=0xc8a5290, ipa=@0xbf8e42d4, chopt=@0xc86f178, _chopt=2) at erdecks/ertrak.F:242 #15 0xae3225c5 in TGeant3::Ertrak (this=0x959f850, x1=0xc8a5310, p1=0xc8a531c, x2=0xc8a5284, p2=0xc8a5290, ipa=3, chopt=0xc86f178 "PE") at TGeant3/TGeant3.cxx:5…
creator: Ronald Kunne
date: 2009-10-23T13:47:22-00:00

Re: Crash in genfit/geane
type: item
description: Hi, it could be that parameters in macros influence the crashing of GEANE. But still these problems should be fixed inside of GEANE. Although GEANE was widely used in the old days without any problems, it could just be that the compilers changed since then. All problems we have in this direction come (as far as anything I saw) are due to overflows in single precisions floats when you assign a double precision value to it (with an exponent >~ 30 or so). We will continue to have these problems unless we do something drastic, e.g. change GEANE to double precision all over. What do the GEANE experts think about this? Cheers, Christian
date: 2009-10-23T13:55:08-00:00

Re: Crash in genfit/geane
type: item
description: Hi, I'm arriving more or less to the same conclusions, because the behaviour of the crashes is typical of a bad compilation. To put GEANE in double precision requires to put the fortran statement IMPLICT DOUBLE PRECISON (A-H,O-Z) in all the routines (Variables beginning with I,J,L,K,M,N are integers in FORTRAN). This could be done in a test version and after implemented in the CERNLIB. We will try to do this Alberto
creator: Alberto Rotondi
date: 2009-10-23T16:48:52-00:00