Hi George, I am at DESY this week and not much time to investigate this problem. Could you send me a small tar file with a subset of your classes and two data files that I could use to understand the problem? Rene Brun On Wed, 29 Nov 2000, George A. Heintzelman wrote: > > 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