Hi rooters,
I think there is a bug in TChain::Merge. I have a chain of files, each
of which has trees with a single branch, made by a TBranch (splitlevel
= 1) on this class:
class GAHPairTreeElem: public TObject {
public:
// Not using f convention because this is a struct:
GAHPairTreeElem() {};
GAHPairTreeElem(int Create);
TClonesArray *Tracks;
TClonesArray *Pairs;
void Clear(); // Called to clear both clonesarrays in my loops.
ClassDef(GAHPairTreeElem,1)
};
By the construction of this, number of Pairs = combinations(2 tracks)
in each event.
Because I need to do some random access on this tree when I create a
mixed-event background for the pairs, I want to merge the chain into a
single tree for faster access. When I do so, I run into trouble if
either 0 tracks or 0 pairs are in any entry. It looks like in that
case, the clonesarray from the previous event is held over. (See scans
below)
I ran into this problem as well in my own loops over entries, but was
able to work around it by calling Clear on the clonesarrays myself
in-between loading events; but I can't do that when I'm using the
TChain::Merge facility.
I'm using Root 2.25/02, but I don't think TBranchClones code has
changed much lately.
Here's the scan of the first part of the chain:
************************************
* Row * Tracks_ * Pairs_ *
************************************
* 0 * 1 * 0 *
* 1 * 1 * 0 *
* 2 * 1 * 0 *
* 3 * 0 * 0 *
* 4 * 1 * 0 *
* 5 * 2 * 1 *
* 6 * 1 * 0 *
* 7 * 1 * 0 *
* 8 * 3 * 3 *
* 9 * 2 * 1 *
* 10 * 0 * 0 *
* 11 * 2 * 1 *
* 12 * 1 * 0 *
* 13 * 1 * 0 *
* 14 * 0 * 0 *
* 15 * 0 * 0 *
* 16 * 0 * 0 *
* 17 * 1 * 0 *
* 18 * 1 * 0 *
* 19 * 1 * 0 *
* 20 * 0 * 0 *
* 21 * 0 * 0 *
* 22 * 1 * 0 *
* 23 * 0 * 0 *
* 24 * 0 * 0 *
************************************
And here's the scan of the merged tree created from that chain:
************************************
* Row * Tracks_ * Pairs_ *
************************************
* 0 * 1 * 0 *
* 1 * 1 * 0 *
* 2 * 1 * 0 *
* 3 * 1 * 0 *
* 4 * 1 * 0 *
* 5 * 2 * 1 *
* 6 * 1 * 1 *
* 7 * 1 * 1 *
* 8 * 3 * 3 *
* 9 * 2 * 1 *
* 10 * 2 * 1 *
* 11 * 2 * 1 *
* 12 * 1 * 1 *
* 13 * 1 * 1 *
* 14 * 1 * 1 *
* 15 * 1 * 1 *
* 16 * 1 * 1 *
* 17 * 1 * 1 *
* 18 * 1 * 1 *
* 19 * 1 * 1 *
* 20 * 1 * 1 *
* 21 * 1 * 1 *
* 22 * 1 * 1 *
* 23 * 1 * 1 *
* 24 * 1 * 1 *
************************************
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:38 MET