Hi David,
It is difficult to make a meaningful suggestion without looking at
your code. I suggest adding
delete fRaw; fRaw = 0;
either before or after "delete fFile"
Let me know
Rene Brun
On Thu, 3 Oct 2002, [iso-8859-1] Lindelöf David wrote:
> At 18:38 02.10.2002 +0200, Rene Brun wrote:
> >Note that you can alos delete the statement fFile->Close();
> >The statement "delete fFile" will automatically close the file
> >if it is not yet closed.
> >
> >Also replace:
> > THenaEvent *fRaw = new THenaEvent();
> >by
> > THenaEvent *fRaw = 0;
>
> I have followed your suggestions and my code now runs like this:
>
> TFile *fFile = new TFile("somefilename");
> TTree *fTree = (TTree*) fFile->Get("EventsTree");
> TBranch *b_Events=fTree->GetBranch("Event");
> THenaEvent *fRaw = 0; //THenaEvent is a custom class written for
> holding data
> b_Events->SetAddress(&fRaw);
> b_Events->GetEntry(anything);
> delete fFile;
>
> And this works fine so far. However when I now try to read another file,
> after executing the above macro, by typing
>
> fFile = new TFile("someotherfilename");
> fFile = new TFile("somefilename");
> b_Events=fTree->GetBranch("Event");
> fRaw=0;
> b_Events->SetAddress(&fRaw);
>
> I have no problem calling
>
> b_Events->GetEntries()
>
> but calling
>
> b_Events->GetEntry(42)
>
> results again in a segmentation fault.
>
> Any suggestions?
>
>
> David Lindelof
> EP-Division
> CERN
> 1211 Geneva 23
> Switzerland
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:12 MET