Dear all,
I have the following problem:
I create a TTree with several Branches. Each Branch contains a class
which is derived from TObject and is declared in the following way:
_sc_tree->Bronch("JetInfo","SC_JetInfo",&_sc_jetinfo,bufsize,split_level);
This works fine as long as I set the splitlevel to 1 (both reading and
writing works). If I now set the splitlevel to 2 (I am using
TClonesArrays as data members of my classes)
I get a segmentation fault when reading the second entry of the tree
(writing works without problems !).
To read the tree I do the following:
1. I set the Branch address: t->SetBranchAddress("JetInfo",&jet_info);
2. I call the GetEntry function for each event: t->GetEntry(jentry);
The stack trace looks like this:
----
Generating stack trace...
0x401e0153 in TUnixSystem::StackTrace() at
/common/Tools/src/root/unix/src/TUnixSystem.cxx:1381 from
/common/Tools/root_debug/lib/libCore.so
0x401deaf1 in TUnixSystem::DispatchSignals(ESignals) at
/common/Tools/src/root/unix/src/TUnixSystem.cxx:583 from
/common/Tools/root_debug/lib/libCore.so
0x401ddc05 in <unknown> from /common/Tools/root_debug/lib/libCore.so
0x401e1d44 in <unknown> from /common/Tools/root_debug/lib/libCore.so
0x40f5ba7a in <unknown> from /lib/i686/libpthread.so.0
0x41071d88 in <unknown> from /lib/i686/libc.so.6
0x40171084 in TObjArray::Delete(char const*) at
/common/Tools/src/root/cont/src/TObjArray.cxx:260 from
/common/Tools/root_debug/lib/libCore.so
0x401707dd in TObjArray::~TObjArray [not-in-charge]() at
/common/Tools/src/root/cont/src/TObjArray.cxx:74 from
/common/Tools/root_debug/lib/libCore.so
0x401658da in TClonesArray::~TClonesArray [in-charge deleting]() at
/common/Tools/src/root/cont/src/TClonesArray.cxx:194 from
/common/Tools/root_debug/lib/libCore.so
0x401b1247 in TStreamerInfo::ReadBufferClones(TBuffer&, TClonesArray*,
int, int, int) at /common/Tools/src/root/meta/src/TStreamerInfo.cxx:2709
from /common/Tools/root_debug/lib/libCore.so
0x40d7ec8c in TBranchElement::ReadLeaves(TBuffer&) at
/common/Tools/src/root/tree/src/TBranchElement.cxx:1323 from
/common/Tools/root_debug/lib/libTree.so
0x40d71c74 in TBranch::GetEntry(int, int) at
/common/Tools/src/root/tree/src/TBranch.cxx:749 from
/common/Tools/root_debug/lib/libTree.so
0x40d7d4b0 in TBranchElement::GetEntry(int, int) at
/common/Tools/src/root/tree/src/TBranchElement.cxx:937 from
/common/Tools/root_debug/lib/libTree.so
0x40d7d433 in TBranchElement::GetEntry(int, int) at
/common/Tools/src/root/tree/src/TBranchElement.cxx:930 from
/common/Tools/root_debug/lib/libTree.so
0x40d7d433 in TBranchElement::GetEntry(int, int) at
/common/Tools/src/root/tree/src/TBranchElement.cxx:930 from
/common/Tools/root_debug/lib/libTree.so
0x40d9ec03 in TTree::GetEntry(int, int) at
/common/Tools/src/root/tree/src/TTree.cxx:2414 from
/common/Tools/root_debug/lib/libTree.so
0x40d84e90 in TChain::GetEntry(int, int) at
/common/Tools/src/root/tree/src/TChain.cxx:560 from
/common/Tools/root_debug/lib/libTree.so
0x08058af2 in eventloop(char*) + 0x234e from ./eventloop
0x0805b1ee in main + 0xde from ./eventloop
0x410604c2 in __libc_start_main + 0xa2 from /lib/i686/libc.so.6
0x08054321 in TFile::TFile[in-charge](char const*, char const*, char
const*, int) + 0x39 from ./eventloop
Aborted
---
I am using root 3.05/05 and gcc3.2 (SuSE8.1). As a test I also disabled
all destructors in my classes (in case the problem is there) but it
didn't help.
Does anyone know of a solution ?
Thanks,
Christian
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET