ROOT logo
AliAnalysisTaskUpcPsi2s *AddTaskUpcPsi2s(Bool_t runTree = kTRUE,Bool_t runHist = kTRUE,Bool_t runSyst = kFALSE){

  
  //--- get the current analysis manager ---//
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
      Error("AddTask_UpcPsi2s", "No analysis manager found.");
      return 0;
   }
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler()) {
    Error("AddTask_UpcPsi2s", "This task requires an input event handler");
    return 0;
  }
	
  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  Bool_t isMC;
  if(mgr->GetMCtruthEventHandler()) isMC = kTRUE;
  
  // Create tasks
  AliAnalysisTaskUpcPsi2s *task = new AliAnalysisTaskUpcPsi2s(inputDataType.Data());
  task->SetRunTree(runTree);
  task->SetRunHist(runHist);
  task->SetIsMC(isMC);
  task->SetRunSyst(runSyst);
  mgr->AddTask(task);


   // Create containers for input/output
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput = mgr->CreateContainer("JPsiTree", TTree::Class(), AliAnalysisManager::kOutputContainer,Form("%s:Psi2sCentral", AliAnalysisManager::GetCommonFileName()));
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("Psi2sTree", TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:Psi2sCentral", AliAnalysisManager::GetCommonFileName()));
  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("ListTrig", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:Psi2sCentral", AliAnalysisManager::GetCommonFileName()));
  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("Psi2sListHist", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:Psi2sCentral", AliAnalysisManager::GetCommonFileName()));  

  // Connect input/output
  mgr->ConnectInput(task, 0, cinput);
  mgr->ConnectOutput(task, 1, coutput);
  mgr->ConnectOutput(task, 2, coutput2);
  mgr->ConnectOutput(task, 3, coutput3);
  mgr->ConnectOutput(task, 4, coutput4);

return task;
}
 AddTaskUpcPsi2s.C:1
 AddTaskUpcPsi2s.C:2
 AddTaskUpcPsi2s.C:3
 AddTaskUpcPsi2s.C:4
 AddTaskUpcPsi2s.C:5
 AddTaskUpcPsi2s.C:6
 AddTaskUpcPsi2s.C:7
 AddTaskUpcPsi2s.C:8
 AddTaskUpcPsi2s.C:9
 AddTaskUpcPsi2s.C:10
 AddTaskUpcPsi2s.C:11
 AddTaskUpcPsi2s.C:12
 AddTaskUpcPsi2s.C:13
 AddTaskUpcPsi2s.C:14
 AddTaskUpcPsi2s.C:15
 AddTaskUpcPsi2s.C:16
 AddTaskUpcPsi2s.C:17
 AddTaskUpcPsi2s.C:18
 AddTaskUpcPsi2s.C:19
 AddTaskUpcPsi2s.C:20
 AddTaskUpcPsi2s.C:21
 AddTaskUpcPsi2s.C:22
 AddTaskUpcPsi2s.C:23
 AddTaskUpcPsi2s.C:24
 AddTaskUpcPsi2s.C:25
 AddTaskUpcPsi2s.C:26
 AddTaskUpcPsi2s.C:27
 AddTaskUpcPsi2s.C:28
 AddTaskUpcPsi2s.C:29
 AddTaskUpcPsi2s.C:30
 AddTaskUpcPsi2s.C:31
 AddTaskUpcPsi2s.C:32
 AddTaskUpcPsi2s.C:33
 AddTaskUpcPsi2s.C:34
 AddTaskUpcPsi2s.C:35
 AddTaskUpcPsi2s.C:36
 AddTaskUpcPsi2s.C:37
 AddTaskUpcPsi2s.C:38
 AddTaskUpcPsi2s.C:39
 AddTaskUpcPsi2s.C:40
 AddTaskUpcPsi2s.C:41
 AddTaskUpcPsi2s.C:42
 AddTaskUpcPsi2s.C:43
 AddTaskUpcPsi2s.C:44
 AddTaskUpcPsi2s.C:45
 AddTaskUpcPsi2s.C:46
 AddTaskUpcPsi2s.C:47