// addtask macro for AliAnalysisTaskTTreeFilter
// author: redmer alexander bertens (rbertens@cern.ch)
//
// note that this addtask macro is not necessary to run
// the example macro in this folder, but is added for
// clarity
AliAnalysisTaskTTreeFilter* AddTaskTTreeFilter(
TString outfile = "myFilteredTree.root",
UInt_t trigger = AliVEvent::kAnyINT
)
{
// check validity of framework setup
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskTTreeFilter", "No analysis manager to connect to.");
return NULL;
}
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskTTreeFilter", "This task requires an input event handler");
return NULL;
}
// initialize task, connect it to the manager and return it
AliAnalysisTaskTTreeFilter* filter = new AliAnalysisTaskTTreeFilter("filter");
// add the task to the manager
mgr->AddTask(filter);
// set the trigger selection
filter->SelectCollisionCandidates(trigger);
// get the common input container from the analysis manager
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput = mgr->CreateContainer(
"Tree",
TTree::Class(),
AliAnalysisManager::kOutputContainer,
outfile.Data());
// connect the input data to the flow event task
mgr->ConnectInput(filter, 0, cinput);
// and connect the output to the flow event task
mgr->ConnectOutput(filter, 1, coutput);
return filter;
}