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