I have found a workaround for the "TChain::Process + user defined TSelector problem" (see http://root.cern.ch/root/roottalk/roottalk00/2583.html). The problem is that calls to "TChain::GetEntry" do not work (it iterates over the first TFile in a TChain over and over again, and ignores the second and subsequent TFiles in the TChain, and it also slows down TFile I/O by an order of magnitude). The solution is to manually call "TBranch::GetEntry" for each specific TBranch. So, for example, instead of overriding TSelector::ProcessCut to look like this: Bool_t ProcessCut( Int_t entry ) { fTree->GetEntry( entry ); return kTRUE; } you must write it to look like this: Bool_t ProcessCut( Int_t entry ) { b_1->GetEntry( entry ); b_2->GetEntry( entry ); ... b_n->GetEntry( entry ); return kTRUE; } In my original bug report, I mistakenly claimed that the "TBranch::GetEntry" solution didn't work either. I was wrong - it appears that this is the only solution that will work. Regards, Matt -- Matthew D. Langston SLD, Stanford Linear Accelerator Center langston@SLAC.Stanford.EDU
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:33 MET