Hi Ole TTree::AddFriend accepts a TTree as input. It is not clever enough to accept a TChain. However, a TChain::AddFriend accepts either a TTree or a TChain as argument. TTree::AddFriend should be protected against use with a TChain. Rene Brun On Thu, 19 Sep 2002, Ole Streicher wrote: > Hi! > > I have a problem using TChain and TTree::AddFriend together. ROOT > version is 3.03/09: > > ----------------------------------------------------------------------------- > // create the main tree: > TFile h("Run0001.Physics.Header.root"); > TTree *t = (TTree *)h.Get("Physics"); > > t->Draw("Counter.Physics"); // <--- Works > > TChain *c = new TChain("Tracker"); > c->Add("Run0001.Physics.Tracker.Raw*.root"); // <--- Adds 11 files, 1MB each > > c->Draw("Unpacked.NChannels"); // <-- Works > > t->AddFriend(c, "Tracker"); > t->Draw("Tracker.Unpacked.NChannels"); // *** Break *** segmentation violation > ----------------------------------------------------------------------------- > > The last line gives a segfault. > > If I open just the first file of the chain (or put all events into one > file without chains), it works: > > ----------------------------------------------------------------------------- > TFile f("Run0001.Physics.Tracker.Raw.root"); > TTree *c = (TTree*)f.Get("Tracker"); > c->Draw("Unpacked.NChannels"); // <-- Works > > t->AddFriend(c, "Tracker"); > t->Draw("Tracker.Unpacked.NChannels"); // <-- Works > ----------------------------------------------------------------------------- > > It also works if the chain uses only one file (removing the "*" in the > first code snippet). Adding the second file gives the error, but already at > the first event. > > Is this a bug in ROOT or can't I just add TChains as friends to other > trees? > > Ole >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:10 MET