#include "AliAnalysisTaskStat.h"
#include <TList.h>
#include "AliVEvent.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "AliAnalysisStatistics.h"
ClassImp(AliAnalysisTaskStat)
AliAnalysisTaskStat::AliAnalysisTaskStat(const char *name)
:AliAnalysisTaskSE(name),
fStatistics(0),
fOutputList(0)
{
DefineOutput(1, TList::Class());
fBranchNames = "ESD:AliESDHeader. AOD:header";
fStatistics = new AliAnalysisStatistics("MgrStat");
}
AliAnalysisTaskStat::~AliAnalysisTaskStat()
{
if (fOutputList) {
if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
} else {
if (fStatistics) delete fStatistics;
}
}
AliAnalysisTaskStat *AliAnalysisTaskStat::AddToManager(UInt_t offlineMask)
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AliAnalysisTaskStat::AddToManager", "You need a manager first");
return 0;
}
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
if (!cinput) {
::Error("AliAnalysisTaskStat::AddToManager", "Attach first the input handler");
return 0;
}
AliAnalysisDataContainer *coutput = mgr->CreateContainer("MgrStat", TList::Class(), AliAnalysisManager::kOutputContainer,
mgr->GetCommonFileName());
AliAnalysisTaskStat *taskStatistics = new AliAnalysisTaskStat("MgrStat");
mgr->AddTask(taskStatistics);
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;
}
void AliAnalysisTaskStat::UserCreateOutputObjects()
{
if (!fStatistics) {
Fatal("UserCreateOutputObjects", "You are not allowed to create this task using the dummy constructor. Use the named one.");
}
fOutputList = new TList();
fOutputList->SetOwner();
if (fStatistics) fOutputList->Add(fStatistics);
PostData(1, fOutputList);
}
void AliAnalysisTaskStat::UserExec(Option_t *)
{
fStatistics->AddAccepted();
}
void AliAnalysisTaskStat::Terminate(Option_t *)
{
fOutputList = dynamic_cast<TList*>(GetOutputData(1));
if (!fOutputList) {
Error("Terminate", "Cannot get output list from container");
return;
}
AliAnalysisStatistics *stat = dynamic_cast<AliAnalysisStatistics*>(fOutputList->At(0));
if (!stat) {
Error("Terminate", "Statistics object not found in list");
return;
}
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (stat != fStatistics) {
fStatistics->AddInput(stat->GetNinput());
fStatistics->AddProcessed(stat->GetNprocessed());
fStatistics->AddFailed(stat->GetNfailed());
fStatistics->AddAccepted(stat->GetNaccepted());
mgr->SetStatistics(fStatistics);
}
fStatistics->Print();
}
AliAnalysisTaskStat.cxx:1 AliAnalysisTaskStat.cxx:2 AliAnalysisTaskStat.cxx:3 AliAnalysisTaskStat.cxx:4 AliAnalysisTaskStat.cxx:5 AliAnalysisTaskStat.cxx:6 AliAnalysisTaskStat.cxx:7 AliAnalysisTaskStat.cxx:8 AliAnalysisTaskStat.cxx:9 AliAnalysisTaskStat.cxx:10 AliAnalysisTaskStat.cxx:11 AliAnalysisTaskStat.cxx:12 AliAnalysisTaskStat.cxx:13 AliAnalysisTaskStat.cxx:14 AliAnalysisTaskStat.cxx:15 AliAnalysisTaskStat.cxx:16 AliAnalysisTaskStat.cxx:17 AliAnalysisTaskStat.cxx:18 AliAnalysisTaskStat.cxx:19 AliAnalysisTaskStat.cxx:20 AliAnalysisTaskStat.cxx:21 AliAnalysisTaskStat.cxx:22 AliAnalysisTaskStat.cxx:23 AliAnalysisTaskStat.cxx:24 AliAnalysisTaskStat.cxx:25 AliAnalysisTaskStat.cxx:26 AliAnalysisTaskStat.cxx:27 AliAnalysisTaskStat.cxx:28 AliAnalysisTaskStat.cxx:29 AliAnalysisTaskStat.cxx:30 AliAnalysisTaskStat.cxx:31 AliAnalysisTaskStat.cxx:32 AliAnalysisTaskStat.cxx:33 AliAnalysisTaskStat.cxx:34 AliAnalysisTaskStat.cxx:35 AliAnalysisTaskStat.cxx:36 AliAnalysisTaskStat.cxx:37 AliAnalysisTaskStat.cxx:38 AliAnalysisTaskStat.cxx:39 AliAnalysisTaskStat.cxx:40 AliAnalysisTaskStat.cxx:41 AliAnalysisTaskStat.cxx:42 AliAnalysisTaskStat.cxx:43 AliAnalysisTaskStat.cxx:44 AliAnalysisTaskStat.cxx:45 AliAnalysisTaskStat.cxx:46 AliAnalysisTaskStat.cxx:47 AliAnalysisTaskStat.cxx:48 AliAnalysisTaskStat.cxx:49 AliAnalysisTaskStat.cxx:50 AliAnalysisTaskStat.cxx:51 AliAnalysisTaskStat.cxx:52 AliAnalysisTaskStat.cxx:53 AliAnalysisTaskStat.cxx:54 AliAnalysisTaskStat.cxx:55 AliAnalysisTaskStat.cxx:56 AliAnalysisTaskStat.cxx:57 AliAnalysisTaskStat.cxx:58 AliAnalysisTaskStat.cxx:59 AliAnalysisTaskStat.cxx:60 AliAnalysisTaskStat.cxx:61 AliAnalysisTaskStat.cxx:62 AliAnalysisTaskStat.cxx:63 AliAnalysisTaskStat.cxx:64 AliAnalysisTaskStat.cxx:65 AliAnalysisTaskStat.cxx:66 AliAnalysisTaskStat.cxx:67 AliAnalysisTaskStat.cxx:68 AliAnalysisTaskStat.cxx:69 AliAnalysisTaskStat.cxx:70 AliAnalysisTaskStat.cxx:71 AliAnalysisTaskStat.cxx:72 AliAnalysisTaskStat.cxx:73 AliAnalysisTaskStat.cxx:74 AliAnalysisTaskStat.cxx:75 AliAnalysisTaskStat.cxx:76 AliAnalysisTaskStat.cxx:77 AliAnalysisTaskStat.cxx:78 AliAnalysisTaskStat.cxx:79 AliAnalysisTaskStat.cxx:80 AliAnalysisTaskStat.cxx:81 AliAnalysisTaskStat.cxx:82 AliAnalysisTaskStat.cxx:83 AliAnalysisTaskStat.cxx:84 AliAnalysisTaskStat.cxx:85 AliAnalysisTaskStat.cxx:86 AliAnalysisTaskStat.cxx:87 AliAnalysisTaskStat.cxx:88 AliAnalysisTaskStat.cxx:89 AliAnalysisTaskStat.cxx:90 AliAnalysisTaskStat.cxx:91 AliAnalysisTaskStat.cxx:92 AliAnalysisTaskStat.cxx:93 AliAnalysisTaskStat.cxx:94 AliAnalysisTaskStat.cxx:95 AliAnalysisTaskStat.cxx:96 AliAnalysisTaskStat.cxx:97 AliAnalysisTaskStat.cxx:98 AliAnalysisTaskStat.cxx:99 AliAnalysisTaskStat.cxx:100 AliAnalysisTaskStat.cxx:101 AliAnalysisTaskStat.cxx:102 AliAnalysisTaskStat.cxx:103 AliAnalysisTaskStat.cxx:104 AliAnalysisTaskStat.cxx:105 AliAnalysisTaskStat.cxx:106 AliAnalysisTaskStat.cxx:107 AliAnalysisTaskStat.cxx:108 AliAnalysisTaskStat.cxx:109 AliAnalysisTaskStat.cxx:110 AliAnalysisTaskStat.cxx:111 AliAnalysisTaskStat.cxx:112 AliAnalysisTaskStat.cxx:113 AliAnalysisTaskStat.cxx:114 AliAnalysisTaskStat.cxx:115 AliAnalysisTaskStat.cxx:116 AliAnalysisTaskStat.cxx:117 AliAnalysisTaskStat.cxx:118 AliAnalysisTaskStat.cxx:119 AliAnalysisTaskStat.cxx:120 AliAnalysisTaskStat.cxx:121 AliAnalysisTaskStat.cxx:122 AliAnalysisTaskStat.cxx:123 AliAnalysisTaskStat.cxx:124 AliAnalysisTaskStat.cxx:125 AliAnalysisTaskStat.cxx:126 AliAnalysisTaskStat.cxx:127 AliAnalysisTaskStat.cxx:128 AliAnalysisTaskStat.cxx:129