ROOT logo
AliAnalysisTaskSEITSsaSpectra *AddTaskITSsaSpectra(Int_t optNtuple=0,Int_t readMC=0,Int_t lowcut=-1,Int_t upcut=-1,Int_t hi=0){
  // Creates, configures and attaches to the train the task for pi, K , p spectra
  // with ITS standalone tracks
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskITSsaSpectra", "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("AddTaskITSsaSpectra", "This task requires an input event handler");
    return NULL;
  }   
  
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  if(type.Contains("AOD")){
    ::Error("AddTaskITSsaSpectra", "This task requires to run on ESD");
    return NULL;
  }
  
  // Add MC handler (for kinematics)
  if(readMC){
    AliMCEventHandler* handler = new AliMCEventHandler;
    handler->SetReadTR(kFALSE);
    mgr->SetMCtruthEventHandler(handler);
  }
  // Create and configure the task
  
  AliAnalysisTaskSEITSsaSpectra *taskits = new AliAnalysisTaskSEITSsaSpectra();
  taskits->SelectCollisionCandidates();
  taskits->SetReadMC(readMC);
  taskits->SetFillNtuple(optNtuple);
  
  if(hi)
    {
      Float_t lowcencut=(Float_t)lowcut;
      Float_t upcencut=(Float_t)upcut;
      taskits->SetCentralityCut(lowcencut,upcencut);
      taskits->SetHImode();
    }
  else{
    taskits->SetMultBin(lowcut,upcut);
  }
  
  mgr->AddTask(taskits);
  
  // 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 += ":PWG2SpectraITSsa";
  
  AliAnalysisDataContainer *coutput =0x0;
  AliAnalysisDataContainer *coutputCuts = 0x0;
  if(hi)
    {
      coutput = mgr->CreateContainer(Form("clistITSsaCent%ito%i",lowcut,upcut),
				      TList::Class(),
				      AliAnalysisManager::kOutputContainer,
				      outputFileName );
    }
  else
    {
      coutput = mgr->CreateContainer(Form("clistITSsaMult%ito%i",lowcut,upcut),
				     TList::Class(),
				     AliAnalysisManager::kOutputContainer,
				     outputFileName );    
    }

  coutputCuts = mgr->CreateContainer(Form("DCACutMult%ito%i",lowcut,upcut),
				     TList::Class(),
				     AliAnalysisManager::kParamContainer,
				     outputFileName );
  
  
  mgr->ConnectInput(taskits, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskits, 1, coutput);
  mgr->ConnectOutput(taskits, 2, coutputCuts);
  return taskits;
}   
 AddTaskITSsaSpectra.C:1
 AddTaskITSsaSpectra.C:2
 AddTaskITSsaSpectra.C:3
 AddTaskITSsaSpectra.C:4
 AddTaskITSsaSpectra.C:5
 AddTaskITSsaSpectra.C:6
 AddTaskITSsaSpectra.C:7
 AddTaskITSsaSpectra.C:8
 AddTaskITSsaSpectra.C:9
 AddTaskITSsaSpectra.C:10
 AddTaskITSsaSpectra.C:11
 AddTaskITSsaSpectra.C:12
 AddTaskITSsaSpectra.C:13
 AddTaskITSsaSpectra.C:14
 AddTaskITSsaSpectra.C:15
 AddTaskITSsaSpectra.C:16
 AddTaskITSsaSpectra.C:17
 AddTaskITSsaSpectra.C:18
 AddTaskITSsaSpectra.C:19
 AddTaskITSsaSpectra.C:20
 AddTaskITSsaSpectra.C:21
 AddTaskITSsaSpectra.C:22
 AddTaskITSsaSpectra.C:23
 AddTaskITSsaSpectra.C:24
 AddTaskITSsaSpectra.C:25
 AddTaskITSsaSpectra.C:26
 AddTaskITSsaSpectra.C:27
 AddTaskITSsaSpectra.C:28
 AddTaskITSsaSpectra.C:29
 AddTaskITSsaSpectra.C:30
 AddTaskITSsaSpectra.C:31
 AddTaskITSsaSpectra.C:32
 AddTaskITSsaSpectra.C:33
 AddTaskITSsaSpectra.C:34
 AddTaskITSsaSpectra.C:35
 AddTaskITSsaSpectra.C:36
 AddTaskITSsaSpectra.C:37
 AddTaskITSsaSpectra.C:38
 AddTaskITSsaSpectra.C:39
 AddTaskITSsaSpectra.C:40
 AddTaskITSsaSpectra.C:41
 AddTaskITSsaSpectra.C:42
 AddTaskITSsaSpectra.C:43
 AddTaskITSsaSpectra.C:44
 AddTaskITSsaSpectra.C:45
 AddTaskITSsaSpectra.C:46
 AddTaskITSsaSpectra.C:47
 AddTaskITSsaSpectra.C:48
 AddTaskITSsaSpectra.C:49
 AddTaskITSsaSpectra.C:50
 AddTaskITSsaSpectra.C:51
 AddTaskITSsaSpectra.C:52
 AddTaskITSsaSpectra.C:53
 AddTaskITSsaSpectra.C:54
 AddTaskITSsaSpectra.C:55
 AddTaskITSsaSpectra.C:56
 AddTaskITSsaSpectra.C:57
 AddTaskITSsaSpectra.C:58
 AddTaskITSsaSpectra.C:59
 AddTaskITSsaSpectra.C:60
 AddTaskITSsaSpectra.C:61
 AddTaskITSsaSpectra.C:62
 AddTaskITSsaSpectra.C:63
 AddTaskITSsaSpectra.C:64
 AddTaskITSsaSpectra.C:65
 AddTaskITSsaSpectra.C:66
 AddTaskITSsaSpectra.C:67
 AddTaskITSsaSpectra.C:68
 AddTaskITSsaSpectra.C:69
 AddTaskITSsaSpectra.C:70
 AddTaskITSsaSpectra.C:71
 AddTaskITSsaSpectra.C:72
 AddTaskITSsaSpectra.C:73
 AddTaskITSsaSpectra.C:74
 AddTaskITSsaSpectra.C:75
 AddTaskITSsaSpectra.C:76
 AddTaskITSsaSpectra.C:77
 AddTaskITSsaSpectra.C:78
 AddTaskITSsaSpectra.C:79
 AddTaskITSsaSpectra.C:80
 AddTaskITSsaSpectra.C:81
 AddTaskITSsaSpectra.C:82
 AddTaskITSsaSpectra.C:83
 AddTaskITSsaSpectra.C:84
 AddTaskITSsaSpectra.C:85