Hi Rene and rooters, 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 >
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:32 MET