My apologies if this issue has already been dealt with on this message
board, but I've done several searches and haven't found it.
My problem is that a TTree that I used to be able to read when I created
it under ROOT 3.00/06 causes a segmentation violation when I re-create
it and read it with ROOT 3.01/05. That is, in ROOT 3.00/06 I create the
TTree file and I'm able to later read it in root; in ROOT 3.01/05 I
create the TTree file but when I try to read it later I get the error.
I'm running on Redhat Linux 6.2, and I re-compile the ROOT source using
gcc 2.95.2.
My code suite can be found at
<ftp://www.nevis.columbia.edu/pub/atlas/seligman/LArHits-0.4.tar.gz>;
the documentation is at
<http://www.nevis.columbia.edu/~atlas/lar/LArHits-0.4.html>. It is a
Geant4 application that writes event hits to a TTree; the hits
themselves are stored in a TClonesArray. The program that actually
generates the error is analysis.C.
I went through the exercise of using the debugger on ROOT. I discovered
that the segmentation violation occurs when I do:
TFile* inputFile = new TFile("LArHits.root");
TTree* t = (TTree*) inputFile->Get("LArHits");
t->GetEntry(0);
Tracing the error, it occurs in routine
TBranchElement::ReadLeaves(TBuffer &b) at the statement:
fInfo->ReadBuffer(b,fObject,fID);
...and the specific problem is that fInfo is 0.
Is this enough information to figure out what's wrong? If anyone asks,
I'd be glad to send a copy of the files LArHits.root and LArHits.so,
created under ROOT 3.00, 3.01, or both.
--
Bill Seligman | mailto://seligman@nevis.columbia.edu
Nevis Labs | http://www.nevis.columbia.edu/~seligman/
PO Box 137 |
Irvington NY 10533 | Phone: (914) 591-2823
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:50 MET