Re: the second branch in the split mode

Rene Brun (Rene.Brun@cern.ch)
Thu, 22 Apr 1999 16:26:03 +0000


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