]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskPWG4HighPtTrackQA.C
Updates to run with deltas (L. Cunqueiro)
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtTrackQA.C
1 void AddTaskPWG4HighPtTrackQAAll(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0) 
2 {    
3
4   int cent = 10;
5   
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);
20
21   if(isPbPb) {
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);
37     }
38   }
39
40 }
41
42 void AddTaskPWG4HighPtTrackQAAll2011(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0) 
43 {    
44
45   Int_t cent = 10;
46   UInt_t iPhysicsSelectionFlag = AliVEvent::kMB;
47   UInt_t iPhysicsSelectionFlagCentral = AliVEvent::kCentral;
48   UInt_t iPhysicsSelectionFlagSemiCentral = AliVEvent::kSemiCentral;
49
50   
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);
56
57   if(isPbPb) {
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);
64
65       if(cent==0) {
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);
71       }
72       else {
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);
78       }
79
80     }
81   }
82
83 }
84
85 void AddTaskPWG4HighPtTrackQAAllReduced(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0) 
86 {    
87
88   int cent = 10;
89   
90   if(isPbPb) {
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);
97     }
98   }
99
100 }
101
102 void AddTaskPWG4HighPtTrackQAAllReduced2011(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0) 
103 {    
104
105   int cent = 10;
106
107   UInt_t iPhysicsSelectionFlagCentral = AliVEvent::kCentral;
108   UInt_t iPhysicsSelectionFlagSemiCentral = AliVEvent::kSemiCentral;
109
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);
116
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);
123
124 }
125
126
127 void AddTaskPWG4HighPtTrackQAAOD(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 1, Int_t filterBit = 272) 
128 {   
129   AliPWG4HighPtTrackQA *taskTrackQA = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,0,0,0);
130   taskTrackQA->SetFilterMask(filterBit);
131 }
132
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)
134 {
135   /*
136     trackType: 0 = global
137                1 = TPC stand alone
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
150    */
151
152   //Load common track cut class
153   gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/CreateTrackCutsPWG4.C");
154
155   // Creates HighPtTrackQA analysis task and adds it to the analysis manager.
156   
157   // A. Get the pointer to the existing analysis manager via the static access method.
158   //==============================================================================
159   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
160   if (!mgr) {
161     Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
162     return NULL;
163   }  
164
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");
170     return NULL;
171   }  
172
173   // C. Create the task, add it to manager.
174   //===========================================================================
175  
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");
181
182   //Standard Cuts
183   //Set track cuts for global tracks
184   if(trackType==0 && cuts==0) {
185     // tight global tracks - RAA analysis
186     trackCuts = CreateTrackCutsPWG4(1000);
187   }
188   if(trackType==0 && cuts==1) {
189     //Cuts global tracks with ITSrefit requirement and SPDrequirement for jet analysis
190     trackCuts = CreateTrackCutsPWG4(10001006);
191   }
192   if(trackType==0 && cuts==2) {
193     //Cuts global tracks with ITSrefit requirement but without SPD
194     trackCuts = CreateTrackCutsPWG4(10011006);
195   }
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);
202   }
203   if(trackType==7 && cuts==1) {
204     // tight global tracks
205     trackCuts = CreateTrackCutsPWG4(10011006);
206   }
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);
213   }
214
215   if(trackType==1 && cuts==0) {
216     //Set track cuts for TPConly tracks
217     trackCuts = CreateTrackCutsPWG4(2001);
218   }
219   if(trackType==1 && cuts==1) {
220     //Set track cuts for TPConly tracks
221     trackCuts = CreateTrackCutsPWG4(10032001);
222   }
223
224   if(trackType==2 && cuts==0) {
225      //       Set track cuts for TPConly constrained tracks
226     trackCuts = CreateTrackCutsPWG4(2001);
227   }
228   if(trackType==2 && cuts==1) {
229     //Set track cuts for TPConly constrained tracks
230     trackCuts = CreateTrackCutsPWG4(10032001);
231   }
232
233   if(trackType==4 && cuts==0) {
234      //       Set track cuts for TPConly constrained tracks
235     trackCuts = CreateTrackCutsPWG4(2001);
236   }
237   if(trackType==4 && cuts==1) {
238      //       Set track cuts for TPConly constrained tracks
239     trackCuts = CreateTrackCutsPWG4(10032001);
240   }
241   if(trackType==5 || trackType==6) {
242     // tight global tracks
243     trackCuts = CreateTrackCutsPWG4(1003);
244
245     trackCutsReject = CreateTrackCutsPWG4(10021003); 
246     
247     trackCutsTPConly = CreateTrackCutsPWG4(2002);
248
249     trackCutsReject->SetEtaRange(-0.9,0.9);
250     trackCutsReject->SetPtRange(0.15, 1e10);
251     
252     trackCutsTPConly->SetEtaRange(-0.9,0.9);
253     trackCutsTPConly->SetPtRange(0.15, 1e10);
254
255   }
256
257   trackCuts->SetEtaRange(-0.9,0.9);
258   trackCuts->SetPtRange(0.15, 1e10);
259   
260
261
262   //Create the task
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);
268   
269   taskPWG4TrackQA->SetPtMax(100.);
270  
271   if(iAODanalysis)
272     taskPWG4TrackQA->SetDataType(AliPWG4HighPtTrackQA::kAOD);
273   else
274     taskPWG4TrackQA->SetDataType(AliPWG4HighPtTrackQA::kESD);
275
276   if(isPbPb) {
277     taskPWG4TrackQA->SetIsPbPb(kTRUE);
278     taskPWG4TrackQA->SetCentralityClass(centClass);
279   }
280   //  taskPWG4TrackQA->SetSigmaConstrainedMax(5.);
281
282   taskPWG4TrackQA->SelectCollisionCandidates(iPhysicsSelectionFlag);
283
284
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);
295
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);
303
304   mgr->AddTask(taskPWG4TrackQA);
305   mgr->ConnectInput(taskPWG4TrackQA,0,mgr->GetCommonInputContainer());
306   mgr->ConnectOutput(taskPWG4TrackQA,1,cout_histQAtrack);
307
308   // Return task pointer at the end
309   return taskPWG4TrackQA;
310 }