ROOT logo
AliProtonFeedDownAnalysisTask* AddTaskProtonFeedDownAnalysis(const char *analysisType="Hybrid",const char *pidMode="Bayesian")
{
  // 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("AddTaskProtons", "This task requires an input event handler");
    return NULL;
  }   
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonFeedDownAnalysis.C");
  AliProtonFeedDownAnalysis *pa = 0;
  if (type=="ESD") pa = GetProtonFeedDownAnalysisObject("ESD", analysisType, pidMode);
  else if (type=="AOD") pa = GetProtonFeedDownAnalysisObject("AOD", analysisType, pidMode);
  else return NULL;

  // Create the task, add it to manager and configure it.
  //===========================================================================
  AliProtonFeedDownAnalysisTask *taskproton = new  AliProtonFeedDownAnalysisTask("TaskProtons");
  mgr->AddTask(taskproton);
  taskproton->SetAnalysisObject(pa);

  // 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 += ":PWG2BaryonRatioFeedDownAnalysis";
  AliAnalysisDataContainer *cout_proton = mgr->CreateContainer("protonFeedDown", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
  mgr->ConnectInput(taskproton, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskproton, 0, cout_proton);
  
  // Return task pointer at the end
  return taskproton;
}
 AddTaskProtonFeedDownAnalysis.C:1
 AddTaskProtonFeedDownAnalysis.C:2
 AddTaskProtonFeedDownAnalysis.C:3
 AddTaskProtonFeedDownAnalysis.C:4
 AddTaskProtonFeedDownAnalysis.C:5
 AddTaskProtonFeedDownAnalysis.C:6
 AddTaskProtonFeedDownAnalysis.C:7
 AddTaskProtonFeedDownAnalysis.C:8
 AddTaskProtonFeedDownAnalysis.C:9
 AddTaskProtonFeedDownAnalysis.C:10
 AddTaskProtonFeedDownAnalysis.C:11
 AddTaskProtonFeedDownAnalysis.C:12
 AddTaskProtonFeedDownAnalysis.C:13
 AddTaskProtonFeedDownAnalysis.C:14
 AddTaskProtonFeedDownAnalysis.C:15
 AddTaskProtonFeedDownAnalysis.C:16
 AddTaskProtonFeedDownAnalysis.C:17
 AddTaskProtonFeedDownAnalysis.C:18
 AddTaskProtonFeedDownAnalysis.C:19
 AddTaskProtonFeedDownAnalysis.C:20
 AddTaskProtonFeedDownAnalysis.C:21
 AddTaskProtonFeedDownAnalysis.C:22
 AddTaskProtonFeedDownAnalysis.C:23
 AddTaskProtonFeedDownAnalysis.C:24
 AddTaskProtonFeedDownAnalysis.C:25
 AddTaskProtonFeedDownAnalysis.C:26
 AddTaskProtonFeedDownAnalysis.C:27
 AddTaskProtonFeedDownAnalysis.C:28
 AddTaskProtonFeedDownAnalysis.C:29
 AddTaskProtonFeedDownAnalysis.C:30
 AddTaskProtonFeedDownAnalysis.C:31
 AddTaskProtonFeedDownAnalysis.C:32
 AddTaskProtonFeedDownAnalysis.C:33
 AddTaskProtonFeedDownAnalysis.C:34
 AddTaskProtonFeedDownAnalysis.C:35
 AddTaskProtonFeedDownAnalysis.C:36
 AddTaskProtonFeedDownAnalysis.C:37
 AddTaskProtonFeedDownAnalysis.C:38
 AddTaskProtonFeedDownAnalysis.C:39
 AddTaskProtonFeedDownAnalysis.C:40
 AddTaskProtonFeedDownAnalysis.C:41
 AddTaskProtonFeedDownAnalysis.C:42
 AddTaskProtonFeedDownAnalysis.C:43
 AddTaskProtonFeedDownAnalysis.C:44