ROOT logo
AliAnalysisTaskLK0Spectra * AddTaskLK0Spectra(const char * outfilename, Int_t ibin, Int_t iMCAnalysis = 0,  Bool_t usePID = kTRUE, Bool_t removeInjected = kFALSE) {


  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
  //===========================================================================
  // Int_t nbMinTPCclusters = 80;
  // Int_t lCollidingSystems = 1; 
  // TString fAnalysisType = "ESD";
    //    TString lAnalysisPidMode  = "withPID";
    // TString lAnalysisCut      = "no";    
    //Int_t iMCAnalysis = 0;
     
    AliESDtrackCuts * myTracksCuts = new AliESDtrackCuts();
     myTracksCuts->SetRequireTPCRefit(kTRUE);
     //myTracksCuts->SetRequireITSRefit(kTRUE);
	 myTracksCuts->SetRequireITSRefit(kFALSE);
     // myTracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
     myTracksCuts->SetMinNCrossedRowsTPC(70);
     //myTracksCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
	
	char taskName[18];
	sprintf(taskName,"TaskLambdaK0_%d_%d",ibin,removeInjected);
	
	
  AliAnalysisTaskLK0Spectra * task = new AliAnalysisTaskLK0Spectra(taskName);
 
	task->SetAnalysisType("ESD");
    task->SetAnalysisMC(iMCAnalysis); // 0 or 1
    task->SetCollidingSystems(1); // 0 =pp, 1=AA
    task->SetAnalysisCut("no");
    task->SetQASelector(kFALSE);
    if(usePID) 
		task->SetUsePID("withPID"); // withPID or withoutPID
    else
		task->SetUsePID("withoutPID"); // withPID or withoutPID
	task->SetArmenterosCut(0.2);
    task->SetTrackCuts(myTracksCuts);
	task->SetRemoveInjected(removeInjected);
   
    mgr->AddTask(task);
      
    // set centrality
	
	AliAnalysisCentralitySelector * centrBin = new AliAnalysisCentralitySelector();
	centrBin->SetIsMC(iMCAnalysis);
	centrBin->SetCentralityEstimator("V0M"); // Todo: add parameter to macro?
	
	if(ibin == 0){
    centrBin->SetCentralityBin(0,5);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 1){
    centrBin->SetCentralityBin(5,10);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 2){
    centrBin->SetCentralityBin(10,20);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 3){
    centrBin->SetCentralityBin(20,30);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 4){
    centrBin->SetCentralityBin(30,40);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 5){
    centrBin->SetCentralityBin(40,50);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 6){
    centrBin->SetCentralityBin(50,60);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 7){
    centrBin->SetCentralityBin(60,70);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 8){
    centrBin->SetCentralityBin(70,80);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 9){
    centrBin->SetCentralityBin(80,90);
    task->SetCentralitySelector(centrBin);
    }
	
    if(ibin == 10){
    centrBin->SetCentralityBin(0,90);
    task->SetCentralitySelector(centrBin);
    }
	
    TString outfilenameCentr = outfilename;
    outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));

    AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
   
	sprintf(taskName,"clambdak0Histo_%2.2d_%d",ibin,removeInjected);
	
	AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(taskName, TList::Class(),AliAnalysisManager::kOutputContainer, Form("%s:lambdak0", AliAnalysisManager::GetCommonFileName()));
    //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, 0, mgr->GetCommonInputContainer());
    mgr->ConnectOutput(task,1,coutput1);
    //mgr->ConnectOutput(task,2,coutput2);
    //mgr->ConnectOutput(task,3,output_cuts);
    

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

  // Set I/O

  return task;
}   


 AddTaskLK0Spectra.C:1
 AddTaskLK0Spectra.C:2
 AddTaskLK0Spectra.C:3
 AddTaskLK0Spectra.C:4
 AddTaskLK0Spectra.C:5
 AddTaskLK0Spectra.C:6
 AddTaskLK0Spectra.C:7
 AddTaskLK0Spectra.C:8
 AddTaskLK0Spectra.C:9
 AddTaskLK0Spectra.C:10
 AddTaskLK0Spectra.C:11
 AddTaskLK0Spectra.C:12
 AddTaskLK0Spectra.C:13
 AddTaskLK0Spectra.C:14
 AddTaskLK0Spectra.C:15
 AddTaskLK0Spectra.C:16
 AddTaskLK0Spectra.C:17
 AddTaskLK0Spectra.C:18
 AddTaskLK0Spectra.C:19
 AddTaskLK0Spectra.C:20
 AddTaskLK0Spectra.C:21
 AddTaskLK0Spectra.C:22
 AddTaskLK0Spectra.C:23
 AddTaskLK0Spectra.C:24
 AddTaskLK0Spectra.C:25
 AddTaskLK0Spectra.C:26
 AddTaskLK0Spectra.C:27
 AddTaskLK0Spectra.C:28
 AddTaskLK0Spectra.C:29
 AddTaskLK0Spectra.C:30
 AddTaskLK0Spectra.C:31
 AddTaskLK0Spectra.C:32
 AddTaskLK0Spectra.C:33
 AddTaskLK0Spectra.C:34
 AddTaskLK0Spectra.C:35
 AddTaskLK0Spectra.C:36
 AddTaskLK0Spectra.C:37
 AddTaskLK0Spectra.C:38
 AddTaskLK0Spectra.C:39
 AddTaskLK0Spectra.C:40
 AddTaskLK0Spectra.C:41
 AddTaskLK0Spectra.C:42
 AddTaskLK0Spectra.C:43
 AddTaskLK0Spectra.C:44
 AddTaskLK0Spectra.C:45
 AddTaskLK0Spectra.C:46
 AddTaskLK0Spectra.C:47
 AddTaskLK0Spectra.C:48
 AddTaskLK0Spectra.C:49
 AddTaskLK0Spectra.C:50
 AddTaskLK0Spectra.C:51
 AddTaskLK0Spectra.C:52
 AddTaskLK0Spectra.C:53
 AddTaskLK0Spectra.C:54
 AddTaskLK0Spectra.C:55
 AddTaskLK0Spectra.C:56
 AddTaskLK0Spectra.C:57
 AddTaskLK0Spectra.C:58
 AddTaskLK0Spectra.C:59
 AddTaskLK0Spectra.C:60
 AddTaskLK0Spectra.C:61
 AddTaskLK0Spectra.C:62
 AddTaskLK0Spectra.C:63
 AddTaskLK0Spectra.C:64
 AddTaskLK0Spectra.C:65
 AddTaskLK0Spectra.C:66
 AddTaskLK0Spectra.C:67
 AddTaskLK0Spectra.C:68
 AddTaskLK0Spectra.C:69
 AddTaskLK0Spectra.C:70
 AddTaskLK0Spectra.C:71
 AddTaskLK0Spectra.C:72
 AddTaskLK0Spectra.C:73
 AddTaskLK0Spectra.C:74
 AddTaskLK0Spectra.C:75
 AddTaskLK0Spectra.C:76
 AddTaskLK0Spectra.C:77
 AddTaskLK0Spectra.C:78
 AddTaskLK0Spectra.C:79
 AddTaskLK0Spectra.C:80
 AddTaskLK0Spectra.C:81
 AddTaskLK0Spectra.C:82
 AddTaskLK0Spectra.C:83
 AddTaskLK0Spectra.C:84
 AddTaskLK0Spectra.C:85
 AddTaskLK0Spectra.C:86
 AddTaskLK0Spectra.C:87
 AddTaskLK0Spectra.C:88
 AddTaskLK0Spectra.C:89
 AddTaskLK0Spectra.C:90
 AddTaskLK0Spectra.C:91
 AddTaskLK0Spectra.C:92
 AddTaskLK0Spectra.C:93
 AddTaskLK0Spectra.C:94
 AddTaskLK0Spectra.C:95
 AddTaskLK0Spectra.C:96
 AddTaskLK0Spectra.C:97
 AddTaskLK0Spectra.C:98
 AddTaskLK0Spectra.C:99
 AddTaskLK0Spectra.C:100
 AddTaskLK0Spectra.C:101
 AddTaskLK0Spectra.C:102
 AddTaskLK0Spectra.C:103
 AddTaskLK0Spectra.C:104
 AddTaskLK0Spectra.C:105
 AddTaskLK0Spectra.C:106
 AddTaskLK0Spectra.C:107
 AddTaskLK0Spectra.C:108
 AddTaskLK0Spectra.C:109
 AddTaskLK0Spectra.C:110
 AddTaskLK0Spectra.C:111
 AddTaskLK0Spectra.C:112
 AddTaskLK0Spectra.C:113
 AddTaskLK0Spectra.C:114
 AddTaskLK0Spectra.C:115
 AddTaskLK0Spectra.C:116
 AddTaskLK0Spectra.C:117
 AddTaskLK0Spectra.C:118
 AddTaskLK0Spectra.C:119
 AddTaskLK0Spectra.C:120
 AddTaskLK0Spectra.C:121
 AddTaskLK0Spectra.C:122
 AddTaskLK0Spectra.C:123
 AddTaskLK0Spectra.C:124
 AddTaskLK0Spectra.C:125
 AddTaskLK0Spectra.C:126
 AddTaskLK0Spectra.C:127
 AddTaskLK0Spectra.C:128
 AddTaskLK0Spectra.C:129
 AddTaskLK0Spectra.C:130
 AddTaskLK0Spectra.C:131
 AddTaskLK0Spectra.C:132
 AddTaskLK0Spectra.C:133
 AddTaskLK0Spectra.C:134
 AddTaskLK0Spectra.C:135
 AddTaskLK0Spectra.C:136
 AddTaskLK0Spectra.C:137
 AddTaskLK0Spectra.C:138
 AddTaskLK0Spectra.C:139
 AddTaskLK0Spectra.C:140
 AddTaskLK0Spectra.C:141
 AddTaskLK0Spectra.C:142
 AddTaskLK0Spectra.C:143
 AddTaskLK0Spectra.C:144
 AddTaskLK0Spectra.C:145
 AddTaskLK0Spectra.C:146
 AddTaskLK0Spectra.C:147
 AddTaskLK0Spectra.C:148
 AddTaskLK0Spectra.C:149