]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliPWG4HighPtQATPConly.cxx
updates to PT QA MC, adding tpc tracks constrained to spd vertex, adding simplified...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliPWG4HighPtQATPConly.cxx
CommitLineData
fdceab34 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16//-----------------------------------------------------------------------
17// This class compares the global reconstruction with the TPConly
18// reconstruction
19// Momentum resolution is stored as function of track cuts and pt.
20// Output: Histograms for different set of cuts
21//-----------------------------------------------------------------------
22// Author : Marta Verweij - UU
23//-----------------------------------------------------------------------
24
67ebd013 25#ifndef ALIPWG4HIGHPTQATPCONLY_CXX
26#define ALIPWG4HIGHPTQATPCONLY_CXX
df943115 27
fdceab34 28#include "AliPWG4HighPtQATPConly.h"
29
b5cc0c6d 30#include "TVector3.h"
31#include <iostream>
fdceab34 32#include "TH1.h"
33#include "TH2.h"
34#include "TH3.h"
35#include "TList.h"
36#include "TChain.h"
37#include "TH3F.h"
f4d11ac8 38#include <Bytes.h>
39#include <TTree.h>
b5cc0c6d 40
fdceab34 41#include "AliAnalysisManager.h"
42#include "AliESDInputHandler.h"
43#include "AliESDtrack.h"
f4d11ac8 44#include "AliESDfriend.h"
45#include "AliESDfriendTrack.h"
fdceab34 46#include "AliESDtrackCuts.h"
47#include "AliExternalTrackParam.h"
df943115 48#include "AliLog.h"
67ebd013 49//#include "AliAnalysisHelperJetTasks.h"
fdceab34 50
f4d11ac8 51#include "TH1I.h"
f4d11ac8 52
fdceab34 53using namespace std; //required for resolving the 'cout' symbol
54
55ClassImp(AliPWG4HighPtQATPConly)
56
57AliPWG4HighPtQATPConly::AliPWG4HighPtQATPConly(): AliAnalysisTask("AliPWG4HighPtQATPConly", ""),
58 fESD(0),
f4d11ac8 59 fESDfriend(0),
36c36a0c 60 fVtx(0x0),
00c1235a 61 fCutType(1),
fdceab34 62 fTrackCuts(0),
63 fTrackCutsITS(0),
b1cd0099 64 fPtMax(100.),
b5cc0c6d 65 fNEventAll(0),
66 fNEventSel(0),
36c36a0c 67 fNEventReject(0),
df943115 68 fPtAll(0),
69 fPtSel(0),
fdceab34 70 fPtAllminPtTPCvsPtAll(0),
9f54dd56 71 fPtAllminPtTPCvsPtAllEtaPos(0),
72 fPtAllminPtTPCvsPtAllEtaNeg(0),
fdceab34 73 fPtAllminPtTPCvsPtAllNPointTPC(0),
74 fPtAllminPtTPCvsPtAllDCAR(0),
75 fPtAllminPtTPCvsPtAllDCAZ(0),
76 fPtAllminPtTPCvsPtAllPhi(0),
77 fPtAllminPtTPCvsPtAllNPointITS(0),
78 fPtAllminPtTPCvsPtAllNSigmaToVertex(0),
79 fPtAllminPtTPCvsPtAllChi2C(0),
80 fPtAllminPtTPCvsPtAllRel1PtUncertainty(0),
f4d11ac8 81 fPtAllminPtTPCvsPtAllChi2PerNClusTPC(0),
82 fPtAllminPtTPCvsPtAllChi2PerNClusITS(0),
9c8dfcb5 83 fPtAllminPtTPCvsNPointTPCPhi(0),
84 fPtAllminPtTPCvsNPointITSPhi(0),
85 fPtAllminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 86 fEtaPhiOutliers(0),
87 fPtSelITSouter(0),
88 fPtITSouterminPtTPCvsPtAll(0),
9f54dd56 89 fPtITSouterminPtTPCvsPtAllEtaPos(0),
90 fPtITSouterminPtTPCvsPtAllEtaNeg(0),
f4d11ac8 91 fPtITSouterminPtTPCvsPtAllNPointTPC(0),
92 fPtITSouterminPtTPCvsPtAllDCAR(0),
93 fPtITSouterminPtTPCvsPtAllDCAZ(0),
94 fPtITSouterminPtTPCvsPtAllPhi(0),
95 fPtITSouterminPtTPCvsPtAllNPointITS(0),
96 fPtITSouterminPtTPCvsPtAllNSigmaToVertex(0),
97 fPtITSouterminPtTPCvsPtAllChi2C(0),
98 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty(0),
99 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC(0),
100 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS(0),
36c36a0c 101 fPtAllminPtTPCvsPtAllITSLayer0(0),
102 fPtAllminPtTPCvsPtAllITSLayer1(0),
103 fPtAllminPtTPCvsPtAllITSLayer2(0),
104 fPtAllminPtTPCvsPtAllITSLayer3(0),
105 fPtAllminPtTPCvsPtAllITSLayer4(0),
106 fPtAllminPtTPCvsPtAllITSLayer5(0),
107 fPtAllminPtTPCvsPtAllNoSPD(0),
108 fPtAllminPtTPCvsPtAllNoSDD(0),
109 fPtAllminPtTPCvsPtAllNoSSD(0),
110 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0(0),
111 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1(0),
112 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2(0),
113 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3(0),
114 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4(0),
115 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5(0),
116 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD(0),
117 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD(0),
118 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD(0),
fdceab34 119 fHistList(0),
120 fPtAllTPC(0),
121 fPtSelTPC(0),
122 fPtSelTPCITS(0),
123 fHistListTPC(0),
124 fPtSelITS(0),
125 fPtITSminPtTPCvsPtITS(0),
9f54dd56 126 fPtITSminPtTPCvsPtITSEtaPos(0),
127 fPtITSminPtTPCvsPtITSEtaNeg(0),
fdceab34 128 fPtITSminPtTPCvsPtITSNPointTPC(0),
129 fPtITSminPtTPCvsPtITSDCAR(0),
130 fPtITSminPtTPCvsPtITSDCAZ(0),
131 fPtITSminPtTPCvsPtITSPhi(0),
132 fPtITSminPtTPCvsPtITSNPointITS(0),
133 fPtITSminPtTPCvsPtITSNSigmaToVertex(0),
134 fPtITSminPtTPCvsPtITSChi2C(0),
135 fPtITSminPtTPCvsPtITSRel1PtUncertainty(0),
f4d11ac8 136 fPtITSminPtTPCvsPtITSChi2PerNClusTPC(0),
137 fPtITSminPtTPCvsPtITSChi2PerNClusITS(0),
9c8dfcb5 138 fPtITSminPtTPCvsNPointTPCPhi(0),
139 fPtITSminPtTPCvsNPointITSPhi(0),
140 fPtITSminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 141 fPtRel1PtUncertaintyChi2PerClusTPC(0),
9b58297c 142 fHistListITS(0)
cc89bb69 143
fdceab34 144{
df943115 145
fdceab34 146}
147//________________________________________________________________________
148AliPWG4HighPtQATPConly::AliPWG4HighPtQATPConly(const char *name):
149 AliAnalysisTask(name, ""),
150 fESD(0),
f4d11ac8 151 fESDfriend(0),
36c36a0c 152 fVtx(0x0),
00c1235a 153 fCutType(1),
fdceab34 154 fTrackCuts(),
155 fTrackCutsITS(),
b1cd0099 156 fPtMax(100.),
b5cc0c6d 157 fNEventAll(0),
158 fNEventSel(0),
36c36a0c 159 fNEventReject(0),
df943115 160 fPtAll(0),
161 fPtSel(0),
fdceab34 162 fPtAllminPtTPCvsPtAll(0),
9f54dd56 163 fPtAllminPtTPCvsPtAllEtaPos(0),
164 fPtAllminPtTPCvsPtAllEtaNeg(0),
fdceab34 165 fPtAllminPtTPCvsPtAllNPointTPC(0),
166 fPtAllminPtTPCvsPtAllDCAR(0),
167 fPtAllminPtTPCvsPtAllDCAZ(0),
168 fPtAllminPtTPCvsPtAllPhi(0),
169 fPtAllminPtTPCvsPtAllNPointITS(0),
170 fPtAllminPtTPCvsPtAllNSigmaToVertex(0),
171 fPtAllminPtTPCvsPtAllChi2C(0),
172 fPtAllminPtTPCvsPtAllRel1PtUncertainty(0),
f4d11ac8 173 fPtAllminPtTPCvsPtAllChi2PerNClusTPC(0),
174 fPtAllminPtTPCvsPtAllChi2PerNClusITS(0),
b35040a5 175 fPtAllminPtTPCvsNPointTPCPhi(0),
176 fPtAllminPtTPCvsNPointITSPhi(0),
177 fPtAllminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 178 fEtaPhiOutliers(0),
179 fPtSelITSouter(0),
180 fPtITSouterminPtTPCvsPtAll(0),
9f54dd56 181 fPtITSouterminPtTPCvsPtAllEtaPos(0),
182 fPtITSouterminPtTPCvsPtAllEtaNeg(0),
f4d11ac8 183 fPtITSouterminPtTPCvsPtAllNPointTPC(0),
184 fPtITSouterminPtTPCvsPtAllDCAR(0),
185 fPtITSouterminPtTPCvsPtAllDCAZ(0),
186 fPtITSouterminPtTPCvsPtAllPhi(0),
187 fPtITSouterminPtTPCvsPtAllNPointITS(0),
188 fPtITSouterminPtTPCvsPtAllNSigmaToVertex(0),
189 fPtITSouterminPtTPCvsPtAllChi2C(0),
190 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty(0),
191 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC(0),
192 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS(0),
36c36a0c 193 fPtAllminPtTPCvsPtAllITSLayer0(0),
194 fPtAllminPtTPCvsPtAllITSLayer1(0),
195 fPtAllminPtTPCvsPtAllITSLayer2(0),
196 fPtAllminPtTPCvsPtAllITSLayer3(0),
197 fPtAllminPtTPCvsPtAllITSLayer4(0),
198 fPtAllminPtTPCvsPtAllITSLayer5(0),
199 fPtAllminPtTPCvsPtAllNoSPD(0),
200 fPtAllminPtTPCvsPtAllNoSDD(0),
201 fPtAllminPtTPCvsPtAllNoSSD(0),
202 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0(0),
203 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1(0),
204 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2(0),
205 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3(0),
206 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4(0),
207 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5(0),
208 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD(0),
209 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD(0),
210 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD(0),
fdceab34 211 fHistList(0),
212 fPtAllTPC(0),
213 fPtSelTPC(0),
214 fPtSelTPCITS(0),
215 fHistListTPC(0),
216 fPtSelITS(0),
217 fPtITSminPtTPCvsPtITS(0),
9f54dd56 218 fPtITSminPtTPCvsPtITSEtaPos(0),
219 fPtITSminPtTPCvsPtITSEtaNeg(0),
fdceab34 220 fPtITSminPtTPCvsPtITSNPointTPC(0),
221 fPtITSminPtTPCvsPtITSDCAR(0),
222 fPtITSminPtTPCvsPtITSDCAZ(0),
223 fPtITSminPtTPCvsPtITSPhi(0),
224 fPtITSminPtTPCvsPtITSNPointITS(0),
225 fPtITSminPtTPCvsPtITSNSigmaToVertex(0),
226 fPtITSminPtTPCvsPtITSChi2C(0),
227 fPtITSminPtTPCvsPtITSRel1PtUncertainty(0),
f4d11ac8 228 fPtITSminPtTPCvsPtITSChi2PerNClusTPC(0),
229 fPtITSminPtTPCvsPtITSChi2PerNClusITS(0),
b35040a5 230 fPtITSminPtTPCvsNPointTPCPhi(0),
231 fPtITSminPtTPCvsNPointITSPhi(0),
232 fPtITSminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 233 fPtRel1PtUncertaintyChi2PerClusTPC(0),
9b58297c 234 fHistListITS(0)
fdceab34 235{
236 //
237 // Constructor. Initialization of Inputs and Outputs
238 //
239 Info("AliPWG4HighPtQATPConly","Calling Constructor");
240 // Input slot #0 works with a TChain ESD
241 DefineInput(0, TChain::Class());
cc89bb69 242 // Output slot #0, #1, #2 and #3 writes into a TList
fdceab34 243 DefineOutput(0, TList::Class());
fdceab34 244 DefineOutput(1, TList::Class());
fdceab34 245 DefineOutput(2, TList::Class());
cc89bb69 246 // Output slot #4 and #5 writes into a AliESDtrackCuts
e4cb1c80 247 DefineOutput(3, AliESDtrackCuts::Class());
cc89bb69 248 DefineOutput(4, AliESDtrackCuts::Class());
cc89bb69 249
250}
251
252//________________________________________________________________________
253void AliPWG4HighPtQATPConly::LocalInit()
254{
e5abcde9 255 //
256 // Only called once at beginning
257 //
9b58297c 258 PostData(3,fTrackCuts);
259 PostData(4,fTrackCutsITS);
df943115 260}
fdceab34 261
262//________________________________________________________________________
263void AliPWG4HighPtQATPConly::ConnectInputData(Option_t *)
264{
265 // Connect ESD here
266 // Called once
df943115 267 AliDebug(2,Form(">> AliPWG4HighPtSpectra::ConnectInputData \n"));
fdceab34 268 TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
269 if (!tree) {
f4d11ac8 270 AliDebug(2,Form( "ERROR: Could not read chain from input slot 0 \n"));
271 return;
272 }
273
274 AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
275
276 if (!esdH) {
277 AliDebug(2,Form("ERROR: Could not get ESDInputHandler"));
278 return;
279 } else
280 fESD = esdH->GetEvent();
71e77a79 281
35ba8832 282 fESDfriend = esdH->GetESDfriend();
36c36a0c 283
fdceab34 284}
285
fdceab34 286//________________________________________________________________________
287void AliPWG4HighPtQATPConly::CreateOutputObjects() {
288 //Create output objects
df943115 289 AliDebug(2,Form(">> AliPWG4HighPtQATPConly::CreateOutputObjects \n"));
290
291 Bool_t oldStatus = TH1::AddDirectoryStatus();
292 TH1::AddDirectory(kFALSE);
293
fdceab34 294 OpenFile(0);
295 fHistList = new TList();
b4691ee7 296 fHistList->SetOwner(kTRUE);
fdceab34 297 OpenFile(1);
298 fHistListTPC = new TList();
b4691ee7 299 fHistListTPC->SetOwner(kTRUE);
fdceab34 300 OpenFile(2);
301 fHistListITS = new TList();
b4691ee7 302 fHistListITS->SetOwner(kTRUE);
65e8ecdd 303
cc89bb69 304 Int_t fgkNPhiBins=18;
fdceab34 305 Float_t kMinPhi = 0.;
306 Float_t kMaxPhi = 2.*TMath::Pi();
cc89bb69 307 Double_t *binsPhi=new Double_t[fgkNPhiBins+1];
308 for(Int_t i=0; i<=fgkNPhiBins; i++) binsPhi[i]=(Double_t)kMinPhi + (kMaxPhi-kMinPhi)/fgkNPhiBins*(Double_t)i ;
fdceab34 309
f4d11ac8 310 Float_t fgkPtMin=0.;
b1cd0099 311 Float_t fgkPtMax=fPtMax;
312
313 Float_t ptBinEdges[2][2];
314 ptBinEdges[0][0] = 10.;
315 ptBinEdges[0][1] = 1.;
316 ptBinEdges[1][0] = 20.;
317 ptBinEdges[1][1] = 2.;
318 Float_t binWidth3 = 5.;
319 if(fPtMax>100.) {
320 ptBinEdges[0][0] = 100.;
321 ptBinEdges[0][1] = 5.;
322 ptBinEdges[1][0] = 300.;
323 ptBinEdges[1][1] = 10.;
324 binWidth3 = 20.;
325 }
cc89bb69 326
327 const Float_t ptmin1 = fgkPtMin;
b1cd0099 328 const Float_t ptmax1 = ptBinEdges[0][0];
cc89bb69 329 const Float_t ptmin2 = ptmax1 ;
b1cd0099 330 const Float_t ptmax2 = ptBinEdges[1][0];
cc89bb69 331 const Float_t ptmin3 = ptmax2 ;
332 const Float_t ptmax3 = fgkPtMax;
b1cd0099 333 const Int_t nbin11 = (int)((ptmax1-ptmin1)/ptBinEdges[0][1]);
334 const Int_t nbin12 = (int)((ptmax2-ptmin2)/ptBinEdges[1][1])+nbin11;
335 const Int_t nbin13 = (int)((ptmax3-ptmin3)/binWidth3)+nbin12;
cc89bb69 336 Int_t fgkNPtBins=nbin13;
337 //Create array with low edges of each bin
338 Double_t *binsPt=new Double_t[fgkNPtBins+1];
339 for(Int_t i=0; i<=fgkNPtBins; i++) {
340 if(i<=nbin11) binsPt[i]=(Double_t)ptmin1 + (ptmax1-ptmin1)/nbin11*(Double_t)i ;
341 if(i<=nbin12 && i>nbin11) binsPt[i]=(Double_t)ptmin2 + (ptmax2-ptmin2)/(nbin12-nbin11)*((Double_t)i-(Double_t)nbin11) ;
342 if(i<=nbin13 && i>nbin12) binsPt[i]=(Double_t)ptmin3 + (ptmax3-ptmin3)/(nbin13-nbin12)*((Double_t)i-(Double_t)nbin12) ;
343 }
344
f4d11ac8 345 Float_t fgkChi2PerClusMin = 0.;
b35040a5 346 Float_t fgkChi2PerClusMax = 4.;
cc89bb69 347 Int_t fgkNChi2PerClusBins = (int)(fgkChi2PerClusMax*10.);
348 Double_t *binsChi2PerClus=new Double_t[fgkNChi2PerClusBins+1];
349 for(Int_t i=0; i<=fgkNChi2PerClusBins; i++) binsChi2PerClus[i]=(Double_t)fgkChi2PerClusMin + (fgkChi2PerClusMax-fgkChi2PerClusMin)/fgkNChi2PerClusBins*(Double_t)i ;
350
351 Int_t fgkNResPtBins=80;
352 Float_t fgkResPtMin = -1.;
353 Float_t fgkResPtMax = 1.;
354 Double_t *binsResPt=new Double_t[fgkNResPtBins+1];
355 for(Int_t i=0; i<=fgkNResPtBins; i++) binsResPt[i]=(Double_t)fgkResPtMin + (fgkResPtMax-fgkResPtMin)/fgkNResPtBins*(Double_t)i ;
356
357 Int_t fgkNEtaBins=20;
358 Float_t fgkEtaMin = -1.;
359 Float_t fgkEtaMax = 1.;
360 Double_t *binsEta=new Double_t[fgkNEtaBins+1];
361 for(Int_t i=0; i<=fgkNEtaBins; i++) binsEta[i]=(Double_t)fgkEtaMin + (fgkEtaMax-fgkEtaMin)/fgkNEtaBins*(Double_t)i ;
362
363 Int_t fgkNNPointTPCBins=80;
364 Float_t fgkNPointTPCMin = 0.5;
365 Float_t fgkNPointTPCMax = 160.5;
366 Double_t *binsNPointTPC=new Double_t[fgkNNPointTPCBins+1];
367 for(Int_t i=0; i<=fgkNNPointTPCBins; i++) binsNPointTPC[i]=(Double_t)fgkNPointTPCMin + (fgkNPointTPCMax-fgkNPointTPCMin)/fgkNNPointTPCBins*(Double_t)i ;
368
cc89bb69 369 Int_t fgkNDCARBins=80;
370 Float_t fgkDCARMin = -0.2;
371 Float_t fgkDCARMax = 0.2;
372 Double_t *binsDCAR=new Double_t[fgkNDCARBins+1];
373 for(Int_t i=0; i<=fgkNDCARBins; i++) binsDCAR[i]=(Double_t)fgkDCARMin + (fgkDCARMax-fgkDCARMin)/fgkNDCARBins*(Double_t)i ;
374
375 Int_t fgkNDCAZBins=80;
376 Float_t fgkDCAZMin = -2.;
377 Float_t fgkDCAZMax = 2.;
378 Double_t *binsDCAZ=new Double_t[fgkNDCAZBins+1];
379 for(Int_t i=0; i<=fgkNDCAZBins; i++) binsDCAZ[i]=(Double_t)fgkDCAZMin + (fgkDCAZMax-fgkDCAZMin)/fgkNDCAZBins*(Double_t)i ;
380
381 Int_t fgkNNPointITSBins=9;
382 Float_t fgkNPointITSMin = -0.5;
383 Float_t fgkNPointITSMax = 8.5;
384 Double_t *binsNPointITS=new Double_t[fgkNNPointITSBins+1];
385 for(Int_t i=0; i<=fgkNNPointITSBins; i++) binsNPointITS[i]=(Double_t)fgkNPointITSMin + (fgkNPointITSMax-fgkNPointITSMin)/fgkNNPointITSBins*(Double_t)i ;
386
387 Int_t fgkNNSigmaToVertexBins=40;
388 Float_t fgkNSigmaToVertexMin = 0.;
389 Float_t fgkNSigmaToVertexMax = 8.;
390 Double_t *binsNSigmaToVertex=new Double_t[fgkNNSigmaToVertexBins+1];
391 for(Int_t i=0; i<=fgkNNSigmaToVertexBins; i++) binsNSigmaToVertex[i]=(Double_t)fgkNSigmaToVertexMin + (fgkNSigmaToVertexMax-fgkNSigmaToVertexMin)/fgkNNSigmaToVertexBins*(Double_t)i ;
392
393 Int_t fgkNChi2CBins=20;
394 Float_t fgkChi2CMin = 0.;
395 Float_t fgkChi2CMax = 10.;
396 Double_t *binsChi2C=new Double_t[fgkNChi2CBins+1];
397 for(Int_t i=0; i<=fgkNChi2CBins; i++) binsChi2C[i]=(Double_t)fgkChi2CMin + (fgkChi2CMax-fgkChi2CMin)/fgkNChi2CBins*(Double_t)i ;
398
399 Int_t fgkNRel1PtUncertaintyBins=30;
400 Float_t fgkRel1PtUncertaintyMin = 0.;
401 Float_t fgkRel1PtUncertaintyMax = 0.3;
402 Double_t *binsRel1PtUncertainty=new Double_t[fgkNRel1PtUncertaintyBins+1];
403 for(Int_t i=0; i<=fgkNRel1PtUncertaintyBins; i++) binsRel1PtUncertainty[i]=(Double_t)fgkRel1PtUncertaintyMin + (fgkRel1PtUncertaintyMax-fgkRel1PtUncertaintyMin)/fgkNRel1PtUncertaintyBins*(Double_t)i ;
fdceab34 404
b5cc0c6d 405 fNEventAll = new TH1F("fNEventAll","NEventAll",1,-0.5,0.5);
406 fHistList->Add(fNEventAll);
407 fNEventSel = new TH1F("fNEventSel","NEvent Selected for analysis",1,-0.5,0.5);
408 fHistList->Add(fNEventSel);
36c36a0c 409 fNEventReject = new TH1F("fNEventReject","Reason events are rejectected for analysis",20,0,20);
410 //Set labels
411 fNEventReject->Fill("noESD",0);
412 fNEventReject->Fill("Trigger",0);
413 fNEventReject->Fill("noMCEvent",0);
414 fNEventReject->Fill("NTracks<2",0);
415 fNEventReject->Fill("noVTX",0);
416 fNEventReject->Fill("VtxStatus",0);
417 fNEventReject->Fill("NCont<2",0);
418 fNEventReject->Fill("ZVTX>10",0);
419 fHistList->Add(fNEventReject);
420
b1cd0099 421 fPtAll = new TH1F("fPtAll","PtAll",fgkNPtBins, binsPt);
fdceab34 422 fHistList->Add(fPtAll);
b1cd0099 423 fPtSel = new TH1F("fPtSel","PtSel",fgkNPtBins, binsPt);
fdceab34 424 fHistList->Add(fPtSel);
65e8ecdd 425
cc89bb69 426 fPtAllminPtTPCvsPtAll = new TH2F("fPtAllminPtTPCvsPtAll","PtAllminPtTPCvsPtAll",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
f4d11ac8 427 fPtAllminPtTPCvsPtAll->SetXTitle("p_{t}^{Global}");
428 fPtAllminPtTPCvsPtAll->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 429 fHistList->Add(fPtAllminPtTPCvsPtAll);
430
cc89bb69 431 fPtAllminPtTPCvsPtAllEtaPos = new TH3F("fPtAllminPtTPCvsPtAllEtaPos","PtAllminPtTPCvsPtAllEtaPos",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 432 fPtAllminPtTPCvsPtAllEtaPos->SetXTitle("p_{t}^{Global}");
433 fPtAllminPtTPCvsPtAllEtaPos->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
cc89bb69 434 fPtAllminPtTPCvsPtAllEtaPos->SetZTitle("#eta");
9f54dd56 435 fHistList->Add(fPtAllminPtTPCvsPtAllEtaPos);
436
cc89bb69 437 fPtAllminPtTPCvsPtAllEtaNeg = new TH3F("fPtAllminPtTPCvsPtAllEtaNeg","PtAllminPtTPCvsPtAllEtaNeg",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 438 fPtAllminPtTPCvsPtAllEtaNeg->SetXTitle("p_{t}^{Global}");
439 fPtAllminPtTPCvsPtAllEtaNeg->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
cc89bb69 440 fPtAllminPtTPCvsPtAllEtaNeg->SetZTitle("#eta");
9f54dd56 441 fHistList->Add(fPtAllminPtTPCvsPtAllEtaNeg);
442
cc89bb69 443 fPtAllminPtTPCvsPtAllNPointTPC = new TH3F("fPtAllminPtTPCvsPtAllNPointTPC","PtAllminPtTPCvsPtAllNPointTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC);
f4d11ac8 444 fPtAllminPtTPCvsPtAllNPointTPC->SetXTitle("p_{t}^{Global}");
445 fPtAllminPtTPCvsPtAllNPointTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 446 fPtAllminPtTPCvsPtAllNPointTPC->SetZTitle("N_{point,TPC}");
447 fHistList->Add(fPtAllminPtTPCvsPtAllNPointTPC);
448
cc89bb69 449 fPtAllminPtTPCvsPtAllDCAR = new TH3F("fPtAllminPtTPCvsPtAllDCAR","PtAllminPtTPCvsPtAllDCAR",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCARBins,binsDCAR);
f4d11ac8 450 fPtAllminPtTPCvsPtAllDCAR->SetXTitle("p_{t}^{Global}");
451 fPtAllminPtTPCvsPtAllDCAR->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 452 fPtAllminPtTPCvsPtAllDCAR->SetZTitle("DCA_{R}");
453 fHistList->Add(fPtAllminPtTPCvsPtAllDCAR);
454
cc89bb69 455 fPtAllminPtTPCvsPtAllDCAZ = new TH3F("fPtAllminPtTPCvsPtAllDCAZ","PtAllminPtTPCvsPtAllDCAZ",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCAZBins,binsDCAZ);
f4d11ac8 456 fPtAllminPtTPCvsPtAllDCAZ->SetXTitle("p_{t}^{Global}");
457 fPtAllminPtTPCvsPtAllDCAZ->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 458 fPtAllminPtTPCvsPtAllDCAZ->SetZTitle("DCA_{Z}");
459 fHistList->Add(fPtAllminPtTPCvsPtAllDCAZ);
460
cc89bb69 461 fPtAllminPtTPCvsPtAllPhi = new TH3F("fPtAllminPtTPCvsPtAllPhi","PtAllminPtTPCvsPtAllPhi",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNPhiBins,binsPhi);
f4d11ac8 462 fPtAllminPtTPCvsPtAllPhi->SetXTitle("p_{t}^{Global}");
463 fPtAllminPtTPCvsPtAllPhi->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 464 fPtAllminPtTPCvsPtAllPhi->SetZTitle("#phi");
465 fHistList->Add(fPtAllminPtTPCvsPtAllPhi);
466
cc89bb69 467 fPtAllminPtTPCvsPtAllNPointITS = new TH3F("fPtAllminPtTPCvsPtAllNPointITS","PtAllminPtTPCvsPtAllNPointITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS);
f4d11ac8 468 fPtAllminPtTPCvsPtAllNPointITS->SetXTitle("p_{t}^{Global}");
469 fPtAllminPtTPCvsPtAllNPointITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
470 fPtAllminPtTPCvsPtAllNPointITS->SetZTitle("N_{point,ITS}");
fdceab34 471 fHistList->Add(fPtAllminPtTPCvsPtAllNPointITS);
472
cc89bb69 473 fPtAllminPtTPCvsPtAllNSigmaToVertex = new TH3F("fPtAllminPtTPCvsPtAllNSigmaToVertex","PtAllminPtTPCvsPtAllNSigmaToVertex",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNSigmaToVertexBins,binsNSigmaToVertex);
f4d11ac8 474 fPtAllminPtTPCvsPtAllNSigmaToVertex->SetXTitle("p_{t}^{Global}");
475 fPtAllminPtTPCvsPtAllNSigmaToVertex->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 476 fPtAllminPtTPCvsPtAllNSigmaToVertex->SetZTitle("N#sigma to vertex");
477 fHistList->Add(fPtAllminPtTPCvsPtAllNSigmaToVertex);
478
cc89bb69 479 fPtAllminPtTPCvsPtAllChi2C = new TH3F("fPtAllminPtTPCvsPtAllChi2C","PtAllminPtTPCvsPtAllChi2C",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2CBins,binsChi2C);
f4d11ac8 480 fPtAllminPtTPCvsPtAllChi2C->SetXTitle("p_{t}^{Global}");
481 fPtAllminPtTPCvsPtAllChi2C->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 482 fPtAllminPtTPCvsPtAllChi2C->SetZTitle("Constrained #chi^{2}");
483 fHistList->Add(fPtAllminPtTPCvsPtAllChi2C);
484
cc89bb69 485 fPtAllminPtTPCvsPtAllRel1PtUncertainty = new TH3F("fPtAllminPtTPCvsPtAllRel1PtUncertainty","PtAllminPtTPCvsPtAllRel1PtUncertainty",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
f4d11ac8 486 fPtAllminPtTPCvsPtAllRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
487 fPtAllminPtTPCvsPtAllRel1PtUncertainty->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 488 fPtAllminPtTPCvsPtAllRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
489 fHistList->Add(fPtAllminPtTPCvsPtAllRel1PtUncertainty);
490
cc89bb69 491 fPtAllminPtTPCvsPtAllChi2PerNClusTPC = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusTPC","PtAllminPtTPCvsPtAllChi2PerNClusTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 492 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
493 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 494 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
f4d11ac8 495 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusTPC);
496
cc89bb69 497 fPtAllminPtTPCvsPtAllChi2PerNClusITS = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITS","PtAllminPtTPCvsPtAllChi2PerNClusITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 498 fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
499 fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 500 fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
f4d11ac8 501 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITS);
502
cc89bb69 503 fPtAllminPtTPCvsNPointTPCPhi = new TH3F("fPtAllminPtTPCvsNPointTPCPhi","PtAllminPtTPCvsNPointTPCPhi",fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC,fgkNPhiBins,binsPhi);
9c8dfcb5 504 fPtAllminPtTPCvsNPointTPCPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
505 fPtAllminPtTPCvsNPointTPCPhi->SetYTitle("N_{point,TPC}");
506 fPtAllminPtTPCvsNPointTPCPhi->SetZTitle("#phi");
507 fHistList->Add(fPtAllminPtTPCvsNPointTPCPhi);
508
cc89bb69 509 fPtAllminPtTPCvsNPointITSPhi = new TH3F("fPtAllminPtTPCvsNPointITSPhi","PtAllminPtTPCvsNPointITSPhi",fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS,fgkNPhiBins,binsPhi);
9c8dfcb5 510 fPtAllminPtTPCvsNPointITSPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
511 fPtAllminPtTPCvsNPointITSPhi->SetYTitle("N_{point,ITS}");
512 fPtAllminPtTPCvsNPointITSPhi->SetZTitle("#phi");
513 fHistList->Add(fPtAllminPtTPCvsNPointITSPhi);
514
cc89bb69 515 fPtAllminPtTPCvsRel1PtUncertaintyPhi = new TH3F("fPtAllminPtTPCvsRel1PtUncertaintyPhi","PtAllminPtTPCvsRel1PtUncertaintyPhi",fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNPhiBins,binsPhi);
9c8dfcb5 516 fPtAllminPtTPCvsRel1PtUncertaintyPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
517 fPtAllminPtTPCvsRel1PtUncertaintyPhi->SetYTitle("Rel1PtUncertainty");
518 fPtAllminPtTPCvsRel1PtUncertaintyPhi->SetZTitle("#phi");
519 fHistList->Add(fPtAllminPtTPCvsRel1PtUncertaintyPhi);
520
cc89bb69 521 fEtaPhiOutliers = new TH2F("fEtaPhiOutliers","PtAllminPtTPCvsPtAll",20, -1.,1.,fgkNPhiBins,binsPhi);
f4d11ac8 522 fEtaPhiOutliers->SetXTitle("#eta");
523 fEtaPhiOutliers->SetYTitle("#phi");
524 fHistList->Add(fEtaPhiOutliers);
525
526 //Global vs ITSouter-TPCinner
cc89bb69 527 fPtSelITSouter = new TH1F("fPtSelITSouter","PtSelITSouter",fgkNPtBins,binsPt);
f4d11ac8 528 fHistList->Add(fPtSelITSouter);
529
cc89bb69 530 fPtITSouterminPtTPCvsPtAll = new TH2F("fPtITSouterminPtTPCvsPtAll","PtITSouterminPtTPCvsPtAll",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
f4d11ac8 531 fPtITSouterminPtTPCvsPtAll->SetXTitle("p_{t}^{Global}");
532 fPtITSouterminPtTPCvsPtAll->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
533 fHistList->Add(fPtITSouterminPtTPCvsPtAll);
534
cc89bb69 535 fPtITSouterminPtTPCvsPtAllEtaPos = new TH3F("fPtITSouterminPtTPCvsPtAllEtaPos","PtITSouterminPtTPCvsPtAllEtaPos",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 536 fPtITSouterminPtTPCvsPtAllEtaPos->SetXTitle("p_{t}^{Global}");
537 fPtITSouterminPtTPCvsPtAllEtaPos->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
538 fHistList->Add(fPtITSouterminPtTPCvsPtAllEtaPos);
539
cc89bb69 540 fPtITSouterminPtTPCvsPtAllEtaNeg = new TH3F("fPtITSouterminPtTPCvsPtAllEtaNeg","PtITSouterminPtTPCvsPtAllEtaNeg",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 541 fPtITSouterminPtTPCvsPtAllEtaNeg->SetXTitle("p_{t}^{Global}");
542 fPtITSouterminPtTPCvsPtAllEtaNeg->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
543 fHistList->Add(fPtITSouterminPtTPCvsPtAllEtaNeg);
544
cc89bb69 545 fPtITSouterminPtTPCvsPtAllNPointTPC = new TH3F("fPtITSouterminPtTPCvsPtAllNPointTPC","PtITSouterminPtTPCvsPtAllNPointTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC);
f4d11ac8 546 fPtITSouterminPtTPCvsPtAllNPointTPC->SetXTitle("p_{t}^{Global}");
547 fPtITSouterminPtTPCvsPtAllNPointTPC->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
548 fPtITSouterminPtTPCvsPtAllNPointTPC->SetZTitle("N_{point,TPC}");
549 fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointTPC);
550
cc89bb69 551 fPtITSouterminPtTPCvsPtAllDCAR = new TH3F("fPtITSouterminPtTPCvsPtAllDCAR","PtITSouterminPtTPCvsPtAllDCAR",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCARBins,binsDCAR);
f4d11ac8 552 fPtITSouterminPtTPCvsPtAllDCAR->SetXTitle("p_{t}^{Global}");
553 fPtITSouterminPtTPCvsPtAllDCAR->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
554 fPtITSouterminPtTPCvsPtAllDCAR->SetZTitle("DCA_{R}");
555 fHistList->Add(fPtITSouterminPtTPCvsPtAllDCAR);
556
cc89bb69 557 fPtITSouterminPtTPCvsPtAllDCAZ = new TH3F("fPtITSouterminPtTPCvsPtAllDCAZ","PtITSouterminPtTPCvsPtAllDCAZ",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCAZBins,binsDCAZ);
f4d11ac8 558 fPtITSouterminPtTPCvsPtAllDCAZ->SetXTitle("p_{t}^{Global}");
559 fPtITSouterminPtTPCvsPtAllDCAZ->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
560 fPtITSouterminPtTPCvsPtAllDCAZ->SetZTitle("DCA_{Z}");
561 fHistList->Add(fPtITSouterminPtTPCvsPtAllDCAZ);
562
cc89bb69 563 fPtITSouterminPtTPCvsPtAllPhi = new TH3F("fPtITSouterminPtTPCvsPtAllPhi","PtITSouterminPtTPCvsPtAllPhi",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNPhiBins,binsPhi);
f4d11ac8 564 fPtITSouterminPtTPCvsPtAllPhi->SetXTitle("p_{t}^{Global}");
565 fPtITSouterminPtTPCvsPtAllPhi->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
566 fPtITSouterminPtTPCvsPtAllPhi->SetZTitle("#phi");
567 fHistList->Add(fPtITSouterminPtTPCvsPtAllPhi);
568
cc89bb69 569 fPtITSouterminPtTPCvsPtAllNPointITS = new TH3F("fPtITSouterminPtTPCvsPtAllNPointITS","PtITSouterminPtTPCvsPtAllNPointITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS);
f4d11ac8 570 fPtITSouterminPtTPCvsPtAllNPointITS->SetXTitle("p_{t}^{Global}");
571 fPtITSouterminPtTPCvsPtAllNPointITS->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
572 fPtITSouterminPtTPCvsPtAllNPointITS->SetZTitle("N_{point,ITS}");
573 fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointITS);
574
cc89bb69 575 fPtITSouterminPtTPCvsPtAllNSigmaToVertex = new TH3F("fPtITSouterminPtTPCvsPtAllNSigmaToVertex","PtITSouterminPtTPCvsPtAllNSigmaToVertex",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNSigmaToVertexBins,binsNSigmaToVertex);
f4d11ac8 576 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->SetXTitle("p_{t}^{Global}");
577 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
578 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->SetZTitle("N#sigma to vertex");
579 fHistList->Add(fPtITSouterminPtTPCvsPtAllNSigmaToVertex);
580
cc89bb69 581 fPtITSouterminPtTPCvsPtAllChi2C = new TH3F("fPtITSouterminPtTPCvsPtAllChi2C","PtITSouterminPtTPCvsPtAllChi2C",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2CBins,binsChi2C);
f4d11ac8 582 fPtITSouterminPtTPCvsPtAllChi2C->SetXTitle("p_{t}^{Global}");
583 fPtITSouterminPtTPCvsPtAllChi2C->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
584 fPtITSouterminPtTPCvsPtAllChi2C->SetZTitle("Constrained #chi^{2}");
585 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2C);
586
cc89bb69 587 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty = new TH3F("fPtITSouterminPtTPCvsPtAllRel1PtUncertainty","PtITSouterminPtTPCvsPtAllRel1PtUncertainty",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
f4d11ac8 588 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
589 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
590 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
591 fHistList->Add(fPtITSouterminPtTPCvsPtAllRel1PtUncertainty);
592
cc89bb69 593 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC","PtITSouterminPtTPCvsPtAllChi2PerNClusTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 594 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
595 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 596 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
f4d11ac8 597 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC);
598
cc89bb69 599 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITS","PtITSouterminPtTPCvsPtAllChi2PerNClusITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 600 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
601 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 602 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
f4d11ac8 603 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITS);
604
605 //As function of ITS layers
36c36a0c 606 fPtAllminPtTPCvsPtAllITSLayer0 = new TH2F("fPtAllminPtTPCvsPtAllITSLayer0","PtglobminPtTPCvsPtAllITSLayer0",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
607 fPtAllminPtTPCvsPtAllITSLayer0->SetXTitle("p_{t}^{Global}");
608 fPtAllminPtTPCvsPtAllITSLayer0->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
609 fHistList->Add(fPtAllminPtTPCvsPtAllITSLayer0);
610
611 fPtAllminPtTPCvsPtAllITSLayer1 = new TH2F("fPtAllminPtTPCvsPtAllITSLayer1","PtglobminPtTPCvsPtAllITSLayer1",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
612 fPtAllminPtTPCvsPtAllITSLayer1->SetXTitle("p_{t}^{Global}");
613 fPtAllminPtTPCvsPtAllITSLayer1->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
614 fHistList->Add(fPtAllminPtTPCvsPtAllITSLayer1);
615
616 fPtAllminPtTPCvsPtAllITSLayer2 = new TH2F("fPtAllminPtTPCvsPtAllITSLayer2","PtglobminPtTPCvsPtAllITSLayer2",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
617 fPtAllminPtTPCvsPtAllITSLayer2->SetXTitle("p_{t}^{Global}");
618 fPtAllminPtTPCvsPtAllITSLayer2->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
619 fHistList->Add(fPtAllminPtTPCvsPtAllITSLayer2);
620
621 fPtAllminPtTPCvsPtAllITSLayer3 = new TH2F("fPtAllminPtTPCvsPtAllITSLayer3","PtglobminPtTPCvsPtAllITSLayer3",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
622 fPtAllminPtTPCvsPtAllITSLayer3->SetXTitle("p_{t}^{Global}");
623 fPtAllminPtTPCvsPtAllITSLayer3->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
624 fHistList->Add(fPtAllminPtTPCvsPtAllITSLayer3);
625
626 fPtAllminPtTPCvsPtAllITSLayer4 = new TH2F("fPtAllminPtTPCvsPtAllITSLayer4","PtglobminPtTPCvsPtAllITSLayer4",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
627 fPtAllminPtTPCvsPtAllITSLayer4->SetXTitle("p_{t}^{Global}");
628 fPtAllminPtTPCvsPtAllITSLayer4->SetYTitle("(1/p_{t}^{glob}-1/p_{t}^{TPCinner})/(1/p_{t}^{glob})");
629 fHistList->Add(fPtAllminPtTPCvsPtAllITSLayer4);
630
631 fPtAllminPtTPCvsPtAllITSLayer5 = new TH2F("fPtAllminPtTPCvsPtAllITSLayer5","PtglobminPtTPCvsPtAllITSLayer5",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
632 fPtAllminPtTPCvsPtAllITSLayer5->SetXTitle("p_{t}^{Global}");
633 fPtAllminPtTPCvsPtAllITSLayer5->SetYTitle("(1/p_{t}^{glob}-1/p_{t}^{TPCinner})/(1/p_{t}^{glob})");
634 fHistList->Add(fPtAllminPtTPCvsPtAllITSLayer5);
635
636 fPtAllminPtTPCvsPtAllNoSPD = new TH2F("fPtAllminPtTPCvsPtAllNoSPD","PtglobminPtTPCvsPtAllNoSPD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
637 fPtAllminPtTPCvsPtAllNoSPD->SetXTitle("p_{t}^{Global}");
638 fPtAllminPtTPCvsPtAllNoSPD->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
639 fHistList->Add(fPtAllminPtTPCvsPtAllNoSPD);
640
641 fPtAllminPtTPCvsPtAllNoSDD = new TH2F("fPtAllminPtTPCvsPtAllNoSDD","PtGlobalminPtTPCvsPtAllNoSDD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
642 fPtAllminPtTPCvsPtAllNoSDD->SetXTitle("p_{t}^{Global}");
643 fPtAllminPtTPCvsPtAllNoSDD->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
644 fHistList->Add(fPtAllminPtTPCvsPtAllNoSDD);
645
646 fPtAllminPtTPCvsPtAllNoSSD = new TH2F("fPtAllminPtTPCvsPtAllNoSSD","PtGlobalminPtTPCvsPtAllNoSSD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
647 fPtAllminPtTPCvsPtAllNoSSD->SetXTitle("p_{t}^{Global}");
648 fPtAllminPtTPCvsPtAllNoSSD->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
649 fHistList->Add(fPtAllminPtTPCvsPtAllNoSSD);
f4d11ac8 650
651 //
36c36a0c 652 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0 = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0","PtGlobalminPtTPCvsPtAllChi2PerNClusITSLayer0",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
653 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0->SetXTitle("p_{t}^{Global}");
654 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
655 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0->SetZTitle("#chi^{2}/NPointITS");
656 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0);
657
658 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1 = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1","PtGlobalminPtTPCvsPtAllChi2PerNClusITSLayer1",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
659 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1->SetXTitle("p_{t}^{Global}");
660 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
661 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1->SetZTitle("#chi^{2}/NPointITS");
662 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1);
663
664 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2 = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2","PtGlobalminPtTPCvsPtAllChi2PerNClusITSLayer2",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
665 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2->SetXTitle("p_{t}^{Global}");
666 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
667 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2->SetZTitle("#chi^{2}/NPointITS");
668 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2);
669
670 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3 = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3","PtGlobalminPtTPCvsPtAllChi2PerNClusITSLayer3",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
671 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3->SetXTitle("p_{t}^{Global}");
672 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
673 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3->SetZTitle("#chi^{2}/NPointITS");
674 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3);
675
676 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4 = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4","PtGlobalminPtTPCvsPtAllChi2PerNClusITSLayer4",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
677 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4->SetXTitle("p_{t}^{Global}");
678 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
679 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4->SetZTitle("#chi^{2}/NPointITS");
680 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4);
681
682 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5 = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5","PtGlobalminPtTPCvsPtAllChi2PerNClusITSLayer5",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
683 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5->SetXTitle("p_{t}^{Global}");
684 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
685 fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5->SetZTitle("#chi^{2}/NPointITS");
686 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5);
687
688 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD","PtGlobalminPtTPCvsPtAllChi2PerNClusITSNoSPD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
689 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD->SetXTitle("p_{t}^{Global}");
690 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
691 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
692 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD);
693
694 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD","PtGlobalminPtTPCvsPtAllChi2PerNClusITSNoSDD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
695 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD->SetXTitle("p_{t}^{Global}");
696 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
697 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
698 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD);
699
700 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD","PtGlobalminPtTPCvsPtAllChi2PerNClusITSNoSSD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
701 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD->SetXTitle("p_{t}^{Global}");
702 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPCinner})/(1/p_{t}^{Global})");
703 fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
704 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD);
f4d11ac8 705
706
fdceab34 707 //ITSrefit
add06ceb 708 fPtSelITS = new TH1F("fPtSelITSrefit","PtSel",fgkNPtBins, binsPt);
fdceab34 709 fHistListITS->Add(fPtSelITS);
710
cc89bb69 711 fPtITSminPtTPCvsPtITS = new TH2F("fPtITSminPtTPCvsPtITS","PtITSminPtTPCvsPtITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
65e8ecdd 712 fPtITSminPtTPCvsPtITS->SetXTitle("p_{t}^{Global}");
713 fPtITSminPtTPCvsPtITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 714 fHistListITS->Add(fPtITSminPtTPCvsPtITS);
9f54dd56 715
cc89bb69 716 fPtITSminPtTPCvsPtITSEtaPos = new TH3F("fPtITSminPtTPCvsPtITSEtaPos","PtITSminPtTPCvsPtITSEtaPos",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 717 fPtITSminPtTPCvsPtITSEtaPos->SetXTitle("p_{t}^{Global}");
718 fPtITSminPtTPCvsPtITSEtaPos->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
719 fHistListITS->Add(fPtITSminPtTPCvsPtITSEtaPos);
720
cc89bb69 721 fPtITSminPtTPCvsPtITSEtaNeg = new TH3F("fPtITSminPtTPCvsPtITSEtaNeg","PtITSminPtTPCvsPtITSEtaNeg",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 722 fPtITSminPtTPCvsPtITSEtaNeg->SetXTitle("p_{t}^{Global}");
723 fPtITSminPtTPCvsPtITSEtaNeg->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
724 fHistListITS->Add(fPtITSminPtTPCvsPtITSEtaNeg);
fdceab34 725
cc89bb69 726 fPtITSminPtTPCvsPtITSNPointTPC = new TH3F("fPtITSminPtTPCvsPtITSNPointTPC","PtITSminPtTPCvsPtITSNPointTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC);
65e8ecdd 727 fPtITSminPtTPCvsPtITSNPointTPC->SetXTitle("p_{t}^{Global}");
728 fPtITSminPtTPCvsPtITSNPointTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 729 fPtITSminPtTPCvsPtITSNPointTPC->SetZTitle("N_{point,TPC}");
730 fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointTPC);
65e8ecdd 731
cc89bb69 732 fPtITSminPtTPCvsPtITSDCAR = new TH3F("fPtITSminPtTPCvsPtITSDCAR","PtITSminPtTPCvsPtITSDCAR",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCARBins,binsDCAR);
65e8ecdd 733 fPtITSminPtTPCvsPtITSDCAR->SetXTitle("p_{t}^{Global}");
734 fPtITSminPtTPCvsPtITSDCAR->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 735 fPtITSminPtTPCvsPtITSDCAR->SetZTitle("DCA_{R}");
736 fHistListITS->Add(fPtITSminPtTPCvsPtITSDCAR);
737
cc89bb69 738 fPtITSminPtTPCvsPtITSDCAZ = new TH3F("fPtITSminPtTPCvsPtITSDCAZ","PtITSminPtTPCvsPtITSDCAZ",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCAZBins,binsDCAZ);
65e8ecdd 739 fPtITSminPtTPCvsPtITSDCAZ->SetXTitle("p_{t}^{Global}");
740 fPtITSminPtTPCvsPtITSDCAZ->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 741 fPtITSminPtTPCvsPtITSDCAZ->SetZTitle("DCA_{Z}");
742 fHistListITS->Add(fPtITSminPtTPCvsPtITSDCAZ);
743
cc89bb69 744 fPtITSminPtTPCvsPtITSPhi = new TH3F("fPtITSminPtTPCvsPtITSPhi","PtITSminPtTPCvsPtITSPhi",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNPhiBins,binsPhi);
65e8ecdd 745 fPtITSminPtTPCvsPtITSPhi->SetXTitle("p_{t}^{Global}");
746 fPtITSminPtTPCvsPtITSPhi->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 747 fPtITSminPtTPCvsPtITSPhi->SetZTitle("#phi");
748 fHistListITS->Add(fPtITSminPtTPCvsPtITSPhi);
749
cc89bb69 750 fPtITSminPtTPCvsPtITSNPointITS = new TH3F("fPtITSminPtTPCvsPtITSNPointITS","PtITSminPtTPCvsPtITSNPointITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS);
65e8ecdd 751 fPtITSminPtTPCvsPtITSNPointITS->SetXTitle("p_{t}^{Global}");
752 fPtITSminPtTPCvsPtITSNPointITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
f4d11ac8 753 fPtITSminPtTPCvsPtITSNPointITS->SetZTitle("N_{point,ITS}");
fdceab34 754 fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointITS);
755
cc89bb69 756 fPtITSminPtTPCvsPtITSNSigmaToVertex = new TH3F("fPtITSminPtTPCvsPtITSNSigmaToVertex","PtITSminPtTPCvsPtITSNSigmaToVertex",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNSigmaToVertexBins,binsNSigmaToVertex);
65e8ecdd 757 fPtITSminPtTPCvsPtITSNSigmaToVertex->SetXTitle("p_{t}^{Global}");
758 fPtITSminPtTPCvsPtITSNSigmaToVertex->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 759 fPtITSminPtTPCvsPtITSNSigmaToVertex->SetZTitle("N#sigma to vertex");
760 fHistListITS->Add(fPtITSminPtTPCvsPtITSNSigmaToVertex);
761
cc89bb69 762 fPtITSminPtTPCvsPtITSChi2C = new TH3F("fPtITSminPtTPCvsPtITSChi2C","PtITSminPtTPCvsPtITSChi2C",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2CBins,binsChi2C);
65e8ecdd 763 fPtITSminPtTPCvsPtITSChi2C->SetXTitle("p_{t}^{Global}");
764 fPtITSminPtTPCvsPtITSChi2C->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 765 fPtITSminPtTPCvsPtITSChi2C->SetZTitle("Constrained #chi^{2}");
766 fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2C);
767
cc89bb69 768 fPtITSminPtTPCvsPtITSRel1PtUncertainty = new TH3F("fPtITSminPtTPCvsPtITSRel1PtUncertainty","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
65e8ecdd 769 fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
770 fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 771 fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
772 fHistListITS->Add(fPtITSminPtTPCvsPtITSRel1PtUncertainty);
773
cc89bb69 774 fPtITSminPtTPCvsPtITSChi2PerNClusTPC = new TH3F("fPtITSminPtTPCvsPtITSChi2PerNClusTPC","PtITSminPtTPCvsPtITSChi2PerNClusTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
65e8ecdd 775 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
776 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
777 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
f4d11ac8 778 fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2PerNClusTPC);
779
cc89bb69 780 fPtITSminPtTPCvsPtITSChi2PerNClusITS = new TH3F("fPtITSminPtTPCvsPtITSChi2PerNClusITS","PtITSminPtTPCvsPtITSChi2PerNClusITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
65e8ecdd 781 fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
782 fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
783 fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
f4d11ac8 784 fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2PerNClusITS);
785
cc89bb69 786 fPtITSminPtTPCvsNPointTPCPhi = new TH3F("fPtITSminPtTPCvsNPointTPCPhi","PtITSminPtTPCvsNPointTPCPhi",fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC,fgkNPhiBins,binsPhi);
9c8dfcb5 787 fPtITSminPtTPCvsNPointTPCPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
788 fPtITSminPtTPCvsNPointTPCPhi->SetYTitle("N_{point,TPC}");
789 fPtITSminPtTPCvsNPointTPCPhi->SetZTitle("#phi");
790 fHistListITS->Add(fPtITSminPtTPCvsNPointTPCPhi);
791
cc89bb69 792 fPtITSminPtTPCvsNPointITSPhi = new TH3F("fPtITSminPtTPCvsNPointITSPhi","PtITSminPtTPCvsNPointITSPhi",fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS,fgkNPhiBins,binsPhi);
9c8dfcb5 793 fPtITSminPtTPCvsNPointITSPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
794 fPtITSminPtTPCvsNPointITSPhi->SetYTitle("N_{point,ITS}");
795 fPtITSminPtTPCvsNPointITSPhi->SetZTitle("#phi");
796 fHistListITS->Add(fPtITSminPtTPCvsNPointITSPhi);
797
cc89bb69 798 fPtITSminPtTPCvsRel1PtUncertaintyPhi = new TH3F("fPtITSminPtTPCvsRel1PtUncertaintyPhi","PtITSminPtTPCvsRel1PtUncertaintyPhi",fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNPhiBins,binsPhi);
9c8dfcb5 799 fPtITSminPtTPCvsRel1PtUncertaintyPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
800 fPtITSminPtTPCvsRel1PtUncertaintyPhi->SetYTitle("Rel1PtUncertainty");
801 fPtITSminPtTPCvsRel1PtUncertaintyPhi->SetZTitle("#phi");
802 fHistListITS->Add(fPtITSminPtTPCvsRel1PtUncertaintyPhi);
803
cc89bb69 804 fPtRel1PtUncertaintyChi2PerClusTPC = new TH3F("fPtRel1PtUncertaintyChi2PerClusTPC","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, binsPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 805 fPtRel1PtUncertaintyChi2PerClusTPC->SetXTitle("p_{t}^{global}");
806 fPtRel1PtUncertaintyChi2PerClusTPC->SetYTitle("Rel1PtUncertainty");
65e8ecdd 807 fPtRel1PtUncertaintyChi2PerClusTPC->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
f4d11ac8 808 fHistListITS->Add(fPtRel1PtUncertaintyChi2PerClusTPC);
809
add06ceb 810 fPtAllTPC = new TH1F("fPtAllTPC","PtAll",fgkNPtBins,binsPt);
fdceab34 811 fHistListTPC->Add(fPtAllTPC);
add06ceb 812 fPtSelTPC = new TH1F("fPtSelTPC","PtSel",fgkNPtBins,binsPt);
fdceab34 813 fHistListTPC->Add(fPtSelTPC);
add06ceb 814 fPtSelTPCITS = new TH1F("fPtSelTPCITS","PtSel",fgkNPtBins,binsPt);
fdceab34 815 fHistListTPC->Add(fPtSelTPCITS);
df943115 816
817 TH1::AddDirectory(oldStatus);
818
e7b49043 819 if(binsPhi) delete [] binsPhi;
820 if(binsChi2PerClus) delete [] binsChi2PerClus;
821 if(binsPt) delete [] binsPt;
822 if(binsResPt) delete [] binsResPt;
823 if(binsNPointTPC) delete [] binsNPointTPC;
e7b49043 824 if(binsDCAR) delete [] binsDCAR;
825 if(binsDCAZ) delete [] binsDCAZ;
826 if(binsNPointITS) delete [] binsNPointITS;
827 if(binsNSigmaToVertex) delete [] binsNSigmaToVertex;
828 if(binsChi2C) delete [] binsChi2C;
829 if(binsEta) delete [] binsEta;
830 if(binsRel1PtUncertainty) delete [] binsRel1PtUncertainty;
831
832
fdceab34 833}
36c36a0c 834
fdceab34 835//________________________________________________________________________
36c36a0c 836Bool_t AliPWG4HighPtQATPConly::SelectEvent() {
837 //
838 // Decide if event should be selected for analysis
839 //
df943115 840
36c36a0c 841 // Checks following requirements:
842 // - fESD available
843 // - trigger info from AliPhysicsSelection
844 // - number of reconstructed tracks > 1
845 // - primary vertex reconstructed
846 // - z-vertex < 10 cm
847
848 Bool_t selectEvent = kTRUE;
b5cc0c6d 849
36c36a0c 850 //fESD object available?
df943115 851 if (!fESD) {
36c36a0c 852 AliDebug(2,Form("ERROR: fInputEvent not available\n"));
853 fNEventReject->Fill("noESD",1);
854 selectEvent = kFALSE;
855 return selectEvent;
fdceab34 856 }
857
36c36a0c 858 //Trigger
bfd58011 859 UInt_t isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
860 if(!(isSelected&AliVEvent::kMB)) { //Select collison candidates
b5cc0c6d 861 AliDebug(2,Form(" Trigger Selection: event REJECTED ... "));
36c36a0c 862 fNEventReject->Fill("Trigger",1);
863 selectEvent = kFALSE;
864 return selectEvent;
67ebd013 865 }
fdceab34 866
36c36a0c 867 //Check if number of reconstructed tracks is larger than 1
868 if(!fESD->GetNumberOfTracks() || fESD->GetNumberOfTracks()<2) {
869 fNEventReject->Fill("NTracks<2",1);
870 selectEvent = kFALSE;
871 return selectEvent;
872 }
873
874 //Check if vertex is reconstructed
875 fVtx = fESD->GetPrimaryVertexSPD();
876
877 if(!fVtx) {
878 fNEventReject->Fill("noVTX",1);
879 selectEvent = kFALSE;
880 return selectEvent;
881 }
882
883 if(!fVtx->GetStatus()) {
884 fNEventReject->Fill("VtxStatus",1);
885 selectEvent = kFALSE;
886 return selectEvent;
887 }
888
fdceab34 889 // Need vertex cut
36c36a0c 890 // TString vtxName(fVtx->GetName());
891 if(fVtx->GetNContributors()<2) {
892 fNEventReject->Fill("NCont<2",1);
893 selectEvent = kFALSE;
894 return selectEvent;
67ebd013 895 }
75946d5d 896
36c36a0c 897 //Check if z-vertex < 10 cm
898 double primVtx[3];
899 fVtx->GetXYZ(primVtx);
67ebd013 900 if(TMath::Sqrt(primVtx[0]*primVtx[0] + primVtx[1]*primVtx[1])>1. || TMath::Abs(primVtx[2]>10.)){
36c36a0c 901 fNEventReject->Fill("ZVTX>10",1);
902 selectEvent = kFALSE;
903 return selectEvent;
cd9a6fa2 904 }
b5cc0c6d 905
36c36a0c 906 AliDebug(2,Form("Vertex title %s, status %d, nCont %d\n",fVtx->GetTitle(), fVtx->GetStatus(), fVtx->GetNContributors()));
907
908 return selectEvent;
909}
910
911//________________________________________________________________________
912void AliPWG4HighPtQATPConly::Exec(Option_t *) {
913 // Main loop
914 // Called for each event
915 AliDebug(2,Form(">> AliPWG4HighPtQATPConly::Exec \n"));
916
917 // All events without selection
918 fNEventAll->Fill(0.);
919
920 if(!SelectEvent()) {
921 // Post output data
cc89bb69 922 PostData(0, fHistList);
923 PostData(1, fHistListTPC);
924 PostData(2, fHistListITS);
cc89bb69 925 return;
926 }
b5cc0c6d 927
928 // Selected events for analysis
929 fNEventSel->Fill(0.);
df943115 930
36c36a0c 931 Int_t nTracks = fESD->GetNumberOfTracks();
932 AliDebug(2,Form("nTracks %d\n", nTracks));
fdceab34 933 for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) {
cc89bb69 934
fdceab34 935 AliESDtrack *track = fESD->GetTrack(iTrack);
936 AliExternalTrackParam *trackTPC = (AliExternalTrackParam *)track->GetTPCInnerParam();
67ebd013 937 if(!track || !trackTPC) continue;
cc89bb69 938
9b58297c 939 const AliESDfriendTrack* constfriendtrack = 0x0;
940 if(fESDfriend && fESDfriend->TestSkipBit()==kFALSE) constfriendtrack = track->GetFriendTrack();
f4d11ac8 941
fdceab34 942 Float_t pt = track->Pt();
943 Float_t ptTPC = trackTPC->Pt();
944 Float_t phi = track->Phi();
9b58297c 945 Float_t dca2D = 0.;
946 Float_t dcaZ = 0.;
947
fdceab34 948 track->GetImpactParameters(dca2D,dcaZ);
9b58297c 949
fdceab34 950 UChar_t itsMap = track->GetITSClusterMap();
951 Int_t nPointITS = 0;
952 for (Int_t i=0; i < 6; i++) {
953 if (itsMap & (1 << i))
954 nPointITS ++;
955 }
9b58297c 956 double mom[3] = {0.,0.,0.};
b5cc0c6d 957 track->GetPxPyPz(mom);
9b58297c 958 double momTPC[3] = {0.,0.,0.};
f4d11ac8 959 trackTPC->GetPxPyPz(momTPC);
fdceab34 960 Float_t nSigmaToVertex = fTrackCuts->GetSigmaToVertex(track);// Calculates the number of sigma to the vertex for a track.
961 Float_t chi2C = track->GetConstrainedChi2();
b5cc0c6d 962 Float_t relUncertainty1Pt = TMath::Sqrt(TMath::Abs(track->GetSigma1Pt2()))*pt;
f4d11ac8 963 Float_t chi2PerClusterTPC = -1.;
964 Float_t nClustersTPC = track->GetTPCNcls();
38ecb6a5 965 if(nClustersTPC>0.) chi2PerClusterTPC = track->GetTPCchi2()/(2.*nClustersTPC-5.);
966 Float_t chi2PerNPointITS = -1.;
967 if(nPointITS>3) chi2PerNPointITS = track->GetITSchi2()/(2.*(float)nPointITS-5.);
fdceab34 968
969 fPtAll->Fill(pt);
970 fPtAllTPC->Fill(ptTPC);
65e8ecdd 971
fdceab34 972 if (fTrackCuts->AcceptTrack(track)) {
fdceab34 973 fPtSel->Fill(pt);
fdceab34 974 fPtSelTPC->Fill(ptTPC);
f4d11ac8 975 if(ptTPC==0. || pt==0.) continue;
fdceab34 976 fPtAllminPtTPCvsPtAll->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
9f54dd56 977
978 if(track->GetSign()>0.) fPtAllminPtTPCvsPtAllEtaPos->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
979 if(track->GetSign()<0.) fPtAllminPtTPCvsPtAllEtaNeg->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
980
65e8ecdd 981 fPtAllminPtTPCvsPtAllNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
fdceab34 982 fPtAllminPtTPCvsPtAllDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
983 fPtAllminPtTPCvsPtAllDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
984 fPtAllminPtTPCvsPtAllPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
985 fPtAllminPtTPCvsPtAllNPointITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nPointITS);
986 fPtAllminPtTPCvsPtAllNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
987 fPtAllminPtTPCvsPtAllChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
988 fPtAllminPtTPCvsPtAllRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
f4d11ac8 989 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
38ecb6a5 990 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
9c8dfcb5 991 fPtAllminPtTPCvsNPointTPCPhi->Fill((1./pt-1./ptTPC)/(1./pt),nClustersTPC,phi);
992 fPtAllminPtTPCvsNPointITSPhi->Fill((1./pt-1./ptTPC)/(1./pt),nPointITS,phi);
993 fPtAllminPtTPCvsRel1PtUncertaintyPhi->Fill((1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt,phi);
36c36a0c 994 fPtRel1PtUncertaintyChi2PerClusTPC->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
9c8dfcb5 995
f4d11ac8 996 if(TMath::Abs((1./pt-1./ptTPC)/(1./pt))>0.8) fEtaPhiOutliers->Fill(track->Eta(),phi);
cc89bb69 997
36c36a0c 998 if(track->HasPointOnITSLayer(0)) {
999 fPtAllminPtTPCvsPtAllITSLayer0->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1000 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1001 }
1002 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
1003 fPtAllminPtTPCvsPtAllITSLayer1->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1004 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1005 }
1006 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && track->HasPointOnITSLayer(2)) {
1007 fPtAllminPtTPCvsPtAllITSLayer2->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1008 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1009 }
1010 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && track->HasPointOnITSLayer(3)) {
1011 fPtAllminPtTPCvsPtAllITSLayer3->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1012 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1013 }
1014 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3) && track->HasPointOnITSLayer(4)) {
1015 fPtAllminPtTPCvsPtAllITSLayer4->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1016 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1017 }
1018 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3) && !track->HasPointOnITSLayer(4) && track->HasPointOnITSLayer(5)) {
1019 fPtAllminPtTPCvsPtAllITSLayer5->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1020 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1021 }
1022
1023 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) {
1024 fPtAllminPtTPCvsPtAllNoSPD->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1025 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1026 }
1027 if(!track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3)) {
1028 fPtAllminPtTPCvsPtAllNoSDD->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1029 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1030 }
1031 if(!track->HasPointOnITSLayer(4) && !track->HasPointOnITSLayer(5)) {
1032 fPtAllminPtTPCvsPtAllNoSSD->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1033 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1034 }
1035
cc89bb69 1036 if (constfriendtrack) {
1037 AliESDfriendTrack friendtrack(*constfriendtrack);
1038 if (friendtrack.GetITSOut()) {
1039 AliExternalTrackParam trackITSouter(*(friendtrack.GetITSOut()));
1040 Float_t ptITSouter = trackITSouter.Pt();
1041 if(ptITSouter==0.) continue;
1042 fPtSelITSouter->Fill(ptITSouter);
1043 fPtITSouterminPtTPCvsPtAll->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter) );
1044
1045 if(trackITSouter.GetSign()>0.) fPtITSouterminPtTPCvsPtAllEtaPos->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),trackITSouter.Eta());
1046 if(trackITSouter.GetSign()<0.) fPtITSouterminPtTPCvsPtAllEtaNeg->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),trackITSouter.Eta());
1047
1048 fPtITSouterminPtTPCvsPtAllNPointTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nClustersTPC);
cc89bb69 1049 fPtITSouterminPtTPCvsPtAllDCAR->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dca2D);
1050 fPtITSouterminPtTPCvsPtAllDCAZ->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dcaZ);
1051 fPtITSouterminPtTPCvsPtAllPhi->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),phi);
1052 fPtITSouterminPtTPCvsPtAllNPointITS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nPointITS);
1053 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nSigmaToVertex);
1054 fPtITSouterminPtTPCvsPtAllChi2C->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2C);
1055 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),relUncertainty1Pt);
1056 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerClusterTPC);
1057 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
36c36a0c 1058
f4d11ac8 1059 }
1060 }
fdceab34 1061 }//fTrackCuts selection
1062
1063
1064 //ITSrefit selection
36c36a0c 1065 if (fTrackCutsITS->AcceptTrack(track) || fTrackCuts->AcceptTrack(track)) {
fdceab34 1066
1067 fPtSelITS->Fill(pt);
1068 fPtSelTPCITS->Fill(ptTPC);
1069 fPtITSminPtTPCvsPtITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
9f54dd56 1070 if(track->GetSign()>0.) fPtITSminPtTPCvsPtITSEtaPos->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
1071 if(track->GetSign()<0.) fPtITSminPtTPCvsPtITSEtaNeg->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
65e8ecdd 1072 fPtITSminPtTPCvsPtITSNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
fdceab34 1073 fPtITSminPtTPCvsPtITSDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
1074 fPtITSminPtTPCvsPtITSDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
10295ac3 1075 fPtITSminPtTPCvsPtITSPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
1076 fPtITSminPtTPCvsPtITSNPointITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nPointITS);
fdceab34 1077 fPtITSminPtTPCvsPtITSNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
1078 fPtITSminPtTPCvsPtITSChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
1079 fPtITSminPtTPCvsPtITSRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
f4d11ac8 1080 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
38ecb6a5 1081 if(nPointITS>3) fPtITSminPtTPCvsPtITSChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
9c8dfcb5 1082 fPtITSminPtTPCvsNPointTPCPhi->Fill((1./pt-1./ptTPC)/(1./pt),nClustersTPC,phi);
1083 fPtITSminPtTPCvsNPointITSPhi->Fill((1./pt-1./ptTPC)/(1./pt),nPointITS,phi);
1084 fPtITSminPtTPCvsRel1PtUncertaintyPhi->Fill((1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt,phi);
65e8ecdd 1085
fdceab34 1086 }//fTrackCutsITS loop
1087
f4d11ac8 1088 }//ESD track loop
fdceab34 1089
1090 // Post output data
1091 PostData(0, fHistList);
1092 PostData(1, fHistListTPC);
1093 PostData(2, fHistListITS);
1094
1095}
65e8ecdd 1096
fdceab34 1097//________________________________________________________________________
1098void AliPWG4HighPtQATPConly::Terminate(Option_t *)
1099{
9b58297c 1100 //
1101 // Terminate
1102 //
fdceab34 1103
fdceab34 1104}
df943115 1105
1106#endif