Hi Jan Erik, Are you really using the version from CVS ? On April 21st I fixed a problem in TChain::SetBranchStatus appearing when -all branches were disabled -then some branches activated but not the top level branch. (seems to be your case) Could you check and let me know? Rene Brun Jan Erik Sundermann wrote: > > Hello rooters, > > the advised recipe in TChain->MakeClass() to disable braches for reading > always fails in my code. I was trying both > > fChain->SetBranchStatus("*", 0); > fChain->SetBranchStatus("event", 1); > fChain->SetBranchStatus("platform", 1); > (...) > > and alternatively > > b_event->GetEntry(entry); > b_platform->GetEntry(entry); > (...) > In the first case all enabled branches allways return 0. In the second > case everythings works fine until the loop reaches entry 1353 (maybe the > begin of a new file in the chain). Then the entries remain constant. > I use the by TChain::MakeClass() generated code skeleton and the current > version from CVS. Attached below are the important parts of the code i > use. > > What am i doing wrong? > > Bye, > > Jan Erik. > > -------------------------------------------- > > void > brecontp_doubleevents::Loop() { > > fChain->SetBranchStatus("*", 0); > fChain->SetBranchStatus("platform", 1); > fChain->SetBranchStatus("partition", 1); > fChain->SetBranchStatus("upperID", 1); > fChain->SetBranchStatus("lowerID", 1); > fChain->SetBranchStatus("runNumber", 1); > fChain->SetBranchStatus("nB0", 1); > fChain->SetBranchStatus("nChB", 1); > > if (fChain == 0) return; > Int_t nentries = Int_t(fChain->GetEntriesFast()); > > > for (Int_t entry1=0; entry1 < nentries; entry1++) { > > Int_t ientry = LoadTree(entry1); > if (ientry < 0) break; > > fChain->GetEntry(entry1); > > // or alternatively ... > > // b_event->GetEntry(entry1); > // b_platform->GetEntry(entry1); > // b_partition->GetEntry(entry1); > // b_upperID->GetEntry(entry1); > // b_lowerID->GetEntry(entry1); > // b_runNumber->GetEntry(entry1); > // b_nB0->GetEntry(entry1); > // b_nChB->GetEntry(entry1); > > long platform1 = platform; > long partition1 = partition; > long upperID1 = upperID; > long lowerID1 = lowerID; > long event1 = event; > long runnumber1 = runNumber; > long nB01 = nB0; > long nChB1 = nChB; > > for (Int_t entry2 = entry1+1; entry2 < nentries; entry2++) { > > Int_t jentry = LoadTree(entry2); > if (jentry < 0) break; > fChain->GetEntry(entry2); > > // or alternatively ... > > // b_event->GetEntry(entry2); > // b_platform->GetEntry(entry2); > // b_partition->GetEntry(entry2); > // b_upperID->GetEntry(entry2); > // b_lowerID->GetEntry(entry2); > // b_runNumber->GetEntry(entry2); > // b_nB0->GetEntry(entry2); > // b_nChB->GetEntry(entry2); > > } > } > > fChain->SetBranchStatus("*", 1); > > }
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:51 MET