Couple of questions/comments regarding TRefs in a array (5.18.00a)

From: Constantin Loizides <loizides_at_MIT.EDU>
Date: Mon, 14 Jul 2008 08:50:52 +0200


Dear all,

I'd like to store an array of TRefs in a class that itself is stored in a TClonesArray. The TRefs can point to objects in different branches of the same tree. The following are my findings/questions for 5.18.00a.

  1. Using a TRefArray: TRefs stored in TRefArray seem not to support autoloading via TTree::BranchRef()?

Also not sure if TRefArray would be split?

Assuming the above two points could be
made to work. What happens if I merge two trees created in different processes? From the description of the TRefArray I would rather guess that this is not supported?

b) Using a TClonesArray of TRef
Autoloading worked but the TClonesArray was not split. Is this a restriction when having a TClonesArray inside a TClonesArray?

c) Using a std::vector of TRef
Autoloading and splitting works, so this is what I am using for now. My experience with ROOT and std::vector is limited however. In particular I'd like to know if I have to "trim" the std::vector to its minimal size before storing it? In other words assuming its capacity is bigger than its size, on read time would I recreate the std::vector as it was before with the larger capacity or would ROOT create the std::vector just with the needed size?

Thanks,
Constantin

-- 
Phone: +41-22-76 78948 (CERN)
Skype: loizides / AOL: ConLoi
Received on Mon Jul 14 2008 - 08:51:10 CEST

This archive was generated by hypermail 2.2.0 : Mon Jul 14 2008 - 11:50:02 CEST