Runloader is updated when moving to next file (quick fix).
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 19 Apr 2007 08:52:07 +0000 (08:52 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 19 Apr 2007 08:52:07 +0000 (08:52 +0000)
ANALYSIS/AliAnalysisTaskRL.cxx
ANALYSIS/AliAnalysisTaskRL.h

index ccc8c53..993bf06 100644 (file)
@@ -28,6 +28,7 @@
 
 
 #include <TTree.h>
+#include <TChain.h>
 #include <TFile.h>
 
 ClassImp(AliAnalysisTaskRL)
@@ -36,7 +37,7 @@ ClassImp(AliAnalysisTaskRL)
 AliAnalysisTaskRL::AliAnalysisTaskRL() :
   AliAnalysisTask(),
   fTree(0), fRunLoader(0),
-  fKinematicsLoaded(kFALSE), fHeaderLoaded(kFALSE) {
+  fKinematicsLoaded(kFALSE), fHeaderLoaded(kFALSE), fTreeNumber(-1) {
   //
   // Constructor. Initialization of pointers
   //
@@ -75,11 +76,20 @@ AliRunLoader *AliAnalysisTaskRL::GetRunLoader() {
   // "galice" in the file path of the ESD file. 
 
   fTree = (TTree *)AliAnalysisTask::GetInputData(0);
+  Int_t iTree = ((TChain *)AliAnalysisTask::GetInputData(0))->GetTreeNumber();
+  if (iTree != fTreeNumber) {
+      DeleteRunLoader();
+      fTreeNumber = iTree;
+  }
+  
+      
   if (!fRunLoader) {
     if (!fTree->GetCurrentFile())
       return 0;
     
     TString fileName(fTree->GetCurrentFile()->GetName());
+    printf("Current file %s \n", fileName.Data());
+    
     fileName.ReplaceAll("AliESDs", "galice");
     
     // temporary workaround for PROOF bug #18505
index 4931618..6bce6f4 100644 (file)
@@ -39,7 +39,8 @@ class AliAnalysisTaskRL : public AliAnalysisTask {
   AliRunLoader *fRunLoader; //! pointer to the RunLoader if galice.root was opened
   Bool_t        fKinematicsLoaded; // determines if the stack is properly loaded (AliRunLoader::LoadKinematics() succeeded), this is needed because the GetStack returnes a invalid stack object when the function failed
   Bool_t fHeaderLoaded; // determines if the header is properly loaded
-
+  Int_t  fTreeNumber;   // Number of the tree currently processes (poor man's Notify())
+  
   AliAnalysisTaskRL(const AliAnalysisTaskRL&);
   AliAnalysisTaskRL& operator=(const AliAnalysisTaskRL&);