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