Hi Chris, I cannot reproduce your problem with GetListOfBranches. Concerning your request to copy only the active branches, I have implemented this possibility in the current version in CVS. With this new version, when you call TChain::Merge, TTree::CloneTree or TTree::CopyTree, only the active branches are copied. Rene Brun On Wed, 14 Nov 2001, Chris Roat wrote: > Hi ROOTers, > > I think I found a bug in the setting of branch status for TChains (maybe > for TTrees, too?). The following test macro is used to merge a set of > trees, only paying attention to the active branches - "Run" & "momentum". > > TChain c("myntp"); > c.Add("data*.root"); > c.SetBranchStatus("*",0); > c.SetBranchStatus("momentum"); > // c.GetListOfBranches(); // problem line > c.SetBranchStatus("Run"); > c.Merge("test.root"); > > It works as expected. If I uncomment the "problem line", I find that my > c.SetBranchStatus("Run") has no effect - my merged file has a chain with > an empty "Run" branch. Somehow in retrieving the list of branches, I am > blocking myself from correctly setting additional branch statuses for the > chain. > > In my real macro, expanded upon the above test macro, I would like to get > the list of branches from the chain before setting the status of the > branches. Would there be a work around for the above problem? For > instance, after getting my list of branches, is there a method I can use > to undo the harm that GetListOfBranches() has done? > > > As an additional query - can my merged chain be created with the headers > for the inactive branches REMOVED? Currently, I find that the merged file > has a tree which contains all the headers for all branches of the trees > used (the inactive branches being empty). > > Thanks, > Chris > > >
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET