GSI Helmholtzzentrum für Schwerionenforschung
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() -1 hit.GetRefIndex() 1 Detector path: /cave_1/MVD-1.0oPv-1.0oSv-1.0_0/Pv-1_1/PixeloHshellov2_2/PixeloSdk-v2-NE W_2/PixeloModo4x2_5/PixelActiveo4x2oPartAss_1/PixelActiveo4x2_1 -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with (x,y) = (-1.089,-0.1176). (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_1/103_1/83_4/80_1/79_1/ at (0.6450, 4.413, 7.140) cm with 2.190e+04 e, Cluster No. 2, mc point id = 2 hit.GetClusterIndex() 2 hit.GetBotIndex() -1 hit.GetRefIndex() 2 Detector path: /cave_1/MVD-1.0oPv-1.0oSv-1.0_0/Pv-1_1/PixeloHshellov2_1/PixeloMdkov1-NE W_1/PixeloModo6x2_4/PixelActiveo6x2oPartAss_1/PixelActiveo6x2_1 -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with (x,y) = (-0.09268,-0.6450). (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_1/103_2/83_4/80_1/79_1/ at (0.8550, 6.184, 9.990) cm with 1.804e+04 e, Cluster No. 3, mc point id = 3 hit.GetClusterIndex() 3 hit.GetBotIndex() -1 hit.GetRefIndex() 3 Detector path: /cave_1/MVD-1.0oPv-1.0oSv-1.0_0/Pv-1_1/PixeloHshellov2_1/PixeloMdkov1-NE W_2/PixeloModo6x2_4/PixelActiveo6x2oPartAss_1/PixelActiveo6x2_1 -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with (x,y) = (-1.864,-0.8550). (dx,dy) = (0.002887,0.002887). not used: dz=0.005774 -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdHit*) called. PndMvdHit in 1_1/27_0/53_1/34_1/33_1/32_6/31_2/30_1/29_1/28_1/ at (1.138, 9.125, 14.72) cm with 3.495e+04 e, Cluster No. 0 and bottom 1, mc point id = 4 hit.GetClusterIndex() 0 hit.GetBotIndex() 1 hit.GetRefIndex() 4 Detector path: /cave_1/MVD-1.0oPv-1.0oSv-1.0_0/Sv-1_1/Fwd_1/StripoLdk_1/StripoSmodoN2oT rapL_6/StripoModo1SensoTrapL_2/StripoSensoTrapL_1/StripActiveoTrapLoPart Ass_1/StripActiveoTrapL_1 -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with (x,y) = (0.06310,-1.516). (dx,dy) = (2.616e-06,1.987e-05). not used: dz=0.004330 -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdHit*) called. PndMvdHit in 1_1/27_0/53_1/34_1/33_2/32_6/31_2/30_1/29_1/28_1/ at (1.320, 12.09, 19.42) cm with 1.592e+04 e, Cluster No. 2 and bottom 3, mc point id = 4 hit.GetClusterIndex() 2 hit.GetBotIndex() 3 hit.GetRefIndex() 4 Detector path: /cave_1/MVD-1.0oPv-1.0oSv-1.0_0/Sv-1_1/Fwd_1/StripoLdk_2/StripoSmodoN2oT rapL_6/StripoModo1SensoTrapL_2/StripoSensoTrapL_1/StripActiveoTrapLoPart Ass_1/StripActiveoTrapL_1 -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with (x,y) = (0.2686,1.443). (dx,dy) = (2.840e-06,2.157e-05). not used: dz=0.004330 6 hits in track 0 *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Error in subr. TRPROP 3 called bysubr. ERPROP *** Break *** floating point exception (no debugging symbols found) Using host libthread_db library "/lib/tls/libthread_db.so.1". Attaching to program: /proc/18745/exe, process 18745 (no debugging symbols found)...done. [Thread debugging using libthread_db enabled] [New Thread -1208957248 (LWP 18745)] (no debugging symbols found)...done. (no debugging symbols found)...done. (no debugging symbols found)...done. (no debugging symbols found)...done. (no debugging symbols found)...done. (no debugging symbols found)...done. (no debugging symbols found)...done. (no debugging symbols found)...done. 0x0075d7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x0044cf13 in __waitpid_nocancel () from /lib/tls/libc.so.6 #2 0x003f67b9 in do_system () from /lib/tls/libc.so.6 #3 0x003bb98d in system () from /lib/tls/libpthread.so.0 #4 0x0096b4b7 in TUnixSystem::Exec () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #5 0x0097114f in TUnixSystem::StackTrace () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #6 0x0096db4a in TUnixSystem::DispatchSignals () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #7 0x0096dbd8 in SigHandler () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #8 0x0096ce55 in sighandler () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #9 <signal handler called> #10 0xb512f65b in xmm55_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #11 0xb51a6286 in trprfn_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #12 0xb51a14b5 in erprop_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #13 0xb51a3026 in ertrch_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #14 0xb51a3b81 in ertrgo_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #15 0xb51a2137 in ertrak_ () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #16 0xb52320c3 in TGeant3::Ertrak () from /home/stefano/july09/transport/geant3/lib/tgt_linux/libgeant321.so #17 0x06eb65c2 in FairGeanePro::Propagate (this=0xcc8c240, PDG=13) at /home/stefano/july09/pandaroot/geane/FairGeanePro.cxx:276 #18 0x06eb5e47 in FairGeanePro::Propagate (this=0xcc8c240, TStart=0xbfe6b6f0, TEnd=0xbfe6bda0, PDG=13) at /home/stefano/july09/pandaroot/geane/FairGeanePro.cxx:227 #19 0x024bbd87 in GeaneTrackRep::extrapolate (this=0xf7afcc8, pl=@0xbfe6cc60, statePred=@0xbfe6cde0, covPred=@0xbfe6cce0) at /home/stefano/july09/pandaroot/trackrep/GeaneTrackRep.cxx:167 #20 0x0243c53e in Kalman::processHit (this=0xbfe6e270, tr=0xf7246e0, ihit=0, irep=0, rejectOutlier=false) at /home/stefano/july09/pandaroot/genfit/Kalman.cxx:248 #21 0x0243b6b4 in Kalman::fittingPass (this=0xbfe6e270, trk=0xf7246e0, direction=1) at /home/stefano/july09/pandaroot/genfit/Kalman.cxx:140 #22 0x0243ae57 in Kalman::processTrack (this=0xbfe6e270, trk=0xf7246e0) at /home/stefano/july09/pandaroot/genfit/Kalman.cxx:38 #23 0x0389066f in PndLheKalmanTask::Exec (this=0xc255ce8, opt=0x4ed20a8 "") at /home/stefano/july09/pandaroot/lhetrack/PndLheKalmanTask.cxx:244 #24 0x008f8b25 in TTask::ExecuteTasks () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #25 0x008f8921 in TTask::ExecuteTask () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #26 0x04e74596 in FairRunAna::Run (this=0x9510688, Ev_start=0, Ev_end=500) at /home/stefano/july09/pandaroot/base/FairRunAna.cxx:248 #27 0x04eabfbc in G__FairDict_592_0_5 (result7=0xbfe7c4c0, funcname=0x950dbd8 "\001", libp=0xbfe70e70, hash=0) at /home/stefano/july09/cbuild/base/FairDict.cxx:9025 #28 0x00e42d4b in Cint::G__ExceptionWrapper () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #29 0x00ed7be4 in G__execute_call () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #30 0x00ed7ef6 in G__call_cppfunc () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #31 0x00eb8bbf in G__interpret_func () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #32 0x00ea74f4 in G__getfunction () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #33 0x00f8b865 in G__getstructmem () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #34 0x00f8335b in G__getvariable () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #35 0x00e8b4e2 in G__getitem () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #36 0x00e8e477 in G__getexpr () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #37 0x00f075dc in G__exec_statement () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #38 0x00e79668 in G__exec_tempfile_core () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #39 0x00e7a99f in G__exec_tempfile () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #40 0x00f188ea in G__process_cmd () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #41 0x009594b3 in TCint::ProcessLine () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #42 0x00959634 in TCint::ProcessLineSynch () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #43 0x0088ecdb in TApplication::ExecuteFile () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #44 0x0088f06b in TApplication::ProcessFile () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #45 0x0088ced3 in TApplication::ProcessLine () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #46 0x00601361 in TRint::Run () from /home/stefano/july09/tools/root/lib/libRint.so.5.24 #47 0x08048d5a in main () The initial parameters are, in red: position, momentum, position error, momentum error -> a not so special track. This track is made of 6 hits, it seems only MVD hits. At the end the error seems in TGeant3::Ertrak () . If somebody could take a look and hopefully fix it... Thanks in advance
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
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 in TTask::ExecuteTasks () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #15 0x008f8921 in TTask::ExecuteTask () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #16 0x0209a596 in FairRunAna::Run (this=0x94143f8, Ev_start=0, Ev_end=400) at /home/stefano/july09/pandaroot/base/FairRunAna.cxx:248 #17 0x020d1fbc in G__FairDict_592_0_5 (result7=0xbfec5b00, funcname=0x9411948 "\001", libp=0xbfeba4b0, hash=0) at /home/stefano/july09/cbuild/base/FairDict.cxx:9025 #18 0x00e42d4b in Cint::G__ExceptionWrapper () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #19 0x00ed7be4 in G__execute_call () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #20 0x00ed7ef6 in G__call_cppfunc () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #21 0x00eb8bbf in G__interpret_func () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #22 0x00ea74f4 in G__getfunction () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #23 0x00f8b865 in G__getstructmem () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #24 0x00f8335b in G__getvariable () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #25 0x00e8b4e2 in G__getitem () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #26 0x00e8e477 in G__getexpr () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #27 0x00f075dc in G__exec_statement () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #28 0x00e79668 in G__exec_tempfile_core () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #29 0x00e7a99f in G__exec_tempfile () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #30 0x00f188ea in G__process_cmd () from /home/stefano/july09/tools/root/lib/libCint.so.5.24 #31 0x009594b3 in TCint::ProcessLine () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #32 0x00959634 in TCint::ProcessLineSynch () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #33 0x0088ecdb in TApplication::ExecuteFile () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #34 0x0088f06b in TApplication::ProcessFile () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #35 0x0088ced3 in TApplication::ProcessLine () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #36 0x002c16cf in TRint::HandleTermInput () from /home/stefano/july09/tools/root/lib/libRint.so.5.24 #37 0x002bfba0 in TTermInputHandler::Notify () from /home/stefano/july09/tools/root/lib/libRint.so.5.24 #38 0x002c1fee in TTermInputHandler::ReadNotify () from /home/stefano/july09/tools/root/lib/libRint.so.5.24 #39 0x00969e42 in TUnixSystem::CheckDescriptors () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #40 0x0096e028 in TUnixSystem::DispatchOneEvent () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #41 0x008e97c0 in TSystem::InnerLoop () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #42 0x008e9587 in TSystem::Run () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #43 0x0088d162 in TApplication::Run () from /home/stefano/july09/tools/root/lib/libCore.so.5.24 #44 0x002c0486 in TRint::Run () from /home/stefano/july09/tools/root/lib/libRint.so.5.24 ---Type <return> to continue, or q <return> to quit--- #45 0x08048d5a in main () (gdb) fr xmm55 No symbol "xmm55" in current context. (gdb) fr xmm55_ #0 0x00000000 in ?? () (gdb)
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.
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.
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.
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
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!
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!
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:5402 #16 0xb1abbeca in FairGeanePro::Propagate (this=0xc8a5200, PDG=11) at /vol0/panda/fairroot/pandaroot/trunk/geane/FairGeanePro.cxx:287 #17 0xb1abcabb in FairGeanePro::Propagate (this=0xc8a5200, TStart=0xbf8e49b0, TEnd=0xbf8e4dd8, PDG=11) at /vol0/panda/fairroot/pandaroot/trunk/geane/FairGeanePro.cxx:227 #18 0xb3616999 in GeaneTrackRep::extrapolate (this=0xdfaa7f0, pl=@0xbf8e6478, statePred=@0xbf8e637c, covPred=@0xbf8e6280) at /vol0/panda/fairroot/pandaroot/trunk/GenfitTools/trackrep/GeaneTrackRep/ GeaneTrackRep.cxx:168 #19 0xb36adb5e in GFKalman::processHit (this=0xbf8eb068, tr=0xe30c768, ihit=14, irep=0, direction=1) at /vol0/panda/fairroot/pandaroot/trunk/genfit/GFKalman.cxx:277 #20 0xb36ae824 in GFKalman::fittingPass (this=0xbf8eb068, trk=0xe30c768, direction=1) at /vol0/panda/fairroot/pandaroot/trunk/genfit/GFKalman.cxx:172 #21 0xb36aea05 in GFKalman::processTrack (this=0xbf8eb068, trk=0xe30c768) at /vol0/panda/fairroot/pandaroot/trunk/genfit/GFKalman.cxx:72 #22 0xb1b2cbcb in PndLheKalmanTask::Exec (this=0xb52b5f8, opt=0xb3d92880 "") at /vol0/panda/fairroot/pandaroot/trunk/lhetrack/PndLheKalmanTask.cxx:240 #23 0xb78f4123 in TTask::ExecuteTasks (this=0x87adb10, option=0xb3d92880 "") at core/base/src/TTask.cxx:298 #24 0xb78f439f in TTask::ExecuteTask (this=0x87adb10, option=0xb3d92880 "") at core/base/src/TTask.cxx:261 #25 0xb3d18cdf in FairRunAna::Run (this=0x87ada78, Ev_start=0, Ev_end=1000) at /vol0/panda/fairroot/pandaroot/trunk/base/FairRunAna.cxx:253 #26 0xb3d564a4 in G__FairDict_662_0_5 (result7=0xbf8f7054, funcname=0x87aae50 "\001", libp=0xbf8ec9e8, hash=0) at /vol0/panda/fairroot/build/base/FairDict.cxx:9019 #27 0xb6ff5e6a in Cint::G__ExceptionWrapper ( funcp=0xb3d563ac <G__FairDict_662_0_5>, result7=0xbf8f7054, funcname=0x87aae50 "\001", libp=0xbf8ec9e8, hash=0) at cint/cint/src/Api.cxx:384 #28 0xb70d9c19 in G__execute_call (result7=0xbf8f7054, libp=0xbf8ec9e8, ifunc=0x87aae50, ifn=0) at cint/cint/src/newlink.cxx:2329 #29 0xb70e1bb8 in G__call_cppfunc (result7=0xbf8f7054, libp=0xbf8ec9e8, ifunc=0x87aae50, ifn=0) at cint/cint/src/newlink.cxx:2515 #30 0xb709c5e3 in G__interpret_func (result7=0xbf8f7054, funcname=0xbf8f812c "Run", libp=0xbf8ec9e8, hash=309, p_ifunc=0x87aae50, funcmatch=1, memfunc_flag=1) at cint/cint/src/ifunc.cxx:5278 #31 0xb708aba3 in G__getfunction (item=0xbf8fe65e "Run(0,nEvents)", known3=0xbf8fc9a8, memfunc_flag=1) at cint/cint/src/func.cxx:2534 #32 0xb718ea45 in G__getstructmem (store_var_type=112, varname=0xbf8fbcac "timer", membername=0xbf8fe65e "Run(0,nEvents)", tagname=0xbf8fc4ac "fRun", known2=0xbf8fc9a8, varglobal=0xb72523a0, objptr=2) at cint/cint/src/var.cxx:6695 #33 0xb717f3f2 in G__getvariable (item=0xbf8fe658 "fRun->Run(0,nEvents)", known=0xbf8fc9a8, varglobal=0xb72523a0, varlocal=0x0) at cint/cint/src/var.cxx:5324 #34 0xb7055d97 in G__getitem (item=0xbf8fe658 "fRun->Run(0,nEvents)") at cint/cint/src/expr.cxx:1884 #35 0xb7069c09 in G__getexpr (expression=0xbf8fea3c "fRun->Run(0,nEvents)") at cint/cint/src/expr.cxx:1470 #36 0xb70f4976 in G__exec_function ( statement=0xbf8fea3c "fRun->Run(0,nEvents)", pc=0xbf8fea34, piout=0xbf8fea2c, plargestep=0xbf8fea1c, presult=0xbf8fe928) at cint/cint/src/parse.cxx:601 #37 0xb70fced0 in G__exec_statement (mparen=0xbf905ee8) at cint/cint/src/parse.cxx:7015 #38 0xb703ddf7 in G__exec_tempfile_core ( file=0xbf90774c " /vol0/panda/fairroot/pandaroot/trunk/tutorials/lhetrack/./run_kalman_tpc .C ", fp=0x0) at cint/cint/src/debug.cxx:251 #39 0xb703e1c9 in G__exec_tempfile ( file=0xbf90774c " /vol0/panda/fairroot/pandaroot/trunk/tutorials/lhetrack/./run_kalman_tpc .C ") at cint/cint/src/debug.cxx:798 #40 0xb710fa35 in G__process_cmd ( line=0x811b608 ".X /vol0/panda/soft/fairsoft/tools/root/etc/plugins/TFile/P100_TXNetFile.C", prompt=0x80ed09c "", more=0x80ed094, err=0xbf90a0a4, rslt=0xbf90a070) at cint/cint/src/pause.cxx:3089 #41 0xb7977c31 in TCint::ProcessLine (this=0x80ed078, line=0x811b608 ".X /vol0/panda/soft/fairsoft/tools/root/etc/plugins/TFile/P100_TXNetFile.C", error=0xbf90a810) at core/meta/src/TCint.cxx:413 #42 0xb796e895 in TCint::ProcessLineSynch (this=0x80ed078, line=0x811b608 ".X /vol0/panda/soft/fairsoft/tools/root/etc/plugins/TFile/P100_TXNetFile.C", error=0xbf90a810) at core/meta/src/TCint.cxx:480 #43 0xb786ba2d in TApplication::ExecuteFile ( file=0xbf90a81d "run_kalman_tpc.C", error=0xbf90a810, keep=false) at core/base/src/TApplication.cxx:956 #44 0xb786bbe0 in TApplication::ProcessFile (this=0x8118e78, file=0xbf90a81d "run_kalman_tpc.C", error=0xbf90a810, keep=false) at core/base/src/TApplication.cxx:841 #45 0xb786e307 in TApplication::ProcessLine (this=0x8118e78, line=0xbf90a81a ".x run_kalman_tpc.C", sync=false, err=0xbf90a810) at core/base/src/TApplication.cxx:814 #46 0xb6d50bdd in TRint::Run (this=0x8118e78, retrn=false) at core/rint/src/TRint.cxx:368 #47 0x08048ef7 in main (argc=1, argv=0xbf90c944) at main/src/rmain.cxx:29 The program is running. Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal] Detaching from program: /proc/9990/exe, process 9990 Root >
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
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