]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/AliPWG4HighPtQATPConly.cxx
Added data driven estimate for leading particle efficiency + coverity fixes (M. Verweij)
[u/mrichter/AliRoot.git] / PWGJE / 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
11245558 819 PostData(0, fHistList);
820 PostData(1, fHistListTPC);
821 PostData(2, fHistListITS);
822
e7b49043 823 if(binsPhi) delete [] binsPhi;
824 if(binsChi2PerClus) delete [] binsChi2PerClus;
825 if(binsPt) delete [] binsPt;
826 if(binsResPt) delete [] binsResPt;
827 if(binsNPointTPC) delete [] binsNPointTPC;
e7b49043 828 if(binsDCAR) delete [] binsDCAR;
829 if(binsDCAZ) delete [] binsDCAZ;
830 if(binsNPointITS) delete [] binsNPointITS;
831 if(binsNSigmaToVertex) delete [] binsNSigmaToVertex;
832 if(binsChi2C) delete [] binsChi2C;
833 if(binsEta) delete [] binsEta;
834 if(binsRel1PtUncertainty) delete [] binsRel1PtUncertainty;
835
836
fdceab34 837}
36c36a0c 838
fdceab34 839//________________________________________________________________________
36c36a0c 840Bool_t AliPWG4HighPtQATPConly::SelectEvent() {
841 //
842 // Decide if event should be selected for analysis
843 //
df943115 844
36c36a0c 845 // Checks following requirements:
846 // - fESD available
847 // - trigger info from AliPhysicsSelection
848 // - number of reconstructed tracks > 1
849 // - primary vertex reconstructed
850 // - z-vertex < 10 cm
851
852 Bool_t selectEvent = kTRUE;
b5cc0c6d 853
36c36a0c 854 //fESD object available?
df943115 855 if (!fESD) {
36c36a0c 856 AliDebug(2,Form("ERROR: fInputEvent not available\n"));
857 fNEventReject->Fill("noESD",1);
858 selectEvent = kFALSE;
859 return selectEvent;
fdceab34 860 }
861
36c36a0c 862 //Trigger
bfd58011 863 UInt_t isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
864 if(!(isSelected&AliVEvent::kMB)) { //Select collison candidates
b5cc0c6d 865 AliDebug(2,Form(" Trigger Selection: event REJECTED ... "));
36c36a0c 866 fNEventReject->Fill("Trigger",1);
867 selectEvent = kFALSE;
868 return selectEvent;
67ebd013 869 }
fdceab34 870
36c36a0c 871 //Check if number of reconstructed tracks is larger than 1
872 if(!fESD->GetNumberOfTracks() || fESD->GetNumberOfTracks()<2) {
873 fNEventReject->Fill("NTracks<2",1);
874 selectEvent = kFALSE;
875 return selectEvent;
876 }
877
878 //Check if vertex is reconstructed
879 fVtx = fESD->GetPrimaryVertexSPD();
880
881 if(!fVtx) {
882 fNEventReject->Fill("noVTX",1);
883 selectEvent = kFALSE;
884 return selectEvent;
885 }
886
887 if(!fVtx->GetStatus()) {
888 fNEventReject->Fill("VtxStatus",1);
889 selectEvent = kFALSE;
890 return selectEvent;
891 }
892
fdceab34 893 // Need vertex cut
36c36a0c 894 // TString vtxName(fVtx->GetName());
895 if(fVtx->GetNContributors()<2) {
896 fNEventReject->Fill("NCont<2",1);
897 selectEvent = kFALSE;
898 return selectEvent;
67ebd013 899 }
75946d5d 900
36c36a0c 901 //Check if z-vertex < 10 cm
902 double primVtx[3];
903 fVtx->GetXYZ(primVtx);
67ebd013 904 if(TMath::Sqrt(primVtx[0]*primVtx[0] + primVtx[1]*primVtx[1])>1. || TMath::Abs(primVtx[2]>10.)){
36c36a0c 905 fNEventReject->Fill("ZVTX>10",1);
906 selectEvent = kFALSE;
907 return selectEvent;
cd9a6fa2 908 }
b5cc0c6d 909
36c36a0c 910 AliDebug(2,Form("Vertex title %s, status %d, nCont %d\n",fVtx->GetTitle(), fVtx->GetStatus(), fVtx->GetNContributors()));
911
912 return selectEvent;
913}
914
915//________________________________________________________________________
916void AliPWG4HighPtQATPConly::Exec(Option_t *) {
917 // Main loop
918 // Called for each event
919 AliDebug(2,Form(">> AliPWG4HighPtQATPConly::Exec \n"));
920
921 // All events without selection
922 fNEventAll->Fill(0.);
923
924 if(!SelectEvent()) {
925 // Post output data
cc89bb69 926 PostData(0, fHistList);
927 PostData(1, fHistListTPC);
928 PostData(2, fHistListITS);
cc89bb69 929 return;
930 }
b5cc0c6d 931
932 // Selected events for analysis
933 fNEventSel->Fill(0.);
df943115 934
36c36a0c 935 Int_t nTracks = fESD->GetNumberOfTracks();
936 AliDebug(2,Form("nTracks %d\n", nTracks));
fdceab34 937 for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) {
cc89bb69 938
fdceab34 939 AliESDtrack *track = fESD->GetTrack(iTrack);
15067ff2 940 if(!track) continue;
b85b355c 941 AliExternalTrackParam *trackTPC = (AliExternalTrackParam *)track->GetTPCInnerParam();
15067ff2 942 if(!trackTPC) continue;
9b58297c 943 const AliESDfriendTrack* constfriendtrack = 0x0;
944 if(fESDfriend && fESDfriend->TestSkipBit()==kFALSE) constfriendtrack = track->GetFriendTrack();
f4d11ac8 945
fdceab34 946 Float_t pt = track->Pt();
947 Float_t ptTPC = trackTPC->Pt();
948 Float_t phi = track->Phi();
9b58297c 949 Float_t dca2D = 0.;
950 Float_t dcaZ = 0.;
951
fdceab34 952 track->GetImpactParameters(dca2D,dcaZ);
9b58297c 953
fdceab34 954 UChar_t itsMap = track->GetITSClusterMap();
955 Int_t nPointITS = 0;
956 for (Int_t i=0; i < 6; i++) {
957 if (itsMap & (1 << i))
958 nPointITS ++;
959 }
9b58297c 960 double mom[3] = {0.,0.,0.};
b5cc0c6d 961 track->GetPxPyPz(mom);
9b58297c 962 double momTPC[3] = {0.,0.,0.};
f4d11ac8 963 trackTPC->GetPxPyPz(momTPC);
fdceab34 964 Float_t nSigmaToVertex = fTrackCuts->GetSigmaToVertex(track);// Calculates the number of sigma to the vertex for a track.
965 Float_t chi2C = track->GetConstrainedChi2();
b5cc0c6d 966 Float_t relUncertainty1Pt = TMath::Sqrt(TMath::Abs(track->GetSigma1Pt2()))*pt;
f4d11ac8 967 Float_t chi2PerClusterTPC = -1.;
968 Float_t nClustersTPC = track->GetTPCNcls();
38ecb6a5 969 if(nClustersTPC>0.) chi2PerClusterTPC = track->GetTPCchi2()/(2.*nClustersTPC-5.);
970 Float_t chi2PerNPointITS = -1.;
971 if(nPointITS>3) chi2PerNPointITS = track->GetITSchi2()/(2.*(float)nPointITS-5.);
fdceab34 972
973 fPtAll->Fill(pt);
974 fPtAllTPC->Fill(ptTPC);
65e8ecdd 975
fdceab34 976 if (fTrackCuts->AcceptTrack(track)) {
fdceab34 977 fPtSel->Fill(pt);
fdceab34 978 fPtSelTPC->Fill(ptTPC);
f4d11ac8 979 if(ptTPC==0. || pt==0.) continue;
fdceab34 980 fPtAllminPtTPCvsPtAll->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
9f54dd56 981
982 if(track->GetSign()>0.) fPtAllminPtTPCvsPtAllEtaPos->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
983 if(track->GetSign()<0.) fPtAllminPtTPCvsPtAllEtaNeg->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
984
65e8ecdd 985 fPtAllminPtTPCvsPtAllNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
fdceab34 986 fPtAllminPtTPCvsPtAllDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
987 fPtAllminPtTPCvsPtAllDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
988 fPtAllminPtTPCvsPtAllPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
989 fPtAllminPtTPCvsPtAllNPointITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nPointITS);
990 fPtAllminPtTPCvsPtAllNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
991 fPtAllminPtTPCvsPtAllChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
992 fPtAllminPtTPCvsPtAllRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
f4d11ac8 993 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
38ecb6a5 994 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
9c8dfcb5 995 fPtAllminPtTPCvsNPointTPCPhi->Fill((1./pt-1./ptTPC)/(1./pt),nClustersTPC,phi);
996 fPtAllminPtTPCvsNPointITSPhi->Fill((1./pt-1./ptTPC)/(1./pt),nPointITS,phi);
997 fPtAllminPtTPCvsRel1PtUncertaintyPhi->Fill((1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt,phi);
36c36a0c 998 fPtRel1PtUncertaintyChi2PerClusTPC->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
9c8dfcb5 999
f4d11ac8 1000 if(TMath::Abs((1./pt-1./ptTPC)/(1./pt))>0.8) fEtaPhiOutliers->Fill(track->Eta(),phi);
cc89bb69 1001
36c36a0c 1002 if(track->HasPointOnITSLayer(0)) {
1003 fPtAllminPtTPCvsPtAllITSLayer0->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1004 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1005 }
1006 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
1007 fPtAllminPtTPCvsPtAllITSLayer1->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1008 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1009 }
1010 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && track->HasPointOnITSLayer(2)) {
1011 fPtAllminPtTPCvsPtAllITSLayer2->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1012 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1013 }
1014 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && track->HasPointOnITSLayer(3)) {
1015 fPtAllminPtTPCvsPtAllITSLayer3->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1016 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3->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)) {
1019 fPtAllminPtTPCvsPtAllITSLayer4->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1020 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1021 }
1022 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3) && !track->HasPointOnITSLayer(4) && track->HasPointOnITSLayer(5)) {
1023 fPtAllminPtTPCvsPtAllITSLayer5->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1024 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1025 }
1026
1027 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) {
1028 fPtAllminPtTPCvsPtAllNoSPD->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1029 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1030 }
1031 if(!track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3)) {
1032 fPtAllminPtTPCvsPtAllNoSDD->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1033 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1034 }
1035 if(!track->HasPointOnITSLayer(4) && !track->HasPointOnITSLayer(5)) {
1036 fPtAllminPtTPCvsPtAllNoSSD->Fill(pt,(1./pt-1./ptTPC)/(1./pt));
1037 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
1038 }
1039
cc89bb69 1040 if (constfriendtrack) {
1041 AliESDfriendTrack friendtrack(*constfriendtrack);
1042 if (friendtrack.GetITSOut()) {
1043 AliExternalTrackParam trackITSouter(*(friendtrack.GetITSOut()));
1044 Float_t ptITSouter = trackITSouter.Pt();
1045 if(ptITSouter==0.) continue;
1046 fPtSelITSouter->Fill(ptITSouter);
1047 fPtITSouterminPtTPCvsPtAll->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter) );
1048
1049 if(trackITSouter.GetSign()>0.) fPtITSouterminPtTPCvsPtAllEtaPos->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),trackITSouter.Eta());
1050 if(trackITSouter.GetSign()<0.) fPtITSouterminPtTPCvsPtAllEtaNeg->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),trackITSouter.Eta());
1051
1052 fPtITSouterminPtTPCvsPtAllNPointTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nClustersTPC);
cc89bb69 1053 fPtITSouterminPtTPCvsPtAllDCAR->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dca2D);
1054 fPtITSouterminPtTPCvsPtAllDCAZ->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dcaZ);
1055 fPtITSouterminPtTPCvsPtAllPhi->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),phi);
1056 fPtITSouterminPtTPCvsPtAllNPointITS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nPointITS);
1057 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nSigmaToVertex);
1058 fPtITSouterminPtTPCvsPtAllChi2C->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2C);
1059 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),relUncertainty1Pt);
1060 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerClusterTPC);
1061 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
36c36a0c 1062
f4d11ac8 1063 }
1064 }
fdceab34 1065 }//fTrackCuts selection
1066
1067
1068 //ITSrefit selection
36c36a0c 1069 if (fTrackCutsITS->AcceptTrack(track) || fTrackCuts->AcceptTrack(track)) {
fdceab34 1070
1071 fPtSelITS->Fill(pt);
1072 fPtSelTPCITS->Fill(ptTPC);
1073 fPtITSminPtTPCvsPtITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
9f54dd56 1074 if(track->GetSign()>0.) fPtITSminPtTPCvsPtITSEtaPos->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
1075 if(track->GetSign()<0.) fPtITSminPtTPCvsPtITSEtaNeg->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
65e8ecdd 1076 fPtITSminPtTPCvsPtITSNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
fdceab34 1077 fPtITSminPtTPCvsPtITSDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
1078 fPtITSminPtTPCvsPtITSDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
10295ac3 1079 fPtITSminPtTPCvsPtITSPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
1080 fPtITSminPtTPCvsPtITSNPointITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nPointITS);
fdceab34 1081 fPtITSminPtTPCvsPtITSNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
1082 fPtITSminPtTPCvsPtITSChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
1083 fPtITSminPtTPCvsPtITSRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
f4d11ac8 1084 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
38ecb6a5 1085 if(nPointITS>3) fPtITSminPtTPCvsPtITSChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
9c8dfcb5 1086 fPtITSminPtTPCvsNPointTPCPhi->Fill((1./pt-1./ptTPC)/(1./pt),nClustersTPC,phi);
1087 fPtITSminPtTPCvsNPointITSPhi->Fill((1./pt-1./ptTPC)/(1./pt),nPointITS,phi);
1088 fPtITSminPtTPCvsRel1PtUncertaintyPhi->Fill((1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt,phi);
65e8ecdd 1089
fdceab34 1090 }//fTrackCutsITS loop
1091
f4d11ac8 1092 }//ESD track loop
fdceab34 1093
1094 // Post output data
1095 PostData(0, fHistList);
1096 PostData(1, fHistListTPC);
1097 PostData(2, fHistListITS);
1098
1099}
65e8ecdd 1100
fdceab34 1101//________________________________________________________________________
1102void AliPWG4HighPtQATPConly::Terminate(Option_t *)
1103{
9b58297c 1104 //
1105 // Terminate
1106 //
fdceab34 1107
fdceab34 1108}
df943115 1109
1110#endif