GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Bugs, Fixes, Releases » sigfault during EMC reco
sigfault during EMC reco [message #5906] Tue, 19 February 2008 10:12 Go to next message
Dmitry Morozov is currently offline  Dmitry Morozov
Messages: 34
Registered: May 2007
Location: Protvino, Russia
continuous participant
From: 194.190.166*
Dear EMC experts,

I have a sigmentation violation when I try to recontsruct some clusters using reco_emc.C macro.

Here is exactly that I do:
I tried this on two machines with SL3 and SL4 - i see the same on both.
1) sim_emc.C to simulate some events with 1 GeV gammas, geometry file: "emc_module1234.dat"(tried with others - same result) , geant 3 (with geant4 - the same).
Output: sim_emc.root - with no problems

2) hit_emc.C to get hits from points.
Output: hit_emc.root - with no problems

3) digi_emc.C to digitize the hits.
Output: digi_emc.root - with no problems

4) reco_emc.C to reconstruct clusters...
And here i get the following output:

[vfreez] /home/freez/fairroot/pandaroot/macro/emc > root reco_emc.C
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 5.17/05 16 October 2007 *
* *
* You are welcome to visit our Web site *
* http://root.cern.ch *
* *
*******************************************

ROOT 5.17/05 (trunk@20369, De 05 2007, 06:02:00 on linux)

CINT/ROOT C/C++ Interpreter version 5.16.27, Oct 25, 2007
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0]
Processing reco_emc.C...

PSaid instance created... access via gSaid->f()

- RTDB container factory CbmBaseContFact
- RTDB container factory PndFieldContFact
- RTDB container factory PndPassiveContFact
- RTDB container factory PndEmcContFact
-I- CbmRunAna: Opening Input file: sim_emc.root
-I- CbmRunAna Input file: sim_emc.root is connected to friend: digi_emc.root
fRun->Init()

-I- CbmRunAna::Init :
sim_emc.root is connected with: digi_emc.root

Info in <TGeoManager::CloseGeometry>: Geometry loaded from file...
Info in <TGeoManager::SetTopVolume>: Top volume is cave. Master volume is cave
Info in <TGeoManager::Voxelize>: Voxelizing...
Info in <TGeoNavigator::BuildCache>: --- Maximum geometry depth set to 100
Info in <TGeoManager::CloseGeometry>: 17324 nodes/ 2181 volume UID's in CBM geometry
Info in <TGeoManager::CloseGeometry>: ----------------modeler ready----------------
PndFieldCreator::SetParm()
create PndFieldPar container PndFieldPar
create PndFieldPar container PndSolenoidPar
create PndFieldPar container PndDipolePar
create PndFieldPar container PndTransPar
create PndFieldPar container PndConstPar
create PndFieldPar container PndMultiFieldPar
-I container name PndEmcDigiPar
-I container name PndEmcRecoPar

*************************************************************
initialisation for run id 1459998032
*************************************************************
Container CbmBaseParSet initialized from ROOT file.
Error in <PndFieldPar::init()>: PndFieldPar not initialized
Error in <PndSolenoidPar::init()>: PndSolenoidPar not initialized
Error in <PndDipolePar::init()>: PndDipolePar not initialized
Error in <PndTransPar::init()>: PndTransPar not initialized
Error in <PndConstPar::init()>: PndConstPar not initialized
Container PndMultiFieldPar initialized from ROOT file.
PndEmcDigiPar initialized from Ascii file
PndEmcRecoPar initialized from Ascii file
Error in <CbmRuntimeDb::initContainers()>: Error occured during initialization
PndFieldCreator::createCbmField()
OBJ: PndTransPar PndTransPar Trans. Field parameter container
OBJ: PndDipolePar PndDipolePar Dipole Field parameter container
OBJ: PndSolenoidPar PndSolenoidPar Solenoid Field parameter container
-I- PndFieldMap: Reading field map from ROOT file /home/freez/fairroot/pandaroot/input/TransMap.root
-I- PndFieldMap: Reading field map from ROOT file /home/freez/fairroot/pandaroot/input/DipoleMap.root
-I- PndFieldMap: Reading field map from ROOT file /home/freez/fairroot/pandaroot/input/SolenoidMap.root
PndEmcMakeCluster::fDigiEnergyTresholdBarrel: 0.003
PndEmcMakeCluster::fDigiEnergyTresholdFWD: 0.003
PndEmcMakeCluster::fDigiEnergyTresholdBWD: 0.003
PndEmcMakeCluster::fDigiEnergyTresholdShashlyk: 0.003
Lilo cluster position method
-I- PndEmcMakeCluster: Intialization successfull
DigiList length 11

*** Break *** segmentation violation
Using host libthread_db library "/lib/tls/libthread_db.so.1".
Attaching to program: /proc/5178/exe, process 5178
[Thread debugging using libthread_db enabled]
[New Thread -1208944960 (LWP 5178)]
0x0080a7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x00f4ed23 in __waitpid_nocancel () from /lib/tls/libc.so.6
#2 0x00ef87a9 in do_system () from /lib/tls/libc.so.6
#3 0x007f998d in system () from /lib/tls/libpthread.so.0
#4 0x003138ce in TUnixSystem::Exec (this=0xa0c9138,
#5 0x00313d82 in TUnixSystem::StackTrace (this=0xa0c9138) at unix/src/TUnixSystem.cxx:2012
#6 0x00311bc7 in TUnixSystem::DispatchSignals (this=0xa0c9138, sig=kSigSegmentationViolation)
at unix/src/TUnixSystem.cxx:974
#7 0x0030fded in SigHandler (sig=kSigSegmentationViolation) at unix/src/TUnixSystem.cxx:340
#8 0x00316ada in sighandler (sig=11) at unix/src/TUnixSystem.cxx:3226
#9 <signal handler called>
#10 0x01694ef6 in PndEmcTwoCoordIndex::itsXCoord (this=0x4006)
at /home/freez/fairroot/pandaroot/emc/EmcTools/PndEmcTwoCoordIndex.h:56
#11 0x016ba97a in PndEmcTwoCoordIndex::isNeighbour (this=0xc86b2a8, _tci=0x4006)
at /home/freez/fairroot/pandaroot/emc/EmcTools/PndEmcTwoCoordIndex.cxx:74
#12 0x0169478e in PndEmcDigi::isNeighbour (this=0xdcf8818, theDigi=0xdcf87a0)
at /home/freez/fairroot/pandaroot/emc/EmcData/PndEmcDigi.cxx:203
#13 0x01697c74 in PndEmcCluster::isInCluster (this=0xddb0b20, theDigi=0xdcf8818)
at /home/freez/fairroot/pandaroot/emc/EmcData/PndEmcCluster.cxx:313
#14 0x016c478a in PndEmcMakeCluster::Exec (this=0xa6d7038, opt=0x14a0070 "")
at /home/freez/fairroot/pandaroot/emc/EmcReco/PndEmcMakeCluster.cxx:166
#15 0x0029f83e in TTask::ExecuteTasks (this=0xa4adc80, option=0x14a0070 "") at base/src/TTask.cxx:298
#16 0x0029f639 in TTask::ExecuteTask (this=0xa4adc80, option=0x14a0070 "") at base/src/TTask.cxx:261
#17 0x0144129b in CbmRunAna::Run (this=0xa4adbe8, Ev_start=0, Ev_end=100)
at /home/freez/fairroot/pandaroot/base/CbmRunAna.cxx:157
#18 0x0147805c in G__CbmDict_530_0_5 (result7=0xbfe9d4b0, funcname=0xa4ac110 "\001", libp=0xbfe976d0, hash=0)
at /home/freez/fairroot/build/base/CbmDict.cxx:9334
#19 0x00887ce5 in Cint::G__ExceptionWrapper (funcp=0x1477fa8 <G__CbmDict_530_0_5>, result7=0xbfe9d4b0,
funcname=0xa4ac110 "\001", libp=0xbfe976d0, hash=0) at cint/src/Api.cxx:364
#20 0x00958813 in G__call_cppfunc (result7=0xbfe9d4b0, libp=0xbfe976d0, ifunc=0xa4ac110, ifn=0)
at cint/src/v6_newlink.cxx:512
#21 0x0093e269 in G__interpret_func (result7=0xbfe9d4b0, funcname=0xbfe9d0b0 "Run", libp=0xbfe976d0, hash=309,
p_ifunc=0xa4ac110, funcmatch=1, memfunc_flag=1) at cint/src/v6_ifunc.cxx:5118
#22 0x00924f20 in G__getfunction (item=0xbfea0466 "Run(0,nEvents)", known3=0xbfe9f87c, memfunc_flag=1)
at cint/src/v6_func.cxx:2511
#23 0x009effd3 in G__getstructmem (store_var_type=112, varname=0xbfe9f550 "(", membername=0xbfea0466 "Run(0,nEvents)",
tagname=0xbfe9ddb0 "fRun", known2=0xbfe9f87c, varglobal=0xa7a5a0, objptr=2) at cint/src/v6_var.cxx:6562
#24 0x009e5a74 in G__getvariable (item=0xbfea0460 "fRun->Run(0,nEvents)", known2=0xbfe9f87c, varglobal=0xa7a5a0,
varlocal=0x0) at cint/src/v6_var.cxx:5206
#25 0x00918bd9 in G__getitem (item=0xbfea0460 "fRun->Run(0,nEvents)") at cint/src/v6_expr.cxx:1884
#26 0x00917248 in G__getexpr (expression=0xbfea1b50 "fRun->Run(0,nEvents)") at cint/src/v6_expr.cxx:1470
#27 0x0097b9c6 in G__exec_function (statement=0xbfea1b50 "fRun->Run(0,nEvents)", pc=0xbfea1f7c, piout=0xbfea1f74,
plargestep=0xbfea1f64, presult=0xbfea1b20) at cint/src/v6_parse.cxx:598
#28 0x009878df in G__exec_statement (mparen=0xbfea1fe0) at cint/src/v6_parse.cxx:6923
#29 0x008f532c in G__exec_tempfile_core (file=0xbfeaa9e0 "/home/freez/fairroot/pandaroot/macro/emc/./reco_emc.C", fp=0x0)
at cint/src/v6_debug.cxx:251
#30 0x008f6890 in G__exec_tempfile (file=0xbfeaa9e0 "/home/freez/fairroot/pandaroot/macro/emc/./reco_emc.C")
at cint/src/v6_debug.cxx:798
#31 0x0099259d in G__process_cmd (line=0x72871d "lobal_36", prompt=0xa0cc144 "", more=0xa0cc13c, err=0xbfeab24c,
rslt=0xbfeab250) at cint/src/v6_pause.cxx:3070
#32 0x002dbfb2 in TCint::ProcessLine (this=0xa0cc120, line=0x72871d "lobal_36", error=0xbfeadab4) at meta/src/TCint.cxx:289
#33 0x002dc354 in TCint::ProcessLineSynch (this=0xa0cc120, line=0x72871d "lobal_36", error=0xbfeadab4)
at meta/src/TCint.cxx:354
#34 0x002283f9 in TApplication::ExecuteFile (file=0xbfeab9b3 "reco_emc.C", error=0xbfeadab4)
at base/src/TApplication.cxx:897
#35 0x00227ca9 in TApplication::ProcessFile (this=0xa0e9d80, file=0xbfeab9b3 "reco_emc.C", error=0xbfeadab4)
at base/src/TApplication.cxx:787
#36 0x00227be5 in TApplication::ProcessLine (this=0xa0e9d80, line=0xbfeab9b0 ".x reco_emc.C", sync=false, err=0xbfeadab4)
at base/src/TApplication.cxx:760
#37 0x0079ee40 in TRint::Run (this=0xa0e9d80, retrn=false) at rint/src/TRint.cxx:336
#38 0x08048de3 in main (argc=1, argv=0xbfeadb94) at main/src/rmain.cxx:29
--------------------------------------------------------------

I can see that it craches at the line
#10 0x01694ef6 in PndEmcTwoCoordIndex::itsXCoord (this=0x4006)
at /home/freez/fairroot/pandaroot/emc/EmcTools/PndEmcTwoCoordIndex.h:56

but it does not look strange to me....

Could anybody help me this that?

Thank you.
Dmitry.

Re: sigfault during EMC reco [message #5907 is a reply to message #5906] Tue, 19 February 2008 10:39 Go to previous messageGo to next message
Dima Melnychuk is currently offline  Dima Melnychuk
Messages: 213
Registered: April 2004
Location: National Centre for Nucle...
first-grade participant
From: *fuw.edu.pl
Hi Dmitry,

At least you can run full_emc.C macro which does digitization and reconstruction together.

I have reproduced the error and will try to find why reco_emc.C does not work.

Best regards,

Dima
Re: sigfault during EMC reco [message #5909 is a reply to message #5906] Tue, 19 February 2008 13:20 Go to previous messageGo to next message
Dima Melnychuk is currently offline  Dima Melnychuk
Messages: 213
Registered: April 2004
Location: National Centre for Nucle...
first-grade participant
From: *fuw.edu.pl
Hi,

I have corrected PndEmcDigi.cxx and submited changes to svn (rev. 2194).

Now reco_emc.C should work again.

Dima
Re: sigfault during EMC reco [message #5911 is a reply to message #5909] Tue, 19 February 2008 14:45 Go to previous messageGo to next message
Dmitry Morozov is currently offline  Dmitry Morozov
Messages: 34
Registered: May 2007
Location: Protvino, Russia
continuous participant
From: *ihep.su
Thanks Dima!
It works now.

But what did you do?
I see that you removed
if (fTCI==0) {

which is "PndEmcTwoCoordIndex* fTCI" pointer...

what is this pointer for?

Thank you.
Dmitry.
Re: sigfault during EMC reco [message #5912 is a reply to message #5911] Tue, 19 February 2008 15:12 Go to previous message
Dima Melnychuk is currently offline  Dima Melnychuk
Messages: 213
Registered: April 2004
Location: National Centre for Nucle...
first-grade participant
From: *fuw.edu.pl
Hi again,

I will try to explain concerning "PndEmcTwoCoordIndex* fTCI" pointer.

So, each crystal is characterised by 1 integer number fDetectorID or by 2 indexes (theta, phi integer indexes for barrel or X,Y indexes for endcup). These 2 integer indexes are combined into the object of PndEmcTwoCoordIndex class, which except these 2 indexes contains also references to the same object of neighboring crystals. This is used in the clustering algorithm. And the list of neighboring crystals is filled in the PndEmcMapper.

So each PndEmcDigi contain fDetectorID and *fTCI. And in principle fDetectorID uniquely identify *fTCI, but the last is more convenient for clustering algorithm.

But the *fTCI pointer is transient data member since root have problem with persistency of object which has indirect reference to itself.

So after PndEmcDigi is read from the root file the fTCI data should be restored. And the method PndEmcDigi::ValidateTCI() does this. My original idea was to use custom streamer for this purpose but it appears that for some cases it work and for some don't .
So the error which you reported today shows that fTCI data restored by custom streamer and restored by ValidateTCI() are inconsistent.

It will need further investigation.

Best regards,
Dima
Previous Topic: Problem compiling external packages on RedHat
Next Topic: break segm,antation with geant4
Goto Forum:
  


Current Time: Tue Nov 26 07:56:13 CET 2024

Total time taken to generate the page: 0.00727 seconds