[ROOT] Segmentation violation in ROOT 3.01

From: Bill Seligman (seligman@nevis1.nevis.columbia.edu)
Date: Tue Jun 26 2001 - 19:58:57 MEST


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