return br->GetAddress();
}
+//______________________________________________________________________________
+Int_t AliAnalysisDataSlot::EnableBranch(const char *bname, TTree *tree)
+{
+// Static method to enable recursively a branch in a tree (why this in not in ROOT?)
+ TBranch *branch = tree->GetBranch(bname);
+ Int_t count = 0;
+// static Int_t indent = 0;
+ if (!branch) return count;
+// TString s;
+// for (Int_t i=0; i<indent; i++) s += " ";
+ count++;
+// printf("%sbranch %s: kDoNotProcess=%d\n",s.Data(), branch->GetName(), branch->TestBit(kDoNotProcess));
+ branch->SetBit(kDoNotProcess, kFALSE);
+ TIter next(branch->GetListOfBranches());
+ TBranch *branch_sub;
+ // Activate all sub-branches
+// indent++;
+ while ((branch_sub=(TBranch*)next())) {
+ count += AliAnalysisDataSlot::EnableBranch(branch_sub->GetName(), tree);
+ }
+// indent--;
+ return count;
+}
+
//______________________________________________________________________________
Bool_t AliAnalysisDataSlot::SetBranchAddress(const char *branchname, void *address)
{
return kFALSE;
}
TTree *tree = (TTree*)GetData();
- // Activate the branch itself
- tree->SetBranchStatus(branchname,1);
- TBranch *branch = tree->GetBranch(branchname);
- if (!branch) return kFALSE;
- TIter next(branch->GetListOfLeaves());
- TLeaf *leaf;
- // Activate all sub-branches
- while ((leaf=(TLeaf*)next())) {
- branch = (TBranch*)leaf->GetBranch();
- tree->SetBranchStatus(branch->GetName(),1);
- }
tree->SetBranchAddress(branchname, address);
return kTRUE;
}