Hi Rick, Below an example of a script that I introduced last week in the CVS version in $ROOTSYS/tutorials/copytree3.C This script uses a file produced by $ROOTSYS/test/Event with Event 200 0 99 1 Rene Brun { gSystem->Load("$ROOTSYS/test/libEvent.so"); //Get old file, old tree and set top branch address TFile *oldfile = new TFile("$ROOTSYS/test/Event.root"); TTree *oldtree = (TTree*)oldfile->Get("T"); Int_t nentries = (Int_t)oldtree->GetEntries(); Event *event = 0; oldtree->SetBranchAddress("event",&event); //Create a new file + a clone of old tree in new file TFile *newfile = new TFile("small.root","recreate"); TTree *newtree = oldtree->CloneTree(0); for (Int_t i=0;i<nentries; i++) { oldtree->GetEntry(i); if (event->GetNtrack() > 605) newtree->Fill(); event->Clear(); } newtree->Print(); newtree->AutoSave(); delete oldfile; delete newfile; } On Mon, 2 Dec 2002, Rick Van Kooten wrote: > > I was filtering trees, i.e., using selection criteria inside of a > looping macro in root and then writing out a subset of the original > tree. > > However, I am having trouble (and have tried other experts already) > cloning a tree where some of the branches are not basic types, i.e., > arrays, and there are links between members of the different arrays. > The documentation does state: > > IMPORTANT: Before invoking this function, the branch addresses > of this TTree must have been set if one or more branches > is not a basic type. > > and there is a member function CopyAddresses, but how does one use it > to set the addresses _before_ one has created the new tree using > CloneTree? All my efforts so far has resulted in a correctly filtered > tree for the basic branches, but not for the branches that are arrays. > An example would be nice.... > > Thanks, > Rick > -- > Rick Van Kooten \ Telephone: (812) 855-2650 FNAL: (630) 840-3859 > Dept. of Physics \ FAX: (812) 855-0440 > Indiana University \ e-mail: rvankoot@indiana.edu > Swain Hall West 117 \ rickv@fnal.gov > Bloomington, IN 47405\ http://physics.indiana.edu/~rickv/aboutme.html >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:22 MET