1 void AddTaskPWG4HighPtTrackQAAll(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0)
6 AliPWG4HighPtTrackQA *taskTrackQA00cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0);
7 AliPWG4HighPtTrackQA *taskTrackQA01cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1);
8 // AliPWG4HighPtTrackQA *taskTrackQA02cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,2);
9 // AliPWG4HighPtTrackQA *taskTrackQA10cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,1,0);
10 // AliPWG4HighPtTrackQA *taskTrackQA11cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,1,1);
11 // AliPWG4HighPtTrackQA *taskTrackQA20cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,0);
12 // AliPWG4HighPtTrackQA *taskTrackQA21cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,1);
13 // AliPWG4HighPtTrackQA *taskTrackQA40cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,4,0);
14 // AliPWG4HighPtTrackQA *taskTrackQA41cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,4,1);
15 // AliPWG4HighPtTrackQA *taskTrackQA50cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,5,0);
16 // AliPWG4HighPtTrackQA *taskTrackQA60cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,6,0);
17 AliPWG4HighPtTrackQA *taskTrackQA70cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0);
18 AliPWG4HighPtTrackQA *taskTrackQA71cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1);
19 AliPWG4HighPtTrackQA *taskTrackQA72cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2);
22 for(cent=0; cent<4; cent++) {
23 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0);
24 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1);
25 // AliPWG4HighPtTrackQA *taskTrackQA02 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,2);
26 // AliPWG4HighPtTrackQA *taskTrackQA10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,1,0);
27 // AliPWG4HighPtTrackQA *taskTrackQA11 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,1,1);
28 // AliPWG4HighPtTrackQA *taskTrackQA20 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,0);
29 // AliPWG4HighPtTrackQA *taskTrackQA21 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,1);
30 // AliPWG4HighPtTrackQA *taskTrackQA40 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,4,0);
31 // AliPWG4HighPtTrackQA *taskTrackQA41 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,4,1);
32 // AliPWG4HighPtTrackQA *taskTrackQA50 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,5,0);
33 // AliPWG4HighPtTrackQA *taskTrackQA60 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,6,0);
34 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0);
35 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1);
36 AliPWG4HighPtTrackQA *taskTrackQA72 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2);
42 void AddTaskPWG4HighPtTrackQAAll2011(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0)
46 UInt_t iPhysicsSelectionFlag = AliVEvent::kMB;
47 UInt_t iPhysicsSelectionFlagCentral = AliVEvent::kCentral;
48 UInt_t iPhysicsSelectionFlagSemiCentral = AliVEvent::kSemiCentral;
51 AliPWG4HighPtTrackQA *taskTrackQA00cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlag);
52 AliPWG4HighPtTrackQA *taskTrackQA01cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1,iPhysicsSelectionFlag);
53 AliPWG4HighPtTrackQA *taskTrackQA70cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0,iPhysicsSelectionFlag);
54 AliPWG4HighPtTrackQA *taskTrackQA71cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1,iPhysicsSelectionFlag);
55 AliPWG4HighPtTrackQA *taskTrackQA72cent10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2,iPhysicsSelectionFlag);
58 for(cent=0; cent<4; cent++) {
59 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlag);
60 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1,iPhysicsSelectionFlag);
61 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0,iPhysicsSelectionFlag);
62 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1,iPhysicsSelectionFlag);
63 AliPWG4HighPtTrackQA *taskTrackQA72 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2,iPhysicsSelectionFlag);
66 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagCentral);
67 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1,iPhysicsSelectionFlagCentral);
68 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0,iPhysicsSelectionFlagCentral);
69 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1,iPhysicsSelectionFlagCentral);
70 AliPWG4HighPtTrackQA *taskTrackQA72 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2,iPhysicsSelectionFlagCentral);
73 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagSemiCentral);
74 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1,iPhysicsSelectionFlagSemiCentral);
75 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0,iPhysicsSelectionFlagSemiCentral);
76 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1,iPhysicsSelectionFlagSemiCentral);
77 AliPWG4HighPtTrackQA *taskTrackQA72 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2,iPhysicsSelectionFlagSemiCentral);
85 void AddTaskPWG4HighPtTrackQAAllReduced(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0)
91 for(cent=0; cent<4; cent++) {
92 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0);
93 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1);
94 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0);
95 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1);
96 AliPWG4HighPtTrackQA *taskTrackQA72 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2);
102 void AddTaskPWG4HighPtTrackQAAllReduced2011(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0)
107 UInt_t iPhysicsSelectionFlagCentral = AliVEvent::kCentral;
108 UInt_t iPhysicsSelectionFlagSemiCentral = AliVEvent::kSemiCentral;
110 AliPWG4HighPtTrackQA *taskTrackQA00C = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagCentral);
111 AliPWG4HighPtTrackQA *taskTrackQA01C = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1,iPhysicsSelectionFlagCentral);
112 AliPWG4HighPtTrackQA *taskTrackQA21C = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,1,iPhysicsSelectionFlagCentral);
113 AliPWG4HighPtTrackQA *taskTrackQA70C = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0,iPhysicsSelectionFlagCentral);
114 AliPWG4HighPtTrackQA *taskTrackQA71C = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1,iPhysicsSelectionFlagCentral);
115 AliPWG4HighPtTrackQA *taskTrackQA72C = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2,iPhysicsSelectionFlagCentral);
117 AliPWG4HighPtTrackQA *taskTrackQA00SC = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagSemiCentral);
118 AliPWG4HighPtTrackQA *taskTrackQA01SC = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1,iPhysicsSelectionFlagSemiCentral);
119 AliPWG4HighPtTrackQA *taskTrackQA21SC = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,1,iPhysicsSelectionFlagSemiCentral);
120 AliPWG4HighPtTrackQA *taskTrackQA70SC = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0,iPhysicsSelectionFlagSemiCentral);
121 AliPWG4HighPtTrackQA *taskTrackQA71SC = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1,iPhysicsSelectionFlagSemiCentral);
122 AliPWG4HighPtTrackQA *taskTrackQA72SC = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2,iPhysicsSelectionFlagSemiCentral);
127 void AddTaskPWG4HighPtTrackQAAOD(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 1, Int_t filterBit = 272)
129 AliPWG4HighPtTrackQA *taskTrackQA = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,0,0,0);
130 taskTrackQA->SetFilterMask(filterBit);
133 AliPWG4HighPtTrackQA* AddTaskPWG4HighPtTrackQA(char *prodType = "LHC10e14",Bool_t isPbPb=kTRUE,Int_t iAODanalysis = 0, Int_t centClass = 0, Int_t trackType = 0, Int_t cuts = 0, UInt_t iPhysicsSelectionFlag = AliVEvent::kMB)
136 trackType: 0 = global
138 2 = TPC stand alone constrained to SPD vertex
139 4 = TPC stand alone constrained to SPD vertex with QA track selection on global tracks
140 5 = Hybrid tracks: constrained TPConly for which no tight ITS is available
141 6 = Hybrid tracks: constrained loose global for which no tight ITS is available
142 cuts: 0 (global) = standard ITSTPC2010 a la RAA analysis
143 1 (global) = ITSrefit, no SPD requirements -> standard for jet analysis
144 2 (global) = ITSrefit + no hits in SPD
145 3 (global) = standard ITS tight cuts with nCrossed rows cut for hybrid tracks
146 0 (TPC) = standard TPC + NClusters>70
147 1 (TPC) = standard TPC + NClusters>0 --> to study new TPC QA recommendations
148 0 (hybrid 5) = constrained TPConly for which no tight ITS is available
149 0 (hybrid 6) = constrained loose global for which no tight ITS is available
152 //Load common track cut class
153 gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/CreateTrackCutsPWG4.C");
155 // Creates HighPtTrackQA analysis task and adds it to the analysis manager.
157 // A. Get the pointer to the existing analysis manager via the static access method.
158 //==============================================================================
159 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
161 Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
165 // B. Check the analysis type using the event handlers connected to the analysis
166 // manager. The availability of MC handler can also be checked here.
167 //==============================================================================
168 if (!mgr->GetInputEventHandler()) {
169 ::Error("AddPWG4TaskHighPtTrackQA", "This task requires an input event handler");
173 // C. Create the task, add it to manager.
174 //===========================================================================
176 //CREATE THE CUTS -----------------------------------------------
177 //Use AliESDtrackCuts
178 AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
179 AliESDtrackCuts *trackCutsReject = 0x0;
180 AliESDtrackCuts *trackCutsTPConly = new AliESDtrackCuts("AliESDtrackCutsTPConly","TPC only Cuts");
183 //Set track cuts for global tracks
184 if(trackType==0 && cuts==0) {
185 // tight global tracks - RAA analysis
186 trackCuts = CreateTrackCutsPWG4(1000);
188 if(trackType==0 && cuts==1) {
189 //Cuts global tracks with ITSrefit requirement and SPDrequirement for jet analysis
190 trackCuts = CreateTrackCutsPWG4(10001006);
192 if(trackType==0 && cuts==2) {
193 //Cuts global tracks with ITSrefit requirement but without SPD
194 trackCuts = CreateTrackCutsPWG4(10011006);
196 if(trackType==7 && cuts==0) {
197 // tight global tracks
198 trackCuts = CreateTrackCutsPWG4(10041006);
199 trackCutsReject = CreateTrackCutsPWG4(1006);
200 trackCutsReject->SetEtaRange(-0.9,0.9);
201 trackCutsReject->SetPtRange(0.15, 1e10);
203 if(trackType==7 && cuts==1) {
204 // tight global tracks
205 trackCuts = CreateTrackCutsPWG4(10011006);
207 if(trackType==7 && cuts==2) {
208 // no requirements on SPD and ITSrefit failed
209 trackCuts = CreateTrackCutsPWG4(10041006); //no ITSrefit requirement filter 256
210 trackCutsReject = CreateTrackCutsPWG4(10001006); //ITSrefit requirement filter 16
211 trackCutsReject->SetEtaRange(-0.9,0.9);
212 trackCutsReject->SetPtRange(0.15, 1e10);
215 if(trackType==1 && cuts==0) {
216 //Set track cuts for TPConly tracks
217 trackCuts = CreateTrackCutsPWG4(2001);
219 if(trackType==1 && cuts==1) {
220 //Set track cuts for TPConly tracks
221 trackCuts = CreateTrackCutsPWG4(10032001);
224 if(trackType==2 && cuts==0) {
225 // Set track cuts for TPConly constrained tracks
226 trackCuts = CreateTrackCutsPWG4(2001);
228 if(trackType==2 && cuts==1) {
229 //Set track cuts for TPConly constrained tracks
230 trackCuts = CreateTrackCutsPWG4(10032001);
233 if(trackType==4 && cuts==0) {
234 // Set track cuts for TPConly constrained tracks
235 trackCuts = CreateTrackCutsPWG4(2001);
237 if(trackType==4 && cuts==1) {
238 // Set track cuts for TPConly constrained tracks
239 trackCuts = CreateTrackCutsPWG4(10032001);
241 if(trackType==5 || trackType==6) {
242 // tight global tracks
243 trackCuts = CreateTrackCutsPWG4(1003);
245 trackCutsReject = CreateTrackCutsPWG4(10021003);
247 trackCutsTPConly = CreateTrackCutsPWG4(2002);
249 trackCutsReject->SetEtaRange(-0.9,0.9);
250 trackCutsReject->SetPtRange(0.15, 1e10);
252 trackCutsTPConly->SetEtaRange(-0.9,0.9);
253 trackCutsTPConly->SetPtRange(0.15, 1e10);
257 trackCuts->SetEtaRange(-0.9,0.9);
258 trackCuts->SetPtRange(0.15, 1e10);
263 AliPWG4HighPtTrackQA *taskPWG4TrackQA = new AliPWG4HighPtTrackQA(Form("AliPWG4HighPtTrackQACent%dTrack%dCuts%dPSF%d",centClass,trackType,cuts,iPhysicsSelectionFlag));
264 taskPWG4TrackQA->SetTrackType(trackType);
265 taskPWG4TrackQA->SetCuts(trackCuts);
266 taskPWG4TrackQA->SetCutsITSLoose(trackCutsReject);
267 taskPWG4TrackQA->SetCutsTPConly(trackCutsTPConly);
269 taskPWG4TrackQA->SetPtMax(100.);
272 taskPWG4TrackQA->SetDataType(AliPWG4HighPtTrackQA::kAOD);
274 taskPWG4TrackQA->SetDataType(AliPWG4HighPtTrackQA::kESD);
277 taskPWG4TrackQA->SetIsPbPb(kTRUE);
278 taskPWG4TrackQA->SetCentralityClass(centClass);
280 // taskPWG4TrackQA->SetSigmaConstrainedMax(5.);
282 taskPWG4TrackQA->SelectCollisionCandidates(iPhysicsSelectionFlag);
285 // E. Create ONLY the output containers for the data produced by the task.
286 // Get and connect other common input/output containers via the manager as below
287 //==============================================================================
288 TString outputfile = AliAnalysisManager::GetCommonFileName();
289 if(iPhysicsSelectionFlag == AliVEvent::kMB)
290 outputfile += Form(":PWG4_HighPtTrackQACent%dTrackType%dCuts%d",centClass,trackType,cuts);
291 else if(iPhysicsSelectionFlag == AliVEvent::kCentral)
292 outputfile += Form(":PWG4_HighPtTrackQACent%dTrackType%dCuts%dkCentral",centClass,trackType,cuts);
293 else if(iPhysicsSelectionFlag == AliVEvent::kSemiCentral)
294 outputfile += Form(":PWG4_HighPtTrackQACent%dTrackType%dCuts%dkSemiCentral",centClass,trackType,cuts);
296 AliAnalysisDataContainer *cout_histQAtrack = 0x0;
297 if(iPhysicsSelectionFlag == AliVEvent::kMB)
298 cout_histQAtrack = mgr->CreateContainer(Form("qa_histsQAtrackCent%dType%dcuts%d",centClass,trackType,cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
299 else if(iPhysicsSelectionFlag == AliVEvent::kCentral)
300 cout_histQAtrack = mgr->CreateContainer(Form("qa_histsQAtrackCent%dType%dcuts%dkCentral",centClass,trackType,cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
301 else if(iPhysicsSelectionFlag == AliVEvent::kSemiCentral)
302 cout_histQAtrack = mgr->CreateContainer(Form("qa_histsQAtrackCent%dType%dcuts%dkSemiCentral",centClass,trackType,cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
304 mgr->AddTask(taskPWG4TrackQA);
305 mgr->ConnectInput(taskPWG4TrackQA,0,mgr->GetCommonInputContainer());
306 mgr->ConnectOutput(taskPWG4TrackQA,1,cout_histQAtrack);
308 // Return task pointer at the end
309 return taskPWG4TrackQA;