ROOT logo
AliAnalysisTaskPerformanceStrangeAOD ** AddTaskLambdaK0PbPbAOD(const char * outfilename, Int_t &nbin, Int_t binMin, Int_t binMax, Int_t iMCAnalysis = 0) {


  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 != "AOD") {
    Printf("ERROR! This task can only run on AODs!");
  }

  // Configure analysis
  //===========================================================================
  // Int_t nbMinTPCclusters = 80;
  // Int_t lCollidingSystems = 1; 
  // TString fAnalysisType = "ESD";
    //    TString lAnalysisPidMode  = "withPID";
    // TString lAnalysisCut      = "no";    
    //Int_t iMCAnalysis = 0;
     
     nbin = binMax - binMin + 1;

  AliAnalysisTaskPerformanceStrangeAOD ** task = new AliAnalysisTaskPerformanceStrangeAOD*[nbin];
  Int_t itask = -1;
  for(Int_t ibin = binMin; ibin <= binMax; ibin++){  
    itask++;

    task[itask] = new AliAnalysisTaskPerformanceStrangeAOD("TaskLambdaK0");
    cout << "Booking " << ibin << "  "<< itask << " " << task[itask] <<endl;
   
    mgr->AddTask(task[itask]);
 
   if(ibin == 0){
      task[itask]->SetCentMin(0);
      task[itask]->SetCentMax(5);
    }
    if(ibin == 1){
      task[itask]->SetCentMin(5);
      task[itask]->SetCentMax(10);
    }
    if(ibin == 2){
      task[itask]->SetCentMin(10);
      task[itask]->SetCentMax(20);
    }
    if(ibin == 3){
      task[itask]->SetCentMin(20);
      task[itask]->SetCentMax(30);
    }
    if(ibin == 4){
      task[itask]->SetCentMin(30);
      task[itask]->SetCentMax(40);
    }
    if(ibin == 5){
      task[itask]->SetCentMin(40);
      task[itask]->SetCentMax(50);
    }
    if(ibin == 6){
      task[itask]->SetCentMin(50);
      task[itask]->SetCentMax(60);
    }
    if(ibin == 7){
      task[itask]->SetCentMin(60);
      task[itask]->SetCentMax(70);
    }
    if(ibin == 8){
      task[itask]->SetCentMin(70);
      task[itask]->SetCentMax(80);
    }
    if(ibin == 9){
      task[itask]->SetCentMin(80);
      task[itask]->SetCentMax(90);
    }
    if(ibin == 10){
      task[itask]->SetCentMin(0);
      task[itask]->SetCentMax(90);
    }
    TString outfilenameCentr = outfilename;
    outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));

    AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("clambdak0Histo_%2.2d",ibin), TList::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
    //    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("clambdak0Centr_%2.2d",ibin), AliAnalysisCentralitySelector::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
    //    AliAnalysisDataContainer *output_cuts = mgr->CreateContainer(Form("cuts_%2.2d",ibin), AliESDtrackCuts::Class(), AliAnalysisManager::kOutputContainer, outfilenameCentr.Data()); 
    mgr->ConnectInput (task[itask], 0, mgr->GetCommonInputContainer());
    mgr->ConnectOutput(task[itask],1,coutput1);
    //  mgr->ConnectOutput(task[itask],2,coutput2);
    // mgr->ConnectOutput(task[itask],3,output_cuts);
    

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

  // Set I/O

  return task;
}   


 AddTaskLambdaK0PbPbAOD.C:1
 AddTaskLambdaK0PbPbAOD.C:2
 AddTaskLambdaK0PbPbAOD.C:3
 AddTaskLambdaK0PbPbAOD.C:4
 AddTaskLambdaK0PbPbAOD.C:5
 AddTaskLambdaK0PbPbAOD.C:6
 AddTaskLambdaK0PbPbAOD.C:7
 AddTaskLambdaK0PbPbAOD.C:8
 AddTaskLambdaK0PbPbAOD.C:9
 AddTaskLambdaK0PbPbAOD.C:10
 AddTaskLambdaK0PbPbAOD.C:11
 AddTaskLambdaK0PbPbAOD.C:12
 AddTaskLambdaK0PbPbAOD.C:13
 AddTaskLambdaK0PbPbAOD.C:14
 AddTaskLambdaK0PbPbAOD.C:15
 AddTaskLambdaK0PbPbAOD.C:16
 AddTaskLambdaK0PbPbAOD.C:17
 AddTaskLambdaK0PbPbAOD.C:18
 AddTaskLambdaK0PbPbAOD.C:19
 AddTaskLambdaK0PbPbAOD.C:20
 AddTaskLambdaK0PbPbAOD.C:21
 AddTaskLambdaK0PbPbAOD.C:22
 AddTaskLambdaK0PbPbAOD.C:23
 AddTaskLambdaK0PbPbAOD.C:24
 AddTaskLambdaK0PbPbAOD.C:25
 AddTaskLambdaK0PbPbAOD.C:26
 AddTaskLambdaK0PbPbAOD.C:27
 AddTaskLambdaK0PbPbAOD.C:28
 AddTaskLambdaK0PbPbAOD.C:29
 AddTaskLambdaK0PbPbAOD.C:30
 AddTaskLambdaK0PbPbAOD.C:31
 AddTaskLambdaK0PbPbAOD.C:32
 AddTaskLambdaK0PbPbAOD.C:33
 AddTaskLambdaK0PbPbAOD.C:34
 AddTaskLambdaK0PbPbAOD.C:35
 AddTaskLambdaK0PbPbAOD.C:36
 AddTaskLambdaK0PbPbAOD.C:37
 AddTaskLambdaK0PbPbAOD.C:38
 AddTaskLambdaK0PbPbAOD.C:39
 AddTaskLambdaK0PbPbAOD.C:40
 AddTaskLambdaK0PbPbAOD.C:41
 AddTaskLambdaK0PbPbAOD.C:42
 AddTaskLambdaK0PbPbAOD.C:43
 AddTaskLambdaK0PbPbAOD.C:44
 AddTaskLambdaK0PbPbAOD.C:45
 AddTaskLambdaK0PbPbAOD.C:46
 AddTaskLambdaK0PbPbAOD.C:47
 AddTaskLambdaK0PbPbAOD.C:48
 AddTaskLambdaK0PbPbAOD.C:49
 AddTaskLambdaK0PbPbAOD.C:50
 AddTaskLambdaK0PbPbAOD.C:51
 AddTaskLambdaK0PbPbAOD.C:52
 AddTaskLambdaK0PbPbAOD.C:53
 AddTaskLambdaK0PbPbAOD.C:54
 AddTaskLambdaK0PbPbAOD.C:55
 AddTaskLambdaK0PbPbAOD.C:56
 AddTaskLambdaK0PbPbAOD.C:57
 AddTaskLambdaK0PbPbAOD.C:58
 AddTaskLambdaK0PbPbAOD.C:59
 AddTaskLambdaK0PbPbAOD.C:60
 AddTaskLambdaK0PbPbAOD.C:61
 AddTaskLambdaK0PbPbAOD.C:62
 AddTaskLambdaK0PbPbAOD.C:63
 AddTaskLambdaK0PbPbAOD.C:64
 AddTaskLambdaK0PbPbAOD.C:65
 AddTaskLambdaK0PbPbAOD.C:66
 AddTaskLambdaK0PbPbAOD.C:67
 AddTaskLambdaK0PbPbAOD.C:68
 AddTaskLambdaK0PbPbAOD.C:69
 AddTaskLambdaK0PbPbAOD.C:70
 AddTaskLambdaK0PbPbAOD.C:71
 AddTaskLambdaK0PbPbAOD.C:72
 AddTaskLambdaK0PbPbAOD.C:73
 AddTaskLambdaK0PbPbAOD.C:74
 AddTaskLambdaK0PbPbAOD.C:75
 AddTaskLambdaK0PbPbAOD.C:76
 AddTaskLambdaK0PbPbAOD.C:77
 AddTaskLambdaK0PbPbAOD.C:78
 AddTaskLambdaK0PbPbAOD.C:79
 AddTaskLambdaK0PbPbAOD.C:80
 AddTaskLambdaK0PbPbAOD.C:81
 AddTaskLambdaK0PbPbAOD.C:82
 AddTaskLambdaK0PbPbAOD.C:83
 AddTaskLambdaK0PbPbAOD.C:84
 AddTaskLambdaK0PbPbAOD.C:85
 AddTaskLambdaK0PbPbAOD.C:86
 AddTaskLambdaK0PbPbAOD.C:87
 AddTaskLambdaK0PbPbAOD.C:88
 AddTaskLambdaK0PbPbAOD.C:89
 AddTaskLambdaK0PbPbAOD.C:90
 AddTaskLambdaK0PbPbAOD.C:91
 AddTaskLambdaK0PbPbAOD.C:92
 AddTaskLambdaK0PbPbAOD.C:93
 AddTaskLambdaK0PbPbAOD.C:94
 AddTaskLambdaK0PbPbAOD.C:95
 AddTaskLambdaK0PbPbAOD.C:96
 AddTaskLambdaK0PbPbAOD.C:97
 AddTaskLambdaK0PbPbAOD.C:98
 AddTaskLambdaK0PbPbAOD.C:99
 AddTaskLambdaK0PbPbAOD.C:100
 AddTaskLambdaK0PbPbAOD.C:101
 AddTaskLambdaK0PbPbAOD.C:102
 AddTaskLambdaK0PbPbAOD.C:103
 AddTaskLambdaK0PbPbAOD.C:104
 AddTaskLambdaK0PbPbAOD.C:105
 AddTaskLambdaK0PbPbAOD.C:106
 AddTaskLambdaK0PbPbAOD.C:107
 AddTaskLambdaK0PbPbAOD.C:108
 AddTaskLambdaK0PbPbAOD.C:109
 AddTaskLambdaK0PbPbAOD.C:110