[ROOT] Re: your mail

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sat Nov 17 2001 - 17:03:37 MET


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