]>
Commit | Line | Data |
---|---|---|
0b33641a | 1 | AliAnalysisTaskPerformanceStrange ** 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 |