AliAnalysisTaskBF *AddTaskBalanceFunction() {
// Creates a proton analysis task and adds it to the analysis manager.
// Get the pointer to the existing analysis manager via the static access method.
//==============================================================================
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskProtons", "No analysis manager to connect to.");
return NULL;
}
// Check the analysis type using the event handlers connected to the analysis manager.
//==============================================================================
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskBalanceFunction", "This task requires an input event handler");
return NULL;
}
TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/macros/configBalanceFunctionAnalysis.C");
AliBalance *bf = 0;
if (type=="ESD") bf = GetBalanceFunctionObject("ESD");
else if (type=="AOD") bf = GetBalanceFunctionObject("AOD");
else bf = GetBalanceFunctionObject("MC");
// Create the task, add it to manager and configure it.
//===========================================================================
AliAnalysisTaskBF *taskBF = new AliAnalysisTaskBF("TaskBF");
mgr->AddTask(taskBF);
taskBF->SetAnalysisObject(bf);
taskBF->SetVertexDiamond(0.3,0.3,10.);
if (type=="ESD") {
AliESDtrackCuts *trackCuts = GetTrackCutsObject();
taskBF->SetAnalysisCutObject(trackCuts);
}
// Create ONLY the output containers for the data produced by the task.
// Get and connect other common input/output containers via the manager as below
//==============================================================================
TString outputFileName = AliAnalysisManager::GetCommonFileName();
outputFileName += ":PWGCFEbyE.outputBalanceFunctionAnalysis.root";
AliAnalysisDataContainer *coutBF = mgr->CreateContainer("bfOutput", AliBalance::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
AliAnalysisDataContainer *coutQA = mgr->CreateContainer("listQA", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
mgr->ConnectInput(taskBF, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(taskBF, 1, coutBF);
mgr->ConnectOutput(taskBF, 2, coutQA);
// Return task pointer at the end
return taskBF;
}
AddTaskBalanceFunction.C:1 AddTaskBalanceFunction.C:2 AddTaskBalanceFunction.C:3 AddTaskBalanceFunction.C:4 AddTaskBalanceFunction.C:5 AddTaskBalanceFunction.C:6 AddTaskBalanceFunction.C:7 AddTaskBalanceFunction.C:8 AddTaskBalanceFunction.C:9 AddTaskBalanceFunction.C:10 AddTaskBalanceFunction.C:11 AddTaskBalanceFunction.C:12 AddTaskBalanceFunction.C:13 AddTaskBalanceFunction.C:14 AddTaskBalanceFunction.C:15 AddTaskBalanceFunction.C:16 AddTaskBalanceFunction.C:17 AddTaskBalanceFunction.C:18 AddTaskBalanceFunction.C:19 AddTaskBalanceFunction.C:20 AddTaskBalanceFunction.C:21 AddTaskBalanceFunction.C:22 AddTaskBalanceFunction.C:23 AddTaskBalanceFunction.C:24 AddTaskBalanceFunction.C:25 AddTaskBalanceFunction.C:26 AddTaskBalanceFunction.C:27 AddTaskBalanceFunction.C:28 AddTaskBalanceFunction.C:29 AddTaskBalanceFunction.C:30 AddTaskBalanceFunction.C:31 AddTaskBalanceFunction.C:32 AddTaskBalanceFunction.C:33 AddTaskBalanceFunction.C:34 AddTaskBalanceFunction.C:35 AddTaskBalanceFunction.C:36 AddTaskBalanceFunction.C:37 AddTaskBalanceFunction.C:38 AddTaskBalanceFunction.C:39 AddTaskBalanceFunction.C:40 AddTaskBalanceFunction.C:41 AddTaskBalanceFunction.C:42 AddTaskBalanceFunction.C:43 AddTaskBalanceFunction.C:44 AddTaskBalanceFunction.C:45 AddTaskBalanceFunction.C:46 AddTaskBalanceFunction.C:47 AddTaskBalanceFunction.C:48 AddTaskBalanceFunction.C:49 AddTaskBalanceFunction.C:50