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);
21 for(cent=0; cent<4; cent++) {
22 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0);
23 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1);
24 AliPWG4HighPtTrackQA *taskTrackQA02 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,2);
25 // AliPWG4HighPtTrackQA *taskTrackQA10 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,1,0);
26 // AliPWG4HighPtTrackQA *taskTrackQA11 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,1,1);
27 // AliPWG4HighPtTrackQA *taskTrackQA20 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,0);
28 // AliPWG4HighPtTrackQA *taskTrackQA21 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,2,1);
29 AliPWG4HighPtTrackQA *taskTrackQA40 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,4,0);
30 // AliPWG4HighPtTrackQA *taskTrackQA41 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,4,1);
31 // AliPWG4HighPtTrackQA *taskTrackQA50 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,5,0);
32 // AliPWG4HighPtTrackQA *taskTrackQA60 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,6,0);
33 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0);
34 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1);
40 void AddTaskPWG4HighPtTrackQAAllReduced(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0)
46 for(cent=0; cent<4; cent++) {
47 AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0);
48 AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1);
49 AliPWG4HighPtTrackQA *taskTrackQA02 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,2);
50 AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0);
51 AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1);
57 void AddTaskPWG4HighPtTrackQAAOD(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 1, Int_t filterBit)
59 AliPWG4HighPtTrackQA *taskTrackQA = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,0,0,0);
60 taskTrackQA->SetFilterMask(filterBit);
63 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)
68 2 = TPC stand alone constrained to SPD vertex
69 4 = TPC stand alone constrained to SPD vertex with QA track selection on global tracks
70 5 = Hybrid tracks: constrained TPConly for which no tight ITS is available
71 6 = Hybrid tracks: constrained loose global for which no tight ITS is available
72 cuts: 0 (global) = standard ITSTPC2010 a la RAA analysis
73 1 (global) = ITSrefit, no SPD requirements -> standard for jet analysis
74 2 (global) = ITSrefit + no hits in SPD
75 3 (global) = standard ITS tight cuts with nCrossed rows cut for hybrid tracks
76 0 (TPC) = standard TPC + NClusters>70
77 1 (TPC) = standard TPC + NClusters>0 --> to study new TPC QA recommendations
78 0 (hybrid 5) = constrained TPConly for which no tight ITS is available
79 0 (hybrid 6) = constrained loose global for which no tight ITS is available
82 //Load common track cut class
83 gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/CreateTrackCutsPWG4.C");
85 // Creates HighPtTrackQA analysis task and adds it to the analysis manager.
87 // A. Get the pointer to the existing analysis manager via the static access method.
88 //==============================================================================
89 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
91 Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
95 // B. Check the analysis type using the event handlers connected to the analysis
96 // manager. The availability of MC handler can also be checked here.
97 //==============================================================================
98 if (!mgr->GetInputEventHandler()) {
99 ::Error("AddPWG4TaskHighPtTrackQA", "This task requires an input event handler");
103 // C. Create the task, add it to manager.
104 //===========================================================================
106 //CREATE THE CUTS -----------------------------------------------
107 //Use AliESDtrackCuts
108 AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
109 AliESDtrackCuts *trackCutsITSLoose = 0x0;
110 AliESDtrackCuts *trackCutsTPConly = new AliESDtrackCuts("AliESDtrackCutsTPConly","TPC only Cuts");
113 //Set track cuts for global tracks
114 if(trackType==0 && cuts==0) {
115 // tight global tracks - RAA analysis
116 trackCuts = CreateTrackCutsPWG4(1000);
118 if(trackType==0 && cuts==1) {
119 //Cuts global tracks with ITSrefit requirement and SPDrequirement for jet analysis
120 trackCuts = CreateTrackCutsPWG4(10001001);
122 if(trackType==0 && cuts==2) {
123 //Cuts global tracks with ITSrefit requirement but without SPD
124 trackCuts = CreateTrackCutsPWG4(10011001);
126 if(trackType==7 && cuts==0) {
127 // tight global tracks
128 trackCuts = CreateTrackCutsPWG4(10041001);
129 trackCutsITSLoose = CreateTrackCutsPWG4(1001);
131 if(trackType==7 && cuts==1) {
132 // tight global tracks
133 trackCuts = CreateTrackCutsPWG4(10011001);
136 if(trackType==1 && cuts==0) {
137 //Set track cuts for TPConly tracks
138 trackCuts = CreateTrackCutsPWG4(2001);
140 if(trackType==1 && cuts==1) {
141 //Set track cuts for TPConly tracks
142 trackCuts = CreateTrackCutsPWG4(10032001);
145 if(trackType==2 && cuts==0) {
146 // Set track cuts for TPConly constrained tracks
147 trackCuts = CreateTrackCutsPWG4(2001);
149 if(trackType==2 && cuts==1) {
150 //Set track cuts for TPConly constrained tracks
151 trackCuts = CreateTrackCutsPWG4(10032001);
154 if(trackType==4 && cuts==0) {
155 // Set track cuts for TPConly constrained tracks
156 trackCuts = CreateTrackCutsPWG4(2001);
158 if(trackType==4 && cuts==1) {
159 // Set track cuts for TPConly constrained tracks
160 trackCuts = CreateTrackCutsPWG4(10032001);
162 if(trackType==5 || trackType==6) {
163 // tight global tracks
164 trackCuts = CreateTrackCutsPWG4(1003);
166 trackCutsITSLoose = CreateTrackCutsPWG4(10021003);
168 trackCutsTPConly = CreateTrackCutsPWG4(2002);
170 trackCutsITSLoose->SetEtaRange(-0.9,0.9);
171 trackCutsITSLoose->SetPtRange(0.15, 1e10);
173 trackCutsTPConly->SetEtaRange(-0.9,0.9);
174 trackCutsTPConly->SetPtRange(0.15, 1e10);
178 trackCuts->SetEtaRange(-0.9,0.9);
179 trackCuts->SetPtRange(0.15, 1e10);
184 AliPWG4HighPtTrackQA *taskPWG4TrackQA = new AliPWG4HighPtTrackQA(Form("AliPWG4HighPtTrackQACent%dTrack%dCuts%d",centClass,trackType,cuts));
185 taskPWG4TrackQA->SetTrackType(trackType);
186 taskPWG4TrackQA->SetCuts(trackCuts);
187 taskPWG4TrackQA->SetCutsITSLoose(trackCutsITSLoose);
188 taskPWG4TrackQA->SetCutsTPConly(trackCutsTPConly);
190 taskPWG4TrackQA->SetPtMax(100.);
193 taskPWG4TrackQA->SetDataType(AliPWG4HighPtTrackQA::kAOD);
195 taskPWG4TrackQA->SetDataType(AliPWG4HighPtTrackQA::kESD);
198 taskPWG4TrackQA->SetIsPbPb(kTRUE);
199 taskPWG4TrackQA->SetCentralityClass(centClass);
201 // taskPWG4TrackQA->SetSigmaConstrainedMax(5.);
203 taskPWG4TrackQA->SelectCollisionCandidates();
206 // E. Create ONLY the output containers for the data produced by the task.
207 // Get and connect other common input/output containers via the manager as below
208 //==============================================================================
210 TString outputfile = AliAnalysisManager::GetCommonFileName();
211 outputfile += Form(":PWG4_HighPtTrackQACent%dTrackType%dCuts%d",centClass,trackType,cuts);
213 AliAnalysisDataContainer *cout_histQAtrack = mgr->CreateContainer(Form("qa_histsQAtrackCent%dType%dcuts%d",centClass,trackType,cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
215 mgr->AddTask(taskPWG4TrackQA);
216 mgr->ConnectInput(taskPWG4TrackQA,0,mgr->GetCommonInputContainer());
217 mgr->ConnectOutput(taskPWG4TrackQA,1,cout_histQAtrack);
219 // Return task pointer at the end
220 return taskPWG4TrackQA;