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