#include <TROOT.h>
#include <TClass.h>
#include <TTree.h>
+#include <TLeaf.h>
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisDataContainer.h"
+using std::endl;
+using std::cout;
ClassImp(AliAnalysisDataSlot)
//______________________________________________________________________________
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();
- tree->SetBranchStatus(branchname,1);
tree->SetBranchAddress(branchname, address);
return kTRUE;
}
{
// Retreives the data from the container if it is ready.
if (!fContainer) {
- cout<<"Data slot of type "<<GetTitle()<<" of task "<<fParent->GetName()<<" has no connected data container"<<endl;
//AliError(Form("Data slot of type %s of task %s has no connected data container",fType->GetName(), fParent->GetName()));
return NULL;
}