Re: [ROOT] Alpha/Linux and a TTree::Branch crash

From: Thomas Bretz (tbretz@astro.uni-wuerzburg.de)
Date: Mon Jul 29 2002 - 10:01:51 MEST


Hi Rene,

> What you do is illegal. You should do

I think the pointer to a pointer sent to TTree::Branch is more or less a
placeholder, when 0.

However, can you explain me what the difference between:
void *
and 
MPhoton* / MElectron*
is?

Thomas.

> MPhoton *photon = 0;
> MElectron *electron = 0;
> TBranch *B1=T1->Branch("MPhoton.",   "MPhoton",   &photon);
> TBranch *B2=T2->Branch("MElectron.", "MElectron", &electron);
> 

> > void *ptr = NULL;
> > TFile file("name", "RECREATE", "", 9);
> > TTree *T1=new TTree("P", "");
> > TTree *T2=new TTree("E", "");
> > TBranch *B1=T1->Branch("MPhoton.",   "MPhoton",   &ptr);
> > TBranch *B2=T2->Branch("MElectron.", "MElectron", &ptr);
> >
> > while MPhoton and MElectron are only container classes (derived from
> > TObject) storing values (no arrays, no pointers, only floats). The
> > Address is later on setup with B1/B2->SetAddress(..) before calling
> > Fill.
> >
> > On Alpha the second call to T2->Branch craches...



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:02 MET