ROOT logo
AliAnalysisTaskMultPbTracks * AddTaskMultPbPbTracks(const char * outfilename, AliESDtrackCuts * esdTrackCuts = 0, AliAnalysisMultPbCentralitySelector * centr)
{
  // TODO: add some parameters to set the centrality for this task, and maybe the name of the task
  // TODO: shall I use the same file and different dirs for the different centralities?

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskPhysicsSelection", "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("AddTaskPhysicsSelection", "This task requires an input event handler");
    return NULL;
  }
  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  
  if (inputDataType != "ESD") {
    Printf("ERROR! This task can only run on ESDs!");
  }

  // Configure analysis
  //===========================================================================
    
    

  AliAnalysisTaskMultPbTracks *task = new AliAnalysisTaskMultPbTracks("TaskMultPbTracks");
  mgr->AddTask(task);
  
  // Set Cuts
  if (!esdTrackCuts)
    {
      printf("ERROR: esdTrackCuts could not be created\n");
      return;
    }  
  task->SetTrackCuts(esdTrackCuts);

  // set centrality
  task->SetCentralitySelector(centr);

  // TODO:
  // IO into folders in a file?

  // Set I/O
  AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("cmultPbTracksOutHM",
							    AliAnalysisMultPbTrackHistoManager::Class(),
							    AliAnalysisManager::kOutputContainer,
							    outfilename);
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("cmultPbTracksOutCT",
							    AliESDtrackCuts::Class(),
							    AliAnalysisManager::kOutputContainer,
							    outfilename);
  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("cmultPbTracksOutCM",
  							    AliAnalysisMultPbCentralitySelector::Class(),
  							    AliAnalysisManager::kOutputContainer,
  							    outfilename);

  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(task,1,coutput1);
  mgr->ConnectOutput(task,2,coutput2);
  mgr->ConnectOutput(task,3,coutput3);

  return task;
}   
 AddTaskMultPbPbTracks.C:1
 AddTaskMultPbPbTracks.C:2
 AddTaskMultPbPbTracks.C:3
 AddTaskMultPbPbTracks.C:4
 AddTaskMultPbPbTracks.C:5
 AddTaskMultPbPbTracks.C:6
 AddTaskMultPbPbTracks.C:7
 AddTaskMultPbPbTracks.C:8
 AddTaskMultPbPbTracks.C:9
 AddTaskMultPbPbTracks.C:10
 AddTaskMultPbPbTracks.C:11
 AddTaskMultPbPbTracks.C:12
 AddTaskMultPbPbTracks.C:13
 AddTaskMultPbPbTracks.C:14
 AddTaskMultPbPbTracks.C:15
 AddTaskMultPbPbTracks.C:16
 AddTaskMultPbPbTracks.C:17
 AddTaskMultPbPbTracks.C:18
 AddTaskMultPbPbTracks.C:19
 AddTaskMultPbPbTracks.C:20
 AddTaskMultPbPbTracks.C:21
 AddTaskMultPbPbTracks.C:22
 AddTaskMultPbPbTracks.C:23
 AddTaskMultPbPbTracks.C:24
 AddTaskMultPbPbTracks.C:25
 AddTaskMultPbPbTracks.C:26
 AddTaskMultPbPbTracks.C:27
 AddTaskMultPbPbTracks.C:28
 AddTaskMultPbPbTracks.C:29
 AddTaskMultPbPbTracks.C:30
 AddTaskMultPbPbTracks.C:31
 AddTaskMultPbPbTracks.C:32
 AddTaskMultPbPbTracks.C:33
 AddTaskMultPbPbTracks.C:34
 AddTaskMultPbPbTracks.C:35
 AddTaskMultPbPbTracks.C:36
 AddTaskMultPbPbTracks.C:37
 AddTaskMultPbPbTracks.C:38
 AddTaskMultPbPbTracks.C:39
 AddTaskMultPbPbTracks.C:40
 AddTaskMultPbPbTracks.C:41
 AddTaskMultPbPbTracks.C:42
 AddTaskMultPbPbTracks.C:43
 AddTaskMultPbPbTracks.C:44
 AddTaskMultPbPbTracks.C:45
 AddTaskMultPbPbTracks.C:46
 AddTaskMultPbPbTracks.C:47
 AddTaskMultPbPbTracks.C:48
 AddTaskMultPbPbTracks.C:49
 AddTaskMultPbPbTracks.C:50
 AddTaskMultPbPbTracks.C:51
 AddTaskMultPbPbTracks.C:52
 AddTaskMultPbPbTracks.C:53
 AddTaskMultPbPbTracks.C:54
 AddTaskMultPbPbTracks.C:55
 AddTaskMultPbPbTracks.C:56
 AddTaskMultPbPbTracks.C:57
 AddTaskMultPbPbTracks.C:58
 AddTaskMultPbPbTracks.C:59
 AddTaskMultPbPbTracks.C:60
 AddTaskMultPbPbTracks.C:61
 AddTaskMultPbPbTracks.C:62
 AddTaskMultPbPbTracks.C:63
 AddTaskMultPbPbTracks.C:64
 AddTaskMultPbPbTracks.C:65
 AddTaskMultPbPbTracks.C:66
 AddTaskMultPbPbTracks.C:67
 AddTaskMultPbPbTracks.C:68