]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskStat.cxx
Protected cases when the user forgot to load the library. Error poster if user forget...
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskStat.cxx
index 720cf0e57ecb1a3b9905dc90b5857c06ff1ed26a..c1332a772af8cc15d926cfabe2230ee6ef620a5c 100644 (file)
@@ -56,7 +56,7 @@ AliAnalysisTaskStat::~AliAnalysisTaskStat()
 } 
     
 //______________________________________________________________________________
-AliAnalysisTaskStat *AliAnalysisTaskStat::AddToManager()
+AliAnalysisTaskStat *AliAnalysisTaskStat::AddToManager(UInt_t offlineMask)
 {
 // Add this task to the analysis manager. By default it selects MB events.
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
@@ -73,7 +73,10 @@ AliAnalysisTaskStat *AliAnalysisTaskStat::AddToManager()
                 mgr->GetCommonFileName());
   AliAnalysisTaskStat *taskStatistics = new AliAnalysisTaskStat("MgrStat");
   mgr->AddTask(taskStatistics);
-  taskStatistics->SelectCollisionCandidates(AliVEvent::kMB);
+  AliAnalysisStatistics *stat = taskStatistics->GetStatistics();
+  stat->SetOfflineMask(offlineMask);
+  mgr->SetStatistics(stat);
+  taskStatistics->SelectCollisionCandidates(offlineMask);
   mgr->ConnectInput(taskStatistics, 0, cinput);
   mgr->ConnectOutput(taskStatistics, 1, coutput);
   return taskStatistics;
@@ -113,11 +116,14 @@ void  AliAnalysisTaskStat::Terminate(Option_t *)
     Error("Terminate", "Statistics object not found in list");
     return;
   }
-  if (fStatistics) {
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (stat != fStatistics) {
+    // Non-local mode
     fStatistics->AddInput(stat->GetNinput());
     fStatistics->AddProcessed(stat->GetNprocessed());
     fStatistics->AddFailed(stat->GetNfailed());
     fStatistics->AddAccepted(stat->GetNaccepted());
-    fStatistics->Print();
+    mgr->SetStatistics(fStatistics);
   }
+  fStatistics->Print();
 }