AliAnalysisTaskUpcFilterSemiforward *AddTaskUpcFilter() {
//--- get the current analysis manager ---//
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
Error("AddTask_UpcFilter", "No analysis manager found.");
return 0;
}
// Check the analysis type using the event handlers connected to the analysis manager.
//==============================================================================
if (!mgr->GetInputEventHandler()) {
Error("AddTask_UpcFilter", "This task requires an input event handler");
return 0;
}
Bool_t isESD = kFALSE;
TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
if( inputDataType.Contains("ESD") ) isESD = kTRUE;
Bool_t isMC = kFALSE;
if( mgr->GetMCtruthEventHandler() ) isMC = kTRUE;
// Create tasks
AliAnalysisTaskUpcFilterSemiforward *task = new AliAnalysisTaskUpcFilterSemiforward();
task->SetIsESD( isESD );
task->SetIsMC( isMC );
mgr->AddTask(task);
// Create containers for input/output
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput = mgr->CreateContainer("UPCTree", TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcFilter", AliAnalysisManager::GetCommonFileName()));
AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("HistList", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcFilter", AliAnalysisManager::GetCommonFileName()));
// Connect input/output
mgr->ConnectInput(task, 0, cinput);
mgr->ConnectOutput(task, 1, coutput);
mgr->ConnectOutput(task, 2, coutput2);
return task;
}