The dot in the branch specification solves all problems pointed out in my
previous mail.
But one useful feature seems to be dissapeared in this case:
T->Branch("track1.","Track",&track1,16000,1);
T->Branch("track2.","Track",&track2,16000,1);
if in this example class Track has member pointer to TClonesArray - the
contents of the array is not stored any more.
If in one branch I remove dot ("track1") or change split mode to 0 - it
works perfectly.
Is it fundamental limitation ore could be improved?
Best regards
Valeri
On Thu, 22 Apr 1999, Rene Brun wrote:
> Hi Valeri,
> If you look carefully at the release notes of 2.21/08, you will find
> the following paragraph:
>
>
> - Changes in classes TTree, TBranchClones and TBranchObject to support
> branches with leaves having the same name.
> Support case of objects with different addresses at each Fill.
> In case a Tree branch is a TObject and split mode , one can force
> the specified branch name to preceed the object data member name
> by terminating the branch name with a "."
> For example, if one wants two branches in a TTree referencing
> two objects of the same class Track, one can do:
> Track *track1=0, *track2=0;
> T->Branch("track1.","Track",&track1,16000,1);
> T->Branch("track2.","Track",&track2,16000,1);
>
> This should fix your problems.
>
> Rene Brun
>
>
> Tioukov Valeri wrote:
> >
> > Hi rooters,
> >
> > When one store into tree 2 branches with 2 objects which have the common
> > name of members (for example o1:{a,b,u} o2:{x,y,u}) the storing now
> > (Version 2.21/08) is fine.
> >
> > But the access to this data is a bit misleading:
> > 3 cases of access:
> > 1) Num *n1 = new Num();
> > Num *n2 = new Num();
> > tree->SetBranchAddress("o1",&n1);
> > tree->SetBranchAddress("o2",&n2);
> > tree->GetEvent(3);
> > n1->Print();
> > n2->Print();
> >
> > works correct
> >
> > 2) If one try to do it from browser: double click on the leaf "u" to draw
> > histogram it always drawn the values of the 1-st stored branch!!!
> > It is very surprising on the first sight because two different
> > branches looks really different. But most probably the using mechanizm
> > is the same as in case 3)
> >
> > 3) tree->Draw("u"); Always drawn the values of the 1-st stored branch.
> > In fact the way to address to the separate branch in the sintacsis of
> > this call is not exist.
> >
> > I think that something should be corrected here. Especially the case 2)
> > is really dangerous, because compleatly misleading.
> >
> > All files used for test could be found in
> > http://chorusdq.na.infn.it/root/
> >
> > Best regards
> > Valeri
>