- Optional AliAnalysisTask::Cleanup() method added. To be overwritten by user task
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Mar 2008 13:06:24 +0000 (13:06 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Mar 2008 13:06:24 +0000 (13:06 +0000)
only if some cleanup needs to be done on proof slaves. Called only in PROOF mode.

ANALYSIS/AliAnalysisManager.cxx
ANALYSIS/AliAnalysisTask.cxx
ANALYSIS/AliAnalysisTask.h

index a9e38ce..8f3be86 100644 (file)
@@ -413,6 +413,10 @@ void AliAnalysisManager::PackOutput(TList *target)
             }
          }      
       }
+      // Cleanup tasks on each slave
+      TIter nexttask(fTasks);
+      AliAnalysisTask *task;
+      while ((task=(AliAnalysisTask*)nexttask())) task->Cleanup();
    } 
    if (fDebug > 1) {
       printf("<-AliAnalysisManager::PackOutput: output list contains %d containers\n", target->GetSize());
index 2ea368d..b754d4c 100644 (file)
@@ -401,6 +401,12 @@ void AliAnalysisTask::EnableBranch(Int_t islot, const char *bname) const
    }
    AliAnalysisDataSlot::EnableBranch(bname, tree);
 }
+
+//______________________________________________________________________________
+void AliAnalysisTask::Cleanup()
+{
+// Cleanup method that is called only in proof mode in SlaveTerminate phase.
+}
       
 //______________________________________________________________________________
 void AliAnalysisTask::ConnectInputData(Option_t *)
index 7929f48..db94cbc 100644 (file)
@@ -48,7 +48,6 @@ class AliAnalysisTask : public TTask {
   //=== CALL IN THE CONSTRUCTOR OF DERIVED CLASS TO DEFINE INPUTS/OUTPUTS ===
   void                      DefineInput(Int_t islot, TClass *type);
   void                      DefineOutput(Int_t islot, TClass *type);
-  //=====================================================================
   
   //=====================================================================
   // === OVERLOAD THIS TO CONNECT TREE BRANCHES AT INPUT SLOTS. YOU
@@ -87,8 +86,11 @@ public:
   virtual void              CreateOutputObjects();
   // === OVERLOAD THIS IF YOU NEED TO INITIALIZE YOUR CLASS ON THE CLIENT
   virtual void              LocalInit();
-  // === OVERLOAD THIS IF YOU NEED TO TREAT INPUT FILE CHANGE
+  // === OVERLOAD THIS IF YOU NEED TO TREAT INPUT FILE/TREE CHANGE
   virtual Bool_t            Notify();
+  //=====================================================================
+  // Optional cleanup method to be called only in PROOF in SlaveTerminate phase
+  virtual void              Cleanup();
   // Conect inputs/outputs to data containers (by AliAnalysisModule)
   Bool_t                    ConnectInput(Int_t islot, AliAnalysisDataContainer *cont);
   Bool_t                    ConnectOutput(Int_t islot, AliAnalysisDataContainer *cont);