Hi Michael, TTree::MakeCode was the predecessor of TTree::MakeClass. It was designed to handle simple ntuples involving only basic data types. You should use TTree::MakeClass instead in your case. The generated code is far more general and powerful. I am considering dropping the support for MakeCode in a next version unless there is a strong opposition. Rene Brun M. Sievers wrote: > > Hello, > > I have a problem when using TTree::MakeCode() with TLorentzVectors. I > define them in the following way: > > static TLorentzVector *eff_HCMjet07 > effTree->Branch("HCMjet07","TLorentzVector",&eff_HCMjet07,bsize,0); > > It all works nicely, but when I issue an effTree->MakeCode(), > out comes lines like > > effTree->SetBranchAddress("HCMjet07",&TLorentzVector); > > this is with root 2.23/08 on linuxsuse6. > I have found the doing the following change: > > *** ../../root.2.23/src/TREEPLAYER_TreePlayer.cxx.orig Thu Oct 21 > 09:53:08 1999 > --- ../../root.2.23/src/TREEPLAYER_TreePlayer.cxx Thu Oct 21 > 10:08:00 1999 > *************** > *** 1666,1672 **** > leafcount =leaf->GetLeafCount(); > TBranch *branch = leaf->GetBranch(); > if (leafcount) strcpy(branchname,branch->GetName()); > ! else strcpy(branchname,leaf->GetTitle()); > bname = branchname; > while (*bname) {if (*bname == '.') *bname='_'; bname++;} > char *brak = strstr(branchname,"["); > --- 1666,1672 ---- > leafcount =leaf->GetLeafCount(); > TBranch *branch = leaf->GetBranch(); > if (leafcount) strcpy(branchname,branch->GetName()); > ! else strcpy(branchname,leaf->GetName()); > bname = branchname; > while (*bname) {if (*bname == '.') *bname='_'; bname++;} > char *brak = strstr(branchname,"["); > > Results in the correct behaviour: > > effTree->SetBranchAddress("HCMjet07",&HCMjet07); > > Please tell me if I'm fixing a mistake I made in a complex way or whether > this is a bug in root. > > Thanks, > Michael > > -------------------------------------------------------------------------- > Michael Sievers > Michael.Sievers@desy.de > -------------------------------------------------------------------------- > esa$ gcc -Wall -o ariane5 ariane4.c > ariane4.c: 666: warning: long float implicitly truncated to unsigned type > esa$ ariane5
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:43 MET