AOD version of main-stream AliAnalysisTaskPerformanceStrange task
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskLambdaK0PbPbAOD.C
1 AliAnalysisTaskPerformanceStrangeAOD ** AddTaskLambdaK0PbPbAOD(const char * outfilename, Int_t &nbin, Int_t binMin, Int_t binMax, Int_t iMCAnalysis = 0) {
2
3
4   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5   if (!mgr) {
6     ::Error("AddTaskPhysicsSelection", "No analysis manager to connect to.");
7     return NULL;
8   }  
9   
10   // Check the analysis type using the event handlers connected to the analysis manager.
11   //==============================================================================
12   if (!mgr->GetInputEventHandler()) {
13     ::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
14     return NULL;
15   }
16   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
17   
18   if (inputDataType != "AOD") {
19     Printf("ERROR! This task can only run on AODs!");
20   }
21
22   // Configure analysis
23   //===========================================================================
24   // Int_t nbMinTPCclusters = 80;
25   // Int_t lCollidingSystems = 1; 
26   // TString fAnalysisType = "ESD";
27     //    TString lAnalysisPidMode  = "withPID";
28     // TString lAnalysisCut      = "no";    
29     //Int_t iMCAnalysis = 0;
30      
31      nbin = binMax - binMin + 1;
32
33   AliAnalysisTaskPerformanceStrangeAOD ** task = new AliAnalysisTaskPerformanceStrangeAOD*[nbin];
34   Int_t itask = -1;
35   for(Int_t ibin = binMin; ibin <= binMax; ibin++){  
36     itask++;
37
38     task[itask] = new AliAnalysisTaskPerformanceStrangeAOD("TaskLambdaK0");
39     cout << "Booking " << ibin << "  "<< itask << " " << task[itask] <<endl;
40    
41     mgr->AddTask(task[itask]);
42  
43    if(ibin == 0){
44       task[itask]->SetCentMin(0);
45       task[itask]->SetCentMax(5);
46     }
47     if(ibin == 1){
48       task[itask]->SetCentMin(5);
49       task[itask]->SetCentMax(10);
50     }
51     if(ibin == 2){
52       task[itask]->SetCentMin(10);
53       task[itask]->SetCentMax(20);
54     }
55     if(ibin == 3){
56       task[itask]->SetCentMin(20);
57       task[itask]->SetCentMax(30);
58     }
59     if(ibin == 4){
60       task[itask]->SetCentMin(30);
61       task[itask]->SetCentMax(40);
62     }
63     if(ibin == 5){
64       task[itask]->SetCentMin(40);
65       task[itask]->SetCentMax(50);
66     }
67     if(ibin == 6){
68       task[itask]->SetCentMin(50);
69       task[itask]->SetCentMax(60);
70     }
71     if(ibin == 7){
72       task[itask]->SetCentMin(60);
73       task[itask]->SetCentMax(70);
74     }
75     if(ibin == 8){
76       task[itask]->SetCentMin(70);
77       task[itask]->SetCentMax(80);
78     }
79     if(ibin == 9){
80       task[itask]->SetCentMin(80);
81       task[itask]->SetCentMax(90);
82     }
83     if(ibin == 10){
84       task[itask]->SetCentMin(0);
85       task[itask]->SetCentMax(90);
86     }
87     TString outfilenameCentr = outfilename;
88     outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));
89
90     AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
91     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("clambdak0Histo_%2.2d",ibin), TList::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
92     //    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("clambdak0Centr_%2.2d",ibin), AliAnalysisCentralitySelector::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
93     //    AliAnalysisDataContainer *output_cuts = mgr->CreateContainer(Form("cuts_%2.2d",ibin), AliESDtrackCuts::Class(), AliAnalysisManager::kOutputContainer, outfilenameCentr.Data()); 
94     mgr->ConnectInput (task[itask], 0, mgr->GetCommonInputContainer());
95     mgr->ConnectOutput(task[itask],1,coutput1);
96     //  mgr->ConnectOutput(task[itask],2,coutput2);
97     // mgr->ConnectOutput(task[itask],3,output_cuts);
98     
99
100   }
101   // TODO:
102   // IO into folders in a file?
103
104   // Set I/O
105
106   return task;
107 }   
108
109