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