]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AddTaskLambdaK0PbPb.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskLambdaK0PbPb.C
CommitLineData
0b33641a 1AliAnalysisTaskPerformanceStrange ** AddTaskLambdaK0PbPb(const char * outfilename = "lambdak0.root", Int_t &nbin=11, Int_t binMin=0, Int_t binMax=10, Int_t isMCAnalysis = 0, Bool_t usePID = 1) {
e886738f 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 != "ESD") {
19 Printf("ERROR! This task can only run on ESDs!");
20 }
21
c66bfacf 22
23 AliAnalysisCentralitySelector * centrSelector = new AliAnalysisCentralitySelector();
24 centrSelector->SetIsMC(isMCAnalysis);
25 centrSelector->SetCentralityEstimator("V0M");
e886738f 26 // Configure analysis
27 //===========================================================================
8797f8b6 28
c66bfacf 29 AliESDtrackCuts * myTracksCuts = new AliESDtrackCuts();
30 myTracksCuts->SetRequireTPCRefit(kTRUE);
31 // myTracksCuts->SetRequireITSRefit(kTRUE);
32 myTracksCuts->SetRequireITSRefit(kFALSE);
33 // myTracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
34 myTracksCuts->SetMinNCrossedRowsTPC(70);
35 myTracksCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
8797f8b6 36
c66bfacf 37 nbin = binMax - binMin + 1;
e886738f 38
39 AliAnalysisTaskPerformanceStrange ** task = new AliAnalysisTaskPerformanceStrange*[nbin];
40 Int_t itask = -1;
41 for(Int_t ibin = binMin; ibin <= binMax; ibin++){
42 itask++;
43
44 task[itask] = new AliAnalysisTaskPerformanceStrange("TaskLambdaK0");
45 cout << "Booking " << ibin << " "<< itask << " " << task[itask] <<endl;
c66bfacf 46
0b33641a 47 task[itask]->SetAnalysisType("ESD");
c66bfacf 48 cout << "1" << endl;
0b33641a 49 task[itask]->SetAnalysisMC(isMCAnalysis); // 0 or 1
c66bfacf 50 cout << "2" << endl;
0b33641a 51 task[itask]->SetCollidingSystems(2); // 0 =pp, 1=AA 2=pA
c66bfacf 52 cout << "3" << endl;
0b33641a 53 task[itask]->SetAnalysisCut("no");
c66bfacf 54 cout << "4" << endl;
0b33641a 55 task[itask]->SetQASelector(kFALSE); // Todo -> put trees for QA
c66bfacf 56 cout<< "5" << endl;
57 if(usePID)
0b33641a 58 task[itask]->SetUsePID("withPID"); // withPID or withoutPID
c66bfacf 59 else
0b33641a 60 task[itask]->SetUsePID("withoutPID"); // withPID or withoutPID
c66bfacf 61 cout << "5" << endl;
8797f8b6 62 task[itask]->SetTrackCuts(myTracksCuts);
0b33641a 63 // task[itask]->SetCollisionCandidates(AliVEvent::kMB | AliVEvent::kMUON);
64 // task[itask]->SelectCollisionCandidates(AliVEvent::kMB);
65 task[itask]->SelectCollisionCandidates(AliVEvent::kINT7 | AliVEvent::kMB);
8797f8b6 66
e886738f 67 mgr->AddTask(task[itask]);
68
69 // // Set Cuts
70 // if (!esdTrackCuts)
71 // {
72 // printf("ERROR: esdTrackCuts could not be created\n");
73 // return;
74 // }
75 // task->SetTrackCuts(esdTrackCuts);
76
77 // set centrality
c66bfacf 78 AliAnalysisCentralitySelector * centrBin = (AliAnalysisCentralitySelector*) centrSelector->Clone();
8797f8b6 79 //centrBin->SetCentralityBin(ibin);
80 if(ibin == 0){
c66bfacf 81 centrBin->SetCentralityBin(0,5);
82 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 83 }
84 if(ibin == 1){
c66bfacf 85 centrBin->SetCentralityBin(5,10);
86 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 87 }
88 if(ibin == 2){
c66bfacf 89 centrBin->SetCentralityBin(10,20);
90 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 91 }
92 if(ibin == 3){
c66bfacf 93 centrBin->SetCentralityBin(20,30);
94 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 95 }
96 if(ibin == 4){
c66bfacf 97 centrBin->SetCentralityBin(30,40);
98 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 99 }
100 if(ibin == 5){
c66bfacf 101 centrBin->SetCentralityBin(40,50);
102 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 103 }
104 if(ibin == 6){
c66bfacf 105 centrBin->SetCentralityBin(50,60);
106 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 107 }
108 if(ibin == 7){
c66bfacf 109 centrBin->SetCentralityBin(60,70);
110 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 111 }
112 if(ibin == 8){
c66bfacf 113 centrBin->SetCentralityBin(70,80);
114 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 115 }
116 if(ibin == 9){
c66bfacf 117 centrBin->SetCentralityBin(80,90);
118 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 119 }
120 if(ibin == 10){
c66bfacf 121 centrBin->SetCentralityBin(0,90);
122 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 123 }
e886738f 124 TString outfilenameCentr = outfilename;
125 outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));
126
127 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
128 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("clambdak0Histo_%2.2d",ibin), TList::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
129 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("clambdak0Centr_%2.2d",ibin), AliAnalysisCentralitySelector::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
8797f8b6 130 AliAnalysisDataContainer *output_cuts = mgr->CreateContainer(Form("cuts_%2.2d",ibin), AliESDtrackCuts::Class(), AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
e886738f 131 mgr->ConnectInput (task[itask], 0, mgr->GetCommonInputContainer());
132 mgr->ConnectOutput(task[itask],1,coutput1);
133 mgr->ConnectOutput(task[itask],2,coutput2);
8797f8b6 134 mgr->ConnectOutput(task[itask],3,output_cuts);
135
e886738f 136
137 }
138 // TODO:
139 // IO into folders in a file?
140
141 // Set I/O
142
143 return task;
144}
145
146