Re: [ROOT] Branches

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Oct 08 2002 - 21:31:27 MEST


Hi Alberto,

On 8 Oct 2002, Alberto Pulvirenti wrote:

> Dear all,
> 
> I would like to perform the following operation.
> 
> I read a TTree object from a file, but, in principle, I don't know WHAT
> kind of objects are stored in it. The only thing I know is that it
> should contain a unique branch, called "Points". 
> 
> Question 1: 
> I guess that I can check the existence of that branch by using 
> TTree::GetBranch("Points"), which should return a NULL pointer in case
> that such branch does not exist. Am I right?
> 
right

> Question 2:
> This branch should have been filled with objects if a given specified
> class, say "point". How can I check if the entries stored into this
> branch are of the correct type? 

You can do something like:
  const char* classname;
  TBranch *branch = tree.GetBranch(branchname);
  if (branch->InheritsFrom("TBranchObject")) {
     classname = ((TBranchObject*)branch)->GetClassName();
  } else if (branch->InheritsFrom("TBranchElement")) {
    classname = ((TBranchElement*)branch)->GetClassName();
  } else {
    classname = 0; //branch is not a class
  }

This logic could be simplified by adding a GetClassName function in
the base class TBranch. I will do it.

Rene Brun

> 
> Thanks
> 
> alberto
> 
> 
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:13 MET