GSI Helmholtzzentrum für Schwerionenforschung
segmentation violation in reco macro(PndSttMvdTracking)
Hi all, I am getting a crash in my reco macro(pandaroot/macro/pid) when trying for 100000 events.I have runed two time my reco macro,every time reco task crashed after 36 events.Then I tried by skiping this event no.36 like as:- fRun->Run(0,35); fRun->Run(37,100000); Again it goes to same crash after 389 events.I have attached the reco macro & crash error file here. After run in gdb debugger i got-: Found Tracks: 2 in event no. 35 ---------------- Found Tracks: 1 in event no. 36 ---------------- Program received signal SIGSEGV, Segmentation fault. 0x00007fff00000078 in ?? () (gdb) bt #0 0x00007fff00000078 in ?? () #1 0x00007ffffffdb9e0 in ?? () #2 0x00007ffffffe3fd0 in ?? () #3 0x00007fffff9375c0 in ?? () #4 0x00007ffff7dff010 in ?? () #5 0x4000000000000000 in ?? () #6 0x00007ffffffdad60 in ?? () #7 0x00007ffffff78ec0 in ?? () #8 0xc0a2000000030014 in ?? () #9 0x00007ffffffe5060 in ?? () #10 0x00007ffff7dff010 in ?? () #11 0x3f62707d1a353c80 in ?? () #12 0x000400000014018b in ?? () #13 0x00007ffffffe6670 in ?? () #14 0x00007fffe67d0f98 in PndSttMvdTracking::Exec ( this=<error reading variable: Cannot access memory at address 0x72ff9538bd>, opt=<error reading variable: Cannot access memory at address 0x72ff9538b5>) ---Type <return> to continue, or q <return> to quit--- can anybody help me? Thanks in advance.
Re: segmentation violation in reco macro(PndSttMvdTracking)
hello Ajay, please go to the new version of the pattern recognition that is better debugged. In your Macro, instead of the lines : // PndSttTrackFinderIdeal* sttTrackFinder = new PndSttTrackFinderIdeal(iVerbose); PndSttTrackFinderReal* sttTrackFinder = new PndSttTrackFinderReal(0); PndSttFindTracks* sttFindTracks = new PndSttFindTracks("Track Finder", "FairTask", sttTrackFinder, iVerbose); sttFindTracks->AddHitCollectionName("STTHit", "STTPoint"); //sttFindTracks->SetPersistence(kFALSE); fRun->AddTask(sttFindTracks); PndSttMvdTracking * SttMvdTracking = new PndSttMvdTracking(0, false, false); //SttMvdTracking->Cleanup(); SttMvdTracking->SetPersistence(kFALSE); // SttMvdTracking->SetPersistence(kTRUE); fRun->AddTask(SttMvdTracking); replace them by the following lines : // Unified Pattern Recognition // use the constructor with input : // printout flag (int) , plotting flag (bool), MC comparison flag (bool),SciTil. PndTrkTracking* tracking = new PndTrkTracking(0,false,false,false); tracking->SetInputBranchName("STTHit","MVDHitsPixel","MVDHitsStrip "); // tracking->SetInputBranchName("STTHitMix","MVDHitsPixelMix","MVDHitsStripMix "); // don't do the Pattern Recognition second part, starting from the Mvd; tracking->NoMvdAloneTracking(); // do Cleanup only when there is Mixing; // tracking->Cleanup(); fRun->AddTask(tracking); NOTICE that the last false in ............ = new PndTrkTracking(0,false,false,false); ^ | | prevents the use of the SciTil information. This is so because of the present conflict existing between the geometriy of the DIRC and of the SciTil (in other words : if you use the DIRC geometry you will not get the SciTil points because of an apparent overlap of the two geometries). IN CASE YOU DON'T HAVE THE DIRC geometry you can instead use the 'true' in the constructor : ........... = new PndTrkTracking(0,false,false,true); Please let me know if everything works, thanks@! Gianluigi Ajay Kumar wrote on Wed, 26 September 2012 14:08 Hi all, I am getting a crash in my reco macro(pandaroot/macro/pid) when trying for 100000 events.I have runed two time my reco macro,every time reco task crashed after 36 events.Then I tried by skiping this event no.36 like as:- fRun->Run(0,35); fRun->Run(37,100000); Again it goes to same crash after 389 events.I have attached the reco macro & crash error file here. After run in gdb debugger i got-: Found Tracks: 2 in event no. 35 ---------------- Found Tracks: 1 in event no. 36 ---------------- Program received signal SIGSEGV, Segmentation fault. 0x00007fff00000078 in ?? () (gdb) bt #0 0x00007fff00000078 in ?? () #1 0x00007ffffffdb9e0 in ?? () #2 0x00007ffffffe3fd0 in ?? () #3 0x00007fffff9375c0 in ?? () #4 0x00007ffff7dff010 in ?? () #5 0x4000000000000000 in ?? () #6 0x00007ffffffdad60 in ?? () #7 0x00007ffffff78ec0 in ?? () #8 0xc0a2000000030014 in ?? () #9 0x00007ffffffe5060 in ?? () #10 0x00007ffff7dff010 in ?? () #11 0x3f62707d1a353c80 in ?? () #12 0x000400000014018b in ?? () #13 0x00007ffffffe6670 in ?? () #14 0x00007fffe67d0f98 in PndSttMvdTracking::Exec ( this=<error reading variable: Cannot access memory at address 0x72ff9538bd>, opt=<error reading variable: Cannot access memory at address 0x72ff9538b5>) ---Type <return> to continue, or q <return> to quit--- can anybody help me? Thanks in advance.
Hello Gianluigi, Sorry I have delayed to reply you. I want to inform you that I am using fairsoft jan12 with pandaroot nov 11 release on my ubentu 12.04 desktop. I have pandaroot with revision no. 17392. I have repalced lines in my macro as you told me. but I am getting this msg:- ajay@panda:~/pandaroot/macro/lambdadisks$ root -l run_reco_llbar.C root [0] Processing run_reco_llbar.C... Info in (PndGeoHandling::Instance): Making a new instance using the framework. Error: Symbol PndTrkTracking is not defined in current scope run_reco_llbar.C:83: Error: Symbol PndTrkTracking is not defined in current scope run_reco_llbar.C:83: Error: type PndTrkTracking not defined FILE:/home/ajay/pandaroot/macro/lambdadisks/./run_reco_llbar.C LINE:83 Error: Invalid type 'PndTrkTracking*' in declaration of 'tracking' run_reco_llbar.C:83: *** Interpreter error recovered *** if I am not wrong May be PndTrkTracking not existing in my pandaroot. Again help needed Thanks
You have to use the last trunk, not nov11 release