]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliPWG4HighPtQATPConly.cxx
Possibility to copy the number of the TPC clusters from an AOD track to an ESD track...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliPWG4HighPtQATPConly.cxx
CommitLineData
fdceab34 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16//-----------------------------------------------------------------------
17// This class compares the global reconstruction with the TPConly
18// reconstruction
19// Momentum resolution is stored as function of track cuts and pt.
20// Output: Histograms for different set of cuts
21//-----------------------------------------------------------------------
22// Author : Marta Verweij - UU
23//-----------------------------------------------------------------------
24
67ebd013 25#ifndef ALIPWG4HIGHPTQATPCONLY_CXX
26#define ALIPWG4HIGHPTQATPCONLY_CXX
df943115 27
fdceab34 28#include "AliPWG4HighPtQATPConly.h"
29
b5cc0c6d 30#include "TVector3.h"
31#include <iostream>
fdceab34 32#include "TH1.h"
33#include "TH2.h"
34#include "TH3.h"
35#include "TList.h"
36#include "TChain.h"
37#include "TH3F.h"
f4d11ac8 38#include <Bytes.h>
39#include <TTree.h>
b5cc0c6d 40
fdceab34 41#include "AliAnalysisManager.h"
42#include "AliESDInputHandler.h"
43#include "AliESDtrack.h"
f4d11ac8 44#include "AliESDfriend.h"
45#include "AliESDfriendTrack.h"
fdceab34 46#include "AliESDtrackCuts.h"
47#include "AliExternalTrackParam.h"
df943115 48#include "AliLog.h"
67ebd013 49//#include "AliAnalysisHelperJetTasks.h"
fdceab34 50
f4d11ac8 51#include "AliStack.h"
52#include "TParticle.h"
53#include "TH1I.h"
54#include "AliMCEvent.h"
55#include "AliMCEventHandler.h"
56
fdceab34 57using namespace std; //required for resolving the 'cout' symbol
58
59ClassImp(AliPWG4HighPtQATPConly)
60
61AliPWG4HighPtQATPConly::AliPWG4HighPtQATPConly(): AliAnalysisTask("AliPWG4HighPtQATPConly", ""),
62 fESD(0),
f4d11ac8 63 fESDfriend(0),
64 fMC(0),
00c1235a 65 fCutType(1),
fdceab34 66 fTrackCuts(0),
67 fTrackCutsITS(0),
a994dd35 68 fMaxCosmicAngle(0.002),
b5cc0c6d 69 fNEventAll(0),
70 fNEventSel(0),
df943115 71 fPtAll(0),
72 fPtSel(0),
fdceab34 73 fPtAllminPtTPCvsPtAll(0),
9f54dd56 74 fPtAllminPtTPCvsPtAllEtaPos(0),
75 fPtAllminPtTPCvsPtAllEtaNeg(0),
fdceab34 76 fPtAllminPtTPCvsPtAllNPointTPC(0),
65e8ecdd 77 fPtAllminPtTPCvsPtAllNPointTPCS(0),
fdceab34 78 fPtAllminPtTPCvsPtAllDCAR(0),
79 fPtAllminPtTPCvsPtAllDCAZ(0),
80 fPtAllminPtTPCvsPtAllPhi(0),
81 fPtAllminPtTPCvsPtAllNPointITS(0),
82 fPtAllminPtTPCvsPtAllNSigmaToVertex(0),
83 fPtAllminPtTPCvsPtAllChi2C(0),
84 fPtAllminPtTPCvsPtAllRel1PtUncertainty(0),
f4d11ac8 85 fPtAllminPtTPCvsPtAllChi2PerNClusTPC(0),
86 fPtAllminPtTPCvsPtAllChi2PerNClusITS(0),
9c8dfcb5 87 fPtAllminPtTPCvsNPointTPCPhi(0),
88 fPtAllminPtTPCvsNPointITSPhi(0),
89 fPtAllminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 90 fEtaPhiOutliers(0),
91 fPtSelITSouter(0),
92 fPtITSouterminPtTPCvsPtAll(0),
9f54dd56 93 fPtITSouterminPtTPCvsPtAllEtaPos(0),
94 fPtITSouterminPtTPCvsPtAllEtaNeg(0),
f4d11ac8 95 fPtITSouterminPtTPCvsPtAllNPointTPC(0),
65e8ecdd 96 fPtITSouterminPtTPCvsPtAllNPointTPCS(0),
f4d11ac8 97 fPtITSouterminPtTPCvsPtAllDCAR(0),
98 fPtITSouterminPtTPCvsPtAllDCAZ(0),
99 fPtITSouterminPtTPCvsPtAllPhi(0),
100 fPtITSouterminPtTPCvsPtAllNPointITS(0),
101 fPtITSouterminPtTPCvsPtAllNSigmaToVertex(0),
102 fPtITSouterminPtTPCvsPtAllChi2C(0),
103 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty(0),
104 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC(0),
105 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS(0),
3adc85ec 106 fPtITSouterminPtTPCvsPtAllITSLayer0(0),
107 fPtITSouterminPtTPCvsPtAllITSLayer1(0),
108 fPtITSouterminPtTPCvsPtAllITSLayer2(0),
109 fPtITSouterminPtTPCvsPtAllITSLayer3(0),
110 fPtITSouterminPtTPCvsPtAllITSLayer4(0),
111 fPtITSouterminPtTPCvsPtAllITSLayer5(0),
112 fPtITSouterminPtTPCvsPtAllNoSPD(0),
113 fPtITSouterminPtTPCvsPtAllNoSDD(0),
114 fPtITSouterminPtTPCvsPtAllNoSSD(0),
115 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0(0),
116 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1(0),
117 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2(0),
118 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3(0),
119 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4(0),
120 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5(0),
121 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD(0),
122 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD(0),
123 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD(0),
fdceab34 124 fHistList(0),
125 fPtAllTPC(0),
126 fPtSelTPC(0),
127 fPtSelTPCITS(0),
128 fHistListTPC(0),
129 fPtSelITS(0),
130 fPtITSminPtTPCvsPtITS(0),
9f54dd56 131 fPtITSminPtTPCvsPtITSEtaPos(0),
132 fPtITSminPtTPCvsPtITSEtaNeg(0),
fdceab34 133 fPtITSminPtTPCvsPtITSNPointTPC(0),
65e8ecdd 134 fPtITSminPtTPCvsPtITSNPointTPCS(0),
fdceab34 135 fPtITSminPtTPCvsPtITSDCAR(0),
136 fPtITSminPtTPCvsPtITSDCAZ(0),
137 fPtITSminPtTPCvsPtITSPhi(0),
138 fPtITSminPtTPCvsPtITSNPointITS(0),
139 fPtITSminPtTPCvsPtITSNSigmaToVertex(0),
140 fPtITSminPtTPCvsPtITSChi2C(0),
141 fPtITSminPtTPCvsPtITSRel1PtUncertainty(0),
f4d11ac8 142 fPtITSminPtTPCvsPtITSChi2PerNClusTPC(0),
143 fPtITSminPtTPCvsPtITSChi2PerNClusITS(0),
9c8dfcb5 144 fPtITSminPtTPCvsNPointTPCPhi(0),
145 fPtITSminPtTPCvsNPointITSPhi(0),
146 fPtITSminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 147 fPtRel1PtUncertaintyChi2PerClusTPC(0),
65e8ecdd 148 fPtNPointTPCSChi2PerClusTPC(0),
149 fPtNPointTPCSRel1PtUncertainty(0),
3adc85ec 150 fPtRel1PtUncertaintyChi2PerClusTPCSharedSel(0),
65e8ecdd 151 fHistListITS(0),
cc89bb69 152 fPtSignedCosmicCandidates(0),
65e8ecdd 153 fDeltaPtCosmicCandidates(0),
cc89bb69 154 fDeltaPhiSumEta(0),
155 fDCAZCosmicCandidates(0),
156 fDCARCosmicCandidates(0),
add06ceb 157 fTheta(0),
158 fThetaZoom(0),
e5abcde9 159 fThetaPt1Pt2(0),
160 fDeltaPhiSumEtaPt1(0),
161 fDeltaPhiSumEtaPt2(0),
162 fThetaDCAZ1DCAZ2(0),
65e8ecdd 163 fHistListCosmics(0)
cc89bb69 164
fdceab34 165{
df943115 166
fdceab34 167}
168//________________________________________________________________________
169AliPWG4HighPtQATPConly::AliPWG4HighPtQATPConly(const char *name):
170 AliAnalysisTask(name, ""),
171 fESD(0),
f4d11ac8 172 fESDfriend(0),
173 fMC(0),
00c1235a 174 fCutType(1),
fdceab34 175 fTrackCuts(),
176 fTrackCutsITS(),
a994dd35 177 fMaxCosmicAngle(0.002),
b5cc0c6d 178 fNEventAll(0),
179 fNEventSel(0),
df943115 180 fPtAll(0),
181 fPtSel(0),
fdceab34 182 fPtAllminPtTPCvsPtAll(0),
9f54dd56 183 fPtAllminPtTPCvsPtAllEtaPos(0),
184 fPtAllminPtTPCvsPtAllEtaNeg(0),
fdceab34 185 fPtAllminPtTPCvsPtAllNPointTPC(0),
65e8ecdd 186 fPtAllminPtTPCvsPtAllNPointTPCS(0),
fdceab34 187 fPtAllminPtTPCvsPtAllDCAR(0),
188 fPtAllminPtTPCvsPtAllDCAZ(0),
189 fPtAllminPtTPCvsPtAllPhi(0),
190 fPtAllminPtTPCvsPtAllNPointITS(0),
191 fPtAllminPtTPCvsPtAllNSigmaToVertex(0),
192 fPtAllminPtTPCvsPtAllChi2C(0),
193 fPtAllminPtTPCvsPtAllRel1PtUncertainty(0),
f4d11ac8 194 fPtAllminPtTPCvsPtAllChi2PerNClusTPC(0),
195 fPtAllminPtTPCvsPtAllChi2PerNClusITS(0),
b35040a5 196 fPtAllminPtTPCvsNPointTPCPhi(0),
197 fPtAllminPtTPCvsNPointITSPhi(0),
198 fPtAllminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 199 fEtaPhiOutliers(0),
200 fPtSelITSouter(0),
201 fPtITSouterminPtTPCvsPtAll(0),
9f54dd56 202 fPtITSouterminPtTPCvsPtAllEtaPos(0),
203 fPtITSouterminPtTPCvsPtAllEtaNeg(0),
f4d11ac8 204 fPtITSouterminPtTPCvsPtAllNPointTPC(0),
65e8ecdd 205 fPtITSouterminPtTPCvsPtAllNPointTPCS(0),
f4d11ac8 206 fPtITSouterminPtTPCvsPtAllDCAR(0),
207 fPtITSouterminPtTPCvsPtAllDCAZ(0),
208 fPtITSouterminPtTPCvsPtAllPhi(0),
209 fPtITSouterminPtTPCvsPtAllNPointITS(0),
210 fPtITSouterminPtTPCvsPtAllNSigmaToVertex(0),
211 fPtITSouterminPtTPCvsPtAllChi2C(0),
212 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty(0),
213 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC(0),
214 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS(0),
3adc85ec 215 fPtITSouterminPtTPCvsPtAllITSLayer0(0),
216 fPtITSouterminPtTPCvsPtAllITSLayer1(0),
217 fPtITSouterminPtTPCvsPtAllITSLayer2(0),
218 fPtITSouterminPtTPCvsPtAllITSLayer3(0),
219 fPtITSouterminPtTPCvsPtAllITSLayer4(0),
220 fPtITSouterminPtTPCvsPtAllITSLayer5(0),
221 fPtITSouterminPtTPCvsPtAllNoSPD(0),
222 fPtITSouterminPtTPCvsPtAllNoSDD(0),
223 fPtITSouterminPtTPCvsPtAllNoSSD(0),
224 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0(0),
225 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1(0),
226 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2(0),
227 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3(0),
228 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4(0),
229 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5(0),
230 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD(0),
231 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD(0),
232 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD(0),
fdceab34 233 fHistList(0),
234 fPtAllTPC(0),
235 fPtSelTPC(0),
236 fPtSelTPCITS(0),
237 fHistListTPC(0),
238 fPtSelITS(0),
239 fPtITSminPtTPCvsPtITS(0),
9f54dd56 240 fPtITSminPtTPCvsPtITSEtaPos(0),
241 fPtITSminPtTPCvsPtITSEtaNeg(0),
fdceab34 242 fPtITSminPtTPCvsPtITSNPointTPC(0),
65e8ecdd 243 fPtITSminPtTPCvsPtITSNPointTPCS(0),
fdceab34 244 fPtITSminPtTPCvsPtITSDCAR(0),
245 fPtITSminPtTPCvsPtITSDCAZ(0),
246 fPtITSminPtTPCvsPtITSPhi(0),
247 fPtITSminPtTPCvsPtITSNPointITS(0),
248 fPtITSminPtTPCvsPtITSNSigmaToVertex(0),
249 fPtITSminPtTPCvsPtITSChi2C(0),
250 fPtITSminPtTPCvsPtITSRel1PtUncertainty(0),
f4d11ac8 251 fPtITSminPtTPCvsPtITSChi2PerNClusTPC(0),
252 fPtITSminPtTPCvsPtITSChi2PerNClusITS(0),
b35040a5 253 fPtITSminPtTPCvsNPointTPCPhi(0),
254 fPtITSminPtTPCvsNPointITSPhi(0),
255 fPtITSminPtTPCvsRel1PtUncertaintyPhi(0),
f4d11ac8 256 fPtRel1PtUncertaintyChi2PerClusTPC(0),
65e8ecdd 257 fPtNPointTPCSChi2PerClusTPC(0),
258 fPtNPointTPCSRel1PtUncertainty(0),
3adc85ec 259 fPtRel1PtUncertaintyChi2PerClusTPCSharedSel(0),
65e8ecdd 260 fHistListITS(0),
cc89bb69 261 fPtSignedCosmicCandidates(0),
65e8ecdd 262 fDeltaPtCosmicCandidates(0),
cc89bb69 263 fDeltaPhiSumEta(0),
264 fDCAZCosmicCandidates(0),
265 fDCARCosmicCandidates(0),
add06ceb 266 fTheta(0),
267 fThetaZoom(0),
e5abcde9 268 fThetaPt1Pt2(0),
269 fDeltaPhiSumEtaPt1(0),
270 fDeltaPhiSumEtaPt2(0),
271 fThetaDCAZ1DCAZ2(0),
65e8ecdd 272 fHistListCosmics(0)
fdceab34 273{
274 //
275 // Constructor. Initialization of Inputs and Outputs
276 //
277 Info("AliPWG4HighPtQATPConly","Calling Constructor");
278 // Input slot #0 works with a TChain ESD
279 DefineInput(0, TChain::Class());
cc89bb69 280 // Output slot #0, #1, #2 and #3 writes into a TList
fdceab34 281 DefineOutput(0, TList::Class());
fdceab34 282 DefineOutput(1, TList::Class());
fdceab34 283 DefineOutput(2, TList::Class());
65e8ecdd 284 DefineOutput(3, TList::Class());
cc89bb69 285
286 // Output slot #4 and #5 writes into a AliESDtrackCuts
287 DefineOutput(4, AliESDtrackCuts::Class());
288 DefineOutput(5, AliESDtrackCuts::Class());
289
290}
291
292//________________________________________________________________________
293void AliPWG4HighPtQATPConly::LocalInit()
294{
e5abcde9 295 //
296 // Only called once at beginning
297 //
cc89bb69 298 PostData(4,fTrackCuts);
299 PostData(5,fTrackCutsITS);
df943115 300}
fdceab34 301
302//________________________________________________________________________
303void AliPWG4HighPtQATPConly::ConnectInputData(Option_t *)
304{
305 // Connect ESD here
306 // Called once
df943115 307 AliDebug(2,Form(">> AliPWG4HighPtSpectra::ConnectInputData \n"));
fdceab34 308 TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
309 if (!tree) {
f4d11ac8 310 AliDebug(2,Form( "ERROR: Could not read chain from input slot 0 \n"));
311 return;
312 }
313
314 AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
315
316 if (!esdH) {
317 AliDebug(2,Form("ERROR: Could not get ESDInputHandler"));
318 return;
319 } else
320 fESD = esdH->GetEvent();
321
322 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
323 // AliMCEventHandler* mcH = dynamic_cast<AliMCEventHandler*>
324 // (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
325 if (!eventHandler) {
326 AliDebug(2,Form( "ERROR: Could not retrieve MC event handler \n"));
fdceab34 327 }
f4d11ac8 328 else
329 fMC = eventHandler->MCEvent();
330
331 //attach the ESD friend
332 // tree->SetBranchStatus("*", kTRUE);
333// tree->SetBranchStatus("Tracks*", kTRUE);
334// tree->SetBranchStatus("ESDfriend*", kTRUE);
335 // fESD->ReadFromTree(tree);
336
35ba8832 337 //old
338// fESDfriend = (AliESDfriend*)fESD->FindListObject("AliESDfriend");
339// if (!fESDfriend)
340// {
341// // works for both, we just want to avoid setting the branch adress twice
342// // in case of the new ESD
343// tree->SetBranchAddress("ESDfriend.",&fESDfriend);
344// }
f4d11ac8 345
35ba8832 346 fESDfriend = esdH->GetESDfriend();
347
fdceab34 348}
349
fdceab34 350//________________________________________________________________________
351void AliPWG4HighPtQATPConly::CreateOutputObjects() {
352 //Create output objects
df943115 353 AliDebug(2,Form(">> AliPWG4HighPtQATPConly::CreateOutputObjects \n"));
354
355 Bool_t oldStatus = TH1::AddDirectoryStatus();
356 TH1::AddDirectory(kFALSE);
357
fdceab34 358 OpenFile(0);
359 fHistList = new TList();
360 OpenFile(1);
361 fHistListTPC = new TList();
362 OpenFile(2);
363 fHistListITS = new TList();
65e8ecdd 364 OpenFile(3);
365 fHistListCosmics = new TList();
366
cc89bb69 367 Int_t fgkNPhiBins=18;
fdceab34 368 Float_t kMinPhi = 0.;
369 Float_t kMaxPhi = 2.*TMath::Pi();
cc89bb69 370 Double_t *binsPhi=new Double_t[fgkNPhiBins+1];
371 for(Int_t i=0; i<=fgkNPhiBins; i++) binsPhi[i]=(Double_t)kMinPhi + (kMaxPhi-kMinPhi)/fgkNPhiBins*(Double_t)i ;
fdceab34 372
f4d11ac8 373 Float_t fgkPtMin=0.;
fdceab34 374 Float_t fgkPtMax=100.;
cc89bb69 375
376 const Float_t ptmin1 = fgkPtMin;
377 const Float_t ptmax1 = 10.0 ;
378 const Float_t ptmin2 = ptmax1 ;
379 const Float_t ptmax2 = 20.0 ;
380 const Float_t ptmin3 = ptmax2 ;
381 const Float_t ptmax3 = fgkPtMax;
382 const Int_t nbin11 = (int)(ptmax1-ptmin1);
383 const Int_t nbin12 = (int)((ptmax2-ptmin2)/2.)+nbin11;
384 const Int_t nbin13 = (int)((ptmax3-ptmin3)/5.)+nbin12;
385 Int_t fgkNPtBins=nbin13;
386 //Create array with low edges of each bin
387 Double_t *binsPt=new Double_t[fgkNPtBins+1];
388 for(Int_t i=0; i<=fgkNPtBins; i++) {
389 if(i<=nbin11) binsPt[i]=(Double_t)ptmin1 + (ptmax1-ptmin1)/nbin11*(Double_t)i ;
390 if(i<=nbin12 && i>nbin11) binsPt[i]=(Double_t)ptmin2 + (ptmax2-ptmin2)/(nbin12-nbin11)*((Double_t)i-(Double_t)nbin11) ;
391 if(i<=nbin13 && i>nbin12) binsPt[i]=(Double_t)ptmin3 + (ptmax3-ptmin3)/(nbin13-nbin12)*((Double_t)i-(Double_t)nbin12) ;
392 }
393
f4d11ac8 394 Float_t fgkChi2PerClusMin = 0.;
b35040a5 395 Float_t fgkChi2PerClusMax = 4.;
cc89bb69 396 Int_t fgkNChi2PerClusBins = (int)(fgkChi2PerClusMax*10.);
397 Double_t *binsChi2PerClus=new Double_t[fgkNChi2PerClusBins+1];
398 for(Int_t i=0; i<=fgkNChi2PerClusBins; i++) binsChi2PerClus[i]=(Double_t)fgkChi2PerClusMin + (fgkChi2PerClusMax-fgkChi2PerClusMin)/fgkNChi2PerClusBins*(Double_t)i ;
399
400 Int_t fgkNResPtBins=80;
401 Float_t fgkResPtMin = -1.;
402 Float_t fgkResPtMax = 1.;
403 Double_t *binsResPt=new Double_t[fgkNResPtBins+1];
404 for(Int_t i=0; i<=fgkNResPtBins; i++) binsResPt[i]=(Double_t)fgkResPtMin + (fgkResPtMax-fgkResPtMin)/fgkNResPtBins*(Double_t)i ;
405
406 Int_t fgkNEtaBins=20;
407 Float_t fgkEtaMin = -1.;
408 Float_t fgkEtaMax = 1.;
409 Double_t *binsEta=new Double_t[fgkNEtaBins+1];
410 for(Int_t i=0; i<=fgkNEtaBins; i++) binsEta[i]=(Double_t)fgkEtaMin + (fgkEtaMax-fgkEtaMin)/fgkNEtaBins*(Double_t)i ;
411
412 Int_t fgkNNPointTPCBins=80;
413 Float_t fgkNPointTPCMin = 0.5;
414 Float_t fgkNPointTPCMax = 160.5;
415 Double_t *binsNPointTPC=new Double_t[fgkNNPointTPCBins+1];
416 for(Int_t i=0; i<=fgkNNPointTPCBins; i++) binsNPointTPC[i]=(Double_t)fgkNPointTPCMin + (fgkNPointTPCMax-fgkNPointTPCMin)/fgkNNPointTPCBins*(Double_t)i ;
417
418 Int_t fgkNNPointTPCSBins=50;
419 Float_t fgkNPointTPCSMin = 0.;
420 Float_t fgkNPointTPCSMax = 1.;
421 Double_t *binsNPointTPCS=new Double_t[fgkNNPointTPCSBins+1];
422 for(Int_t i=0; i<=fgkNNPointTPCSBins; i++) binsNPointTPCS[i]=(Double_t)fgkNPointTPCSMin + (fgkNPointTPCSMax-fgkNPointTPCSMin)/fgkNNPointTPCSBins*(Double_t)i ;
423
424 Int_t fgkNDCARBins=80;
425 Float_t fgkDCARMin = -0.2;
426 Float_t fgkDCARMax = 0.2;
427 Double_t *binsDCAR=new Double_t[fgkNDCARBins+1];
428 for(Int_t i=0; i<=fgkNDCARBins; i++) binsDCAR[i]=(Double_t)fgkDCARMin + (fgkDCARMax-fgkDCARMin)/fgkNDCARBins*(Double_t)i ;
429
430 Int_t fgkNDCAZBins=80;
431 Float_t fgkDCAZMin = -2.;
432 Float_t fgkDCAZMax = 2.;
433 Double_t *binsDCAZ=new Double_t[fgkNDCAZBins+1];
434 for(Int_t i=0; i<=fgkNDCAZBins; i++) binsDCAZ[i]=(Double_t)fgkDCAZMin + (fgkDCAZMax-fgkDCAZMin)/fgkNDCAZBins*(Double_t)i ;
435
436 Int_t fgkNNPointITSBins=9;
437 Float_t fgkNPointITSMin = -0.5;
438 Float_t fgkNPointITSMax = 8.5;
439 Double_t *binsNPointITS=new Double_t[fgkNNPointITSBins+1];
440 for(Int_t i=0; i<=fgkNNPointITSBins; i++) binsNPointITS[i]=(Double_t)fgkNPointITSMin + (fgkNPointITSMax-fgkNPointITSMin)/fgkNNPointITSBins*(Double_t)i ;
441
442 Int_t fgkNNSigmaToVertexBins=40;
443 Float_t fgkNSigmaToVertexMin = 0.;
444 Float_t fgkNSigmaToVertexMax = 8.;
445 Double_t *binsNSigmaToVertex=new Double_t[fgkNNSigmaToVertexBins+1];
446 for(Int_t i=0; i<=fgkNNSigmaToVertexBins; i++) binsNSigmaToVertex[i]=(Double_t)fgkNSigmaToVertexMin + (fgkNSigmaToVertexMax-fgkNSigmaToVertexMin)/fgkNNSigmaToVertexBins*(Double_t)i ;
447
448 Int_t fgkNChi2CBins=20;
449 Float_t fgkChi2CMin = 0.;
450 Float_t fgkChi2CMax = 10.;
451 Double_t *binsChi2C=new Double_t[fgkNChi2CBins+1];
452 for(Int_t i=0; i<=fgkNChi2CBins; i++) binsChi2C[i]=(Double_t)fgkChi2CMin + (fgkChi2CMax-fgkChi2CMin)/fgkNChi2CBins*(Double_t)i ;
453
454 Int_t fgkNRel1PtUncertaintyBins=30;
455 Float_t fgkRel1PtUncertaintyMin = 0.;
456 Float_t fgkRel1PtUncertaintyMax = 0.3;
457 Double_t *binsRel1PtUncertainty=new Double_t[fgkNRel1PtUncertaintyBins+1];
458 for(Int_t i=0; i<=fgkNRel1PtUncertaintyBins; i++) binsRel1PtUncertainty[i]=(Double_t)fgkRel1PtUncertaintyMin + (fgkRel1PtUncertaintyMax-fgkRel1PtUncertaintyMin)/fgkNRel1PtUncertaintyBins*(Double_t)i ;
fdceab34 459
b5cc0c6d 460 fNEventAll = new TH1F("fNEventAll","NEventAll",1,-0.5,0.5);
461 fHistList->Add(fNEventAll);
462 fNEventSel = new TH1F("fNEventSel","NEvent Selected for analysis",1,-0.5,0.5);
463 fHistList->Add(fNEventSel);
cc89bb69 464 fPtAll = new TH1F("fPtAll","PtAll",fgkNPtBins, binsPt);//fgkPtMin, fgkPtMax);
fdceab34 465 fHistList->Add(fPtAll);
cc89bb69 466 fPtSel = new TH1F("fPtSel","PtSel",fgkNPtBins, binsPt);//fgkPtMin, fgkPtMax);
fdceab34 467 fHistList->Add(fPtSel);
65e8ecdd 468
cc89bb69 469 fPtAllminPtTPCvsPtAll = new TH2F("fPtAllminPtTPCvsPtAll","PtAllminPtTPCvsPtAll",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
f4d11ac8 470 fPtAllminPtTPCvsPtAll->SetXTitle("p_{t}^{Global}");
471 fPtAllminPtTPCvsPtAll->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 472 fHistList->Add(fPtAllminPtTPCvsPtAll);
473
cc89bb69 474 fPtAllminPtTPCvsPtAllEtaPos = new TH3F("fPtAllminPtTPCvsPtAllEtaPos","PtAllminPtTPCvsPtAllEtaPos",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 475 fPtAllminPtTPCvsPtAllEtaPos->SetXTitle("p_{t}^{Global}");
476 fPtAllminPtTPCvsPtAllEtaPos->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
cc89bb69 477 fPtAllminPtTPCvsPtAllEtaPos->SetZTitle("#eta");
9f54dd56 478 fHistList->Add(fPtAllminPtTPCvsPtAllEtaPos);
479
cc89bb69 480 fPtAllminPtTPCvsPtAllEtaNeg = new TH3F("fPtAllminPtTPCvsPtAllEtaNeg","PtAllminPtTPCvsPtAllEtaNeg",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 481 fPtAllminPtTPCvsPtAllEtaNeg->SetXTitle("p_{t}^{Global}");
482 fPtAllminPtTPCvsPtAllEtaNeg->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
cc89bb69 483 fPtAllminPtTPCvsPtAllEtaNeg->SetZTitle("#eta");
9f54dd56 484 fHistList->Add(fPtAllminPtTPCvsPtAllEtaNeg);
485
cc89bb69 486 fPtAllminPtTPCvsPtAllNPointTPC = new TH3F("fPtAllminPtTPCvsPtAllNPointTPC","PtAllminPtTPCvsPtAllNPointTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC);
f4d11ac8 487 fPtAllminPtTPCvsPtAllNPointTPC->SetXTitle("p_{t}^{Global}");
488 fPtAllminPtTPCvsPtAllNPointTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 489 fPtAllminPtTPCvsPtAllNPointTPC->SetZTitle("N_{point,TPC}");
490 fHistList->Add(fPtAllminPtTPCvsPtAllNPointTPC);
491
cc89bb69 492 fPtAllminPtTPCvsPtAllNPointTPCS = new TH3F("fPtAllminPtTPCvsPtAllNPointTPCS","PtAllminPtTPCvsPtAllNPointTPCS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCSBins,binsNPointTPCS);
65e8ecdd 493 fPtAllminPtTPCvsPtAllNPointTPCS->SetXTitle("p_{t}^{Global}");
494 fPtAllminPtTPCvsPtAllNPointTPCS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
495 fPtAllminPtTPCvsPtAllNPointTPCS->SetZTitle("N_{point,TPC}^{Shared}/N_{point,TPC}");
496 fHistList->Add(fPtAllminPtTPCvsPtAllNPointTPCS);
497
cc89bb69 498 fPtAllminPtTPCvsPtAllDCAR = new TH3F("fPtAllminPtTPCvsPtAllDCAR","PtAllminPtTPCvsPtAllDCAR",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCARBins,binsDCAR);
f4d11ac8 499 fPtAllminPtTPCvsPtAllDCAR->SetXTitle("p_{t}^{Global}");
500 fPtAllminPtTPCvsPtAllDCAR->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 501 fPtAllminPtTPCvsPtAllDCAR->SetZTitle("DCA_{R}");
502 fHistList->Add(fPtAllminPtTPCvsPtAllDCAR);
503
cc89bb69 504 fPtAllminPtTPCvsPtAllDCAZ = new TH3F("fPtAllminPtTPCvsPtAllDCAZ","PtAllminPtTPCvsPtAllDCAZ",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCAZBins,binsDCAZ);
f4d11ac8 505 fPtAllminPtTPCvsPtAllDCAZ->SetXTitle("p_{t}^{Global}");
506 fPtAllminPtTPCvsPtAllDCAZ->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 507 fPtAllminPtTPCvsPtAllDCAZ->SetZTitle("DCA_{Z}");
508 fHistList->Add(fPtAllminPtTPCvsPtAllDCAZ);
509
cc89bb69 510 fPtAllminPtTPCvsPtAllPhi = new TH3F("fPtAllminPtTPCvsPtAllPhi","PtAllminPtTPCvsPtAllPhi",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNPhiBins,binsPhi);
f4d11ac8 511 fPtAllminPtTPCvsPtAllPhi->SetXTitle("p_{t}^{Global}");
512 fPtAllminPtTPCvsPtAllPhi->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 513 fPtAllminPtTPCvsPtAllPhi->SetZTitle("#phi");
514 fHistList->Add(fPtAllminPtTPCvsPtAllPhi);
515
cc89bb69 516 fPtAllminPtTPCvsPtAllNPointITS = new TH3F("fPtAllminPtTPCvsPtAllNPointITS","PtAllminPtTPCvsPtAllNPointITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS);
f4d11ac8 517 fPtAllminPtTPCvsPtAllNPointITS->SetXTitle("p_{t}^{Global}");
518 fPtAllminPtTPCvsPtAllNPointITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
519 fPtAllminPtTPCvsPtAllNPointITS->SetZTitle("N_{point,ITS}");
fdceab34 520 fHistList->Add(fPtAllminPtTPCvsPtAllNPointITS);
521
cc89bb69 522 fPtAllminPtTPCvsPtAllNSigmaToVertex = new TH3F("fPtAllminPtTPCvsPtAllNSigmaToVertex","PtAllminPtTPCvsPtAllNSigmaToVertex",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNSigmaToVertexBins,binsNSigmaToVertex);
f4d11ac8 523 fPtAllminPtTPCvsPtAllNSigmaToVertex->SetXTitle("p_{t}^{Global}");
524 fPtAllminPtTPCvsPtAllNSigmaToVertex->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 525 fPtAllminPtTPCvsPtAllNSigmaToVertex->SetZTitle("N#sigma to vertex");
526 fHistList->Add(fPtAllminPtTPCvsPtAllNSigmaToVertex);
527
cc89bb69 528 fPtAllminPtTPCvsPtAllChi2C = new TH3F("fPtAllminPtTPCvsPtAllChi2C","PtAllminPtTPCvsPtAllChi2C",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2CBins,binsChi2C);
f4d11ac8 529 fPtAllminPtTPCvsPtAllChi2C->SetXTitle("p_{t}^{Global}");
530 fPtAllminPtTPCvsPtAllChi2C->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 531 fPtAllminPtTPCvsPtAllChi2C->SetZTitle("Constrained #chi^{2}");
532 fHistList->Add(fPtAllminPtTPCvsPtAllChi2C);
533
cc89bb69 534 fPtAllminPtTPCvsPtAllRel1PtUncertainty = new TH3F("fPtAllminPtTPCvsPtAllRel1PtUncertainty","PtAllminPtTPCvsPtAllRel1PtUncertainty",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
f4d11ac8 535 fPtAllminPtTPCvsPtAllRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
536 fPtAllminPtTPCvsPtAllRel1PtUncertainty->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 537 fPtAllminPtTPCvsPtAllRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
538 fHistList->Add(fPtAllminPtTPCvsPtAllRel1PtUncertainty);
539
cc89bb69 540 fPtAllminPtTPCvsPtAllChi2PerNClusTPC = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusTPC","PtAllminPtTPCvsPtAllChi2PerNClusTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 541 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
542 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 543 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
f4d11ac8 544 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusTPC);
545
cc89bb69 546 fPtAllminPtTPCvsPtAllChi2PerNClusITS = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITS","PtAllminPtTPCvsPtAllChi2PerNClusITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 547 fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
548 fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 549 fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
f4d11ac8 550 fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITS);
551
cc89bb69 552 fPtAllminPtTPCvsNPointTPCPhi = new TH3F("fPtAllminPtTPCvsNPointTPCPhi","PtAllminPtTPCvsNPointTPCPhi",fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC,fgkNPhiBins,binsPhi);
9c8dfcb5 553 fPtAllminPtTPCvsNPointTPCPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
554 fPtAllminPtTPCvsNPointTPCPhi->SetYTitle("N_{point,TPC}");
555 fPtAllminPtTPCvsNPointTPCPhi->SetZTitle("#phi");
556 fHistList->Add(fPtAllminPtTPCvsNPointTPCPhi);
557
cc89bb69 558 fPtAllminPtTPCvsNPointITSPhi = new TH3F("fPtAllminPtTPCvsNPointITSPhi","PtAllminPtTPCvsNPointITSPhi",fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS,fgkNPhiBins,binsPhi);
9c8dfcb5 559 fPtAllminPtTPCvsNPointITSPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
560 fPtAllminPtTPCvsNPointITSPhi->SetYTitle("N_{point,ITS}");
561 fPtAllminPtTPCvsNPointITSPhi->SetZTitle("#phi");
562 fHistList->Add(fPtAllminPtTPCvsNPointITSPhi);
563
cc89bb69 564 fPtAllminPtTPCvsRel1PtUncertaintyPhi = new TH3F("fPtAllminPtTPCvsRel1PtUncertaintyPhi","PtAllminPtTPCvsRel1PtUncertaintyPhi",fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNPhiBins,binsPhi);
9c8dfcb5 565 fPtAllminPtTPCvsRel1PtUncertaintyPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
566 fPtAllminPtTPCvsRel1PtUncertaintyPhi->SetYTitle("Rel1PtUncertainty");
567 fPtAllminPtTPCvsRel1PtUncertaintyPhi->SetZTitle("#phi");
568 fHistList->Add(fPtAllminPtTPCvsRel1PtUncertaintyPhi);
569
cc89bb69 570 fEtaPhiOutliers = new TH2F("fEtaPhiOutliers","PtAllminPtTPCvsPtAll",20, -1.,1.,fgkNPhiBins,binsPhi);
f4d11ac8 571 fEtaPhiOutliers->SetXTitle("#eta");
572 fEtaPhiOutliers->SetYTitle("#phi");
573 fHistList->Add(fEtaPhiOutliers);
574
575 //Global vs ITSouter-TPCinner
cc89bb69 576 fPtSelITSouter = new TH1F("fPtSelITSouter","PtSelITSouter",fgkNPtBins,binsPt);
f4d11ac8 577 fHistList->Add(fPtSelITSouter);
578
cc89bb69 579 fPtITSouterminPtTPCvsPtAll = new TH2F("fPtITSouterminPtTPCvsPtAll","PtITSouterminPtTPCvsPtAll",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
f4d11ac8 580 fPtITSouterminPtTPCvsPtAll->SetXTitle("p_{t}^{Global}");
581 fPtITSouterminPtTPCvsPtAll->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
582 fHistList->Add(fPtITSouterminPtTPCvsPtAll);
583
cc89bb69 584 fPtITSouterminPtTPCvsPtAllEtaPos = new TH3F("fPtITSouterminPtTPCvsPtAllEtaPos","PtITSouterminPtTPCvsPtAllEtaPos",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 585 fPtITSouterminPtTPCvsPtAllEtaPos->SetXTitle("p_{t}^{Global}");
586 fPtITSouterminPtTPCvsPtAllEtaPos->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
587 fHistList->Add(fPtITSouterminPtTPCvsPtAllEtaPos);
588
cc89bb69 589 fPtITSouterminPtTPCvsPtAllEtaNeg = new TH3F("fPtITSouterminPtTPCvsPtAllEtaNeg","PtITSouterminPtTPCvsPtAllEtaNeg",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 590 fPtITSouterminPtTPCvsPtAllEtaNeg->SetXTitle("p_{t}^{Global}");
591 fPtITSouterminPtTPCvsPtAllEtaNeg->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
592 fHistList->Add(fPtITSouterminPtTPCvsPtAllEtaNeg);
593
cc89bb69 594 fPtITSouterminPtTPCvsPtAllNPointTPC = new TH3F("fPtITSouterminPtTPCvsPtAllNPointTPC","PtITSouterminPtTPCvsPtAllNPointTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC);
f4d11ac8 595 fPtITSouterminPtTPCvsPtAllNPointTPC->SetXTitle("p_{t}^{Global}");
596 fPtITSouterminPtTPCvsPtAllNPointTPC->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
597 fPtITSouterminPtTPCvsPtAllNPointTPC->SetZTitle("N_{point,TPC}");
598 fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointTPC);
599
cc89bb69 600 fPtITSouterminPtTPCvsPtAllNPointTPCS = new TH3F("fPtITSouterminPtTPCvsPtAllNPointTPCS","PtITSouterminPtTPCvsPtAllNPointTPCS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCSBins,binsNPointTPCS);
65e8ecdd 601 fPtITSouterminPtTPCvsPtAllNPointTPCS->SetXTitle("p_{t}^{Global}");
602 fPtITSouterminPtTPCvsPtAllNPointTPCS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
603 fPtITSouterminPtTPCvsPtAllNPointTPCS->SetZTitle("N_{point,TPC}^{Shared}/N_{point,TPC}");
604 fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointTPCS);
605
cc89bb69 606 fPtITSouterminPtTPCvsPtAllDCAR = new TH3F("fPtITSouterminPtTPCvsPtAllDCAR","PtITSouterminPtTPCvsPtAllDCAR",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCARBins,binsDCAR);
f4d11ac8 607 fPtITSouterminPtTPCvsPtAllDCAR->SetXTitle("p_{t}^{Global}");
608 fPtITSouterminPtTPCvsPtAllDCAR->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
609 fPtITSouterminPtTPCvsPtAllDCAR->SetZTitle("DCA_{R}");
610 fHistList->Add(fPtITSouterminPtTPCvsPtAllDCAR);
611
cc89bb69 612 fPtITSouterminPtTPCvsPtAllDCAZ = new TH3F("fPtITSouterminPtTPCvsPtAllDCAZ","PtITSouterminPtTPCvsPtAllDCAZ",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCAZBins,binsDCAZ);
f4d11ac8 613 fPtITSouterminPtTPCvsPtAllDCAZ->SetXTitle("p_{t}^{Global}");
614 fPtITSouterminPtTPCvsPtAllDCAZ->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
615 fPtITSouterminPtTPCvsPtAllDCAZ->SetZTitle("DCA_{Z}");
616 fHistList->Add(fPtITSouterminPtTPCvsPtAllDCAZ);
617
cc89bb69 618 fPtITSouterminPtTPCvsPtAllPhi = new TH3F("fPtITSouterminPtTPCvsPtAllPhi","PtITSouterminPtTPCvsPtAllPhi",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNPhiBins,binsPhi);
f4d11ac8 619 fPtITSouterminPtTPCvsPtAllPhi->SetXTitle("p_{t}^{Global}");
620 fPtITSouterminPtTPCvsPtAllPhi->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
621 fPtITSouterminPtTPCvsPtAllPhi->SetZTitle("#phi");
622 fHistList->Add(fPtITSouterminPtTPCvsPtAllPhi);
623
cc89bb69 624 fPtITSouterminPtTPCvsPtAllNPointITS = new TH3F("fPtITSouterminPtTPCvsPtAllNPointITS","PtITSouterminPtTPCvsPtAllNPointITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS);
f4d11ac8 625 fPtITSouterminPtTPCvsPtAllNPointITS->SetXTitle("p_{t}^{Global}");
626 fPtITSouterminPtTPCvsPtAllNPointITS->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
627 fPtITSouterminPtTPCvsPtAllNPointITS->SetZTitle("N_{point,ITS}");
628 fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointITS);
629
cc89bb69 630 fPtITSouterminPtTPCvsPtAllNSigmaToVertex = new TH3F("fPtITSouterminPtTPCvsPtAllNSigmaToVertex","PtITSouterminPtTPCvsPtAllNSigmaToVertex",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNSigmaToVertexBins,binsNSigmaToVertex);
f4d11ac8 631 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->SetXTitle("p_{t}^{Global}");
632 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
633 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->SetZTitle("N#sigma to vertex");
634 fHistList->Add(fPtITSouterminPtTPCvsPtAllNSigmaToVertex);
635
cc89bb69 636 fPtITSouterminPtTPCvsPtAllChi2C = new TH3F("fPtITSouterminPtTPCvsPtAllChi2C","PtITSouterminPtTPCvsPtAllChi2C",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2CBins,binsChi2C);
f4d11ac8 637 fPtITSouterminPtTPCvsPtAllChi2C->SetXTitle("p_{t}^{Global}");
638 fPtITSouterminPtTPCvsPtAllChi2C->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
639 fPtITSouterminPtTPCvsPtAllChi2C->SetZTitle("Constrained #chi^{2}");
640 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2C);
641
cc89bb69 642 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty = new TH3F("fPtITSouterminPtTPCvsPtAllRel1PtUncertainty","PtITSouterminPtTPCvsPtAllRel1PtUncertainty",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
f4d11ac8 643 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
644 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
645 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
646 fHistList->Add(fPtITSouterminPtTPCvsPtAllRel1PtUncertainty);
647
cc89bb69 648 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC","PtITSouterminPtTPCvsPtAllChi2PerNClusTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 649 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
650 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 651 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
f4d11ac8 652 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC);
653
cc89bb69 654 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITS","PtITSouterminPtTPCvsPtAllChi2PerNClusITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 655 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
656 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
65e8ecdd 657 fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
f4d11ac8 658 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITS);
659
660 //As function of ITS layers
cc89bb69 661 fPtITSouterminPtTPCvsPtAllITSLayer0 = new TH2F("fPtITSouterminPtTPCvsPtAllITSLayer0","PtITSouterminPtTPCvsPtAllITSLayer0",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 662 fPtITSouterminPtTPCvsPtAllITSLayer0->SetXTitle("p_{t}^{Global}");
663 fPtITSouterminPtTPCvsPtAllITSLayer0->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
664 fHistList->Add(fPtITSouterminPtTPCvsPtAllITSLayer0);
665
cc89bb69 666 fPtITSouterminPtTPCvsPtAllITSLayer1 = new TH2F("fPtITSouterminPtTPCvsPtAllITSLayer1","PtITSouterminPtTPCvsPtAllITSLayer1",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 667 fPtITSouterminPtTPCvsPtAllITSLayer1->SetXTitle("p_{t}^{Global}");
668 fPtITSouterminPtTPCvsPtAllITSLayer1->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
669 fHistList->Add(fPtITSouterminPtTPCvsPtAllITSLayer1);
670
cc89bb69 671 fPtITSouterminPtTPCvsPtAllITSLayer2 = new TH2F("fPtITSouterminPtTPCvsPtAllITSLayer2","PtITSouterminPtTPCvsPtAllITSLayer2",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 672 fPtITSouterminPtTPCvsPtAllITSLayer2->SetXTitle("p_{t}^{Global}");
673 fPtITSouterminPtTPCvsPtAllITSLayer2->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
674 fHistList->Add(fPtITSouterminPtTPCvsPtAllITSLayer2);
675
cc89bb69 676 fPtITSouterminPtTPCvsPtAllITSLayer3 = new TH2F("fPtITSouterminPtTPCvsPtAllITSLayer3","PtITSouterminPtTPCvsPtAllITSLayer3",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 677 fPtITSouterminPtTPCvsPtAllITSLayer3->SetXTitle("p_{t}^{Global}");
678 fPtITSouterminPtTPCvsPtAllITSLayer3->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
679 fHistList->Add(fPtITSouterminPtTPCvsPtAllITSLayer3);
680
cc89bb69 681 fPtITSouterminPtTPCvsPtAllITSLayer4 = new TH2F("fPtITSouterminPtTPCvsPtAllITSLayer4","PtITSouterminPtTPCvsPtAllITSLayer4",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 682 fPtITSouterminPtTPCvsPtAllITSLayer4->SetXTitle("p_{t}^{Global}");
683 fPtITSouterminPtTPCvsPtAllITSLayer4->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
684 fHistList->Add(fPtITSouterminPtTPCvsPtAllITSLayer4);
685
cc89bb69 686 fPtITSouterminPtTPCvsPtAllITSLayer5 = new TH2F("fPtITSouterminPtTPCvsPtAllITSLayer5","PtITSouterminPtTPCvsPtAllITSLayer5",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 687 fPtITSouterminPtTPCvsPtAllITSLayer5->SetXTitle("p_{t}^{Global}");
688 fPtITSouterminPtTPCvsPtAllITSLayer5->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
689 fHistList->Add(fPtITSouterminPtTPCvsPtAllITSLayer5);
690
cc89bb69 691 fPtITSouterminPtTPCvsPtAllNoSPD = new TH2F("fPtITSouterminPtTPCvsPtAllNoSPD","PtITSouterminPtTPCvsPtAllNoSPD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 692 fPtITSouterminPtTPCvsPtAllNoSPD->SetXTitle("p_{t}^{Global}");
693 fPtITSouterminPtTPCvsPtAllNoSPD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
694 fHistList->Add(fPtITSouterminPtTPCvsPtAllNoSPD);
695
cc89bb69 696 fPtITSouterminPtTPCvsPtAllNoSDD = new TH2F("fPtITSouterminPtTPCvsPtAllNoSDD","PtITSouterminPtTPCvsPtAllNoSDD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 697 fPtITSouterminPtTPCvsPtAllNoSDD->SetXTitle("p_{t}^{Global}");
698 fPtITSouterminPtTPCvsPtAllNoSDD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
699 fHistList->Add(fPtITSouterminPtTPCvsPtAllNoSDD);
700
cc89bb69 701 fPtITSouterminPtTPCvsPtAllNoSSD = new TH2F("fPtITSouterminPtTPCvsPtAllNoSSD","PtITSouterminPtTPCvsPtAllNoSSD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
3adc85ec 702 fPtITSouterminPtTPCvsPtAllNoSSD->SetXTitle("p_{t}^{Global}");
703 fPtITSouterminPtTPCvsPtAllNoSSD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
704 fHistList->Add(fPtITSouterminPtTPCvsPtAllNoSSD);
f4d11ac8 705
706 //
cc89bb69 707 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0 = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0","PtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 708 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0->SetXTitle("p_{t}^{Global}");
709 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
710 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0->SetZTitle("#chi^{2}/NPointITS");
711 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0);
712
cc89bb69 713 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1 = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1","PtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 714 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1->SetXTitle("p_{t}^{Global}");
715 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
716 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1->SetZTitle("#chi^{2}/NPointITS");
717 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1);
718
cc89bb69 719 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2 = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2","PtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 720 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2->SetXTitle("p_{t}^{Global}");
721 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
722 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2->SetZTitle("#chi^{2}/NPointITS");
723 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2);
724
cc89bb69 725 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3 = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3","PtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 726 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3->SetXTitle("p_{t}^{Global}");
727 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
728 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3->SetZTitle("#chi^{2}/NPointITS");
729 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3);
730
cc89bb69 731 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4 = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4","PtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 732 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4->SetXTitle("p_{t}^{Global}");
733 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
734 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4->SetZTitle("#chi^{2}/NPointITS");
735 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4);
736
cc89bb69 737 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5 = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5","PtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 738 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5->SetXTitle("p_{t}^{Global}");
739 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
740 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5->SetZTitle("#chi^{2}/NPointITS");
741 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5);
742
cc89bb69 743 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD","PtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 744 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD->SetXTitle("p_{t}^{Global}");
745 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
746 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
747 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD);
748
cc89bb69 749 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD","PtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 750 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD->SetXTitle("p_{t}^{Global}");
751 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
752 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
753 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD);
754
cc89bb69 755 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD","PtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 756 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD->SetXTitle("p_{t}^{Global}");
757 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
758 fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
759 fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD);
f4d11ac8 760
761
fdceab34 762 //ITSrefit
add06ceb 763 fPtSelITS = new TH1F("fPtSelITSrefit","PtSel",fgkNPtBins, binsPt);
fdceab34 764 fHistListITS->Add(fPtSelITS);
765
cc89bb69 766 fPtITSminPtTPCvsPtITS = new TH2F("fPtITSminPtTPCvsPtITS","PtITSminPtTPCvsPtITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt);
65e8ecdd 767 fPtITSminPtTPCvsPtITS->SetXTitle("p_{t}^{Global}");
768 fPtITSminPtTPCvsPtITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 769 fHistListITS->Add(fPtITSminPtTPCvsPtITS);
9f54dd56 770
cc89bb69 771 fPtITSminPtTPCvsPtITSEtaPos = new TH3F("fPtITSminPtTPCvsPtITSEtaPos","PtITSminPtTPCvsPtITSEtaPos",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 772 fPtITSminPtTPCvsPtITSEtaPos->SetXTitle("p_{t}^{Global}");
773 fPtITSminPtTPCvsPtITSEtaPos->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
774 fHistListITS->Add(fPtITSminPtTPCvsPtITSEtaPos);
775
cc89bb69 776 fPtITSminPtTPCvsPtITSEtaNeg = new TH3F("fPtITSminPtTPCvsPtITSEtaNeg","PtITSminPtTPCvsPtITSEtaNeg",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNEtaBins,binsEta);
9f54dd56 777 fPtITSminPtTPCvsPtITSEtaNeg->SetXTitle("p_{t}^{Global}");
778 fPtITSminPtTPCvsPtITSEtaNeg->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
779 fHistListITS->Add(fPtITSminPtTPCvsPtITSEtaNeg);
fdceab34 780
cc89bb69 781 fPtITSminPtTPCvsPtITSNPointTPC = new TH3F("fPtITSminPtTPCvsPtITSNPointTPC","PtITSminPtTPCvsPtITSNPointTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC);
65e8ecdd 782 fPtITSminPtTPCvsPtITSNPointTPC->SetXTitle("p_{t}^{Global}");
783 fPtITSminPtTPCvsPtITSNPointTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 784 fPtITSminPtTPCvsPtITSNPointTPC->SetZTitle("N_{point,TPC}");
785 fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointTPC);
65e8ecdd 786
cc89bb69 787 fPtITSminPtTPCvsPtITSNPointTPCS = new TH3F("fPtITSminPtTPCvsPtITSNPointTPCS","PtITSminPtTPCvsPtITSNPointTPCS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointTPCSBins,binsNPointTPCS);
65e8ecdd 788 fPtITSminPtTPCvsPtITSNPointTPCS->SetXTitle("p_{t}^{Global}");
789 fPtITSminPtTPCvsPtITSNPointTPCS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
790 fPtITSminPtTPCvsPtITSNPointTPCS->SetZTitle("N_{point,TPC}^{Shared}/N_{point,TPC}");
791 fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointTPCS);
792
cc89bb69 793 fPtITSminPtTPCvsPtITSDCAR = new TH3F("fPtITSminPtTPCvsPtITSDCAR","PtITSminPtTPCvsPtITSDCAR",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCARBins,binsDCAR);
65e8ecdd 794 fPtITSminPtTPCvsPtITSDCAR->SetXTitle("p_{t}^{Global}");
795 fPtITSminPtTPCvsPtITSDCAR->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 796 fPtITSminPtTPCvsPtITSDCAR->SetZTitle("DCA_{R}");
797 fHistListITS->Add(fPtITSminPtTPCvsPtITSDCAR);
798
cc89bb69 799 fPtITSminPtTPCvsPtITSDCAZ = new TH3F("fPtITSminPtTPCvsPtITSDCAZ","PtITSminPtTPCvsPtITSDCAZ",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNDCAZBins,binsDCAZ);
65e8ecdd 800 fPtITSminPtTPCvsPtITSDCAZ->SetXTitle("p_{t}^{Global}");
801 fPtITSminPtTPCvsPtITSDCAZ->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 802 fPtITSminPtTPCvsPtITSDCAZ->SetZTitle("DCA_{Z}");
803 fHistListITS->Add(fPtITSminPtTPCvsPtITSDCAZ);
804
cc89bb69 805 fPtITSminPtTPCvsPtITSPhi = new TH3F("fPtITSminPtTPCvsPtITSPhi","PtITSminPtTPCvsPtITSPhi",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNPhiBins,binsPhi);
65e8ecdd 806 fPtITSminPtTPCvsPtITSPhi->SetXTitle("p_{t}^{Global}");
807 fPtITSminPtTPCvsPtITSPhi->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 808 fPtITSminPtTPCvsPtITSPhi->SetZTitle("#phi");
809 fHistListITS->Add(fPtITSminPtTPCvsPtITSPhi);
810
cc89bb69 811 fPtITSminPtTPCvsPtITSNPointITS = new TH3F("fPtITSminPtTPCvsPtITSNPointITS","PtITSminPtTPCvsPtITSNPointITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS);
65e8ecdd 812 fPtITSminPtTPCvsPtITSNPointITS->SetXTitle("p_{t}^{Global}");
813 fPtITSminPtTPCvsPtITSNPointITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
f4d11ac8 814 fPtITSminPtTPCvsPtITSNPointITS->SetZTitle("N_{point,ITS}");
fdceab34 815 fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointITS);
816
cc89bb69 817 fPtITSminPtTPCvsPtITSNSigmaToVertex = new TH3F("fPtITSminPtTPCvsPtITSNSigmaToVertex","PtITSminPtTPCvsPtITSNSigmaToVertex",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNNSigmaToVertexBins,binsNSigmaToVertex);
65e8ecdd 818 fPtITSminPtTPCvsPtITSNSigmaToVertex->SetXTitle("p_{t}^{Global}");
819 fPtITSminPtTPCvsPtITSNSigmaToVertex->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 820 fPtITSminPtTPCvsPtITSNSigmaToVertex->SetZTitle("N#sigma to vertex");
821 fHistListITS->Add(fPtITSminPtTPCvsPtITSNSigmaToVertex);
822
cc89bb69 823 fPtITSminPtTPCvsPtITSChi2C = new TH3F("fPtITSminPtTPCvsPtITSChi2C","PtITSminPtTPCvsPtITSChi2C",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2CBins,binsChi2C);
65e8ecdd 824 fPtITSminPtTPCvsPtITSChi2C->SetXTitle("p_{t}^{Global}");
825 fPtITSminPtTPCvsPtITSChi2C->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 826 fPtITSminPtTPCvsPtITSChi2C->SetZTitle("Constrained #chi^{2}");
827 fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2C);
828
cc89bb69 829 fPtITSminPtTPCvsPtITSRel1PtUncertainty = new TH3F("fPtITSminPtTPCvsPtITSRel1PtUncertainty","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
65e8ecdd 830 fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
831 fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fdceab34 832 fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
833 fHistListITS->Add(fPtITSminPtTPCvsPtITSRel1PtUncertainty);
834
cc89bb69 835 fPtITSminPtTPCvsPtITSChi2PerNClusTPC = new TH3F("fPtITSminPtTPCvsPtITSChi2PerNClusTPC","PtITSminPtTPCvsPtITSChi2PerNClusTPC",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
65e8ecdd 836 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
837 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
838 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
f4d11ac8 839 fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2PerNClusTPC);
840
cc89bb69 841 fPtITSminPtTPCvsPtITSChi2PerNClusITS = new TH3F("fPtITSminPtTPCvsPtITSChi2PerNClusITS","PtITSminPtTPCvsPtITSChi2PerNClusITS",fgkNPtBins, binsPt,fgkNResPtBins,binsResPt,fgkNChi2PerClusBins,binsChi2PerClus);
65e8ecdd 842 fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
843 fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
844 fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
f4d11ac8 845 fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2PerNClusITS);
846
cc89bb69 847 fPtITSminPtTPCvsNPointTPCPhi = new TH3F("fPtITSminPtTPCvsNPointTPCPhi","PtITSminPtTPCvsNPointTPCPhi",fgkNResPtBins,binsResPt,fgkNNPointTPCBins,binsNPointTPC,fgkNPhiBins,binsPhi);
9c8dfcb5 848 fPtITSminPtTPCvsNPointTPCPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
849 fPtITSminPtTPCvsNPointTPCPhi->SetYTitle("N_{point,TPC}");
850 fPtITSminPtTPCvsNPointTPCPhi->SetZTitle("#phi");
851 fHistListITS->Add(fPtITSminPtTPCvsNPointTPCPhi);
852
cc89bb69 853 fPtITSminPtTPCvsNPointITSPhi = new TH3F("fPtITSminPtTPCvsNPointITSPhi","PtITSminPtTPCvsNPointITSPhi",fgkNResPtBins,binsResPt,fgkNNPointITSBins,binsNPointITS,fgkNPhiBins,binsPhi);
9c8dfcb5 854 fPtITSminPtTPCvsNPointITSPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
855 fPtITSminPtTPCvsNPointITSPhi->SetYTitle("N_{point,ITS}");
856 fPtITSminPtTPCvsNPointITSPhi->SetZTitle("#phi");
857 fHistListITS->Add(fPtITSminPtTPCvsNPointITSPhi);
858
cc89bb69 859 fPtITSminPtTPCvsRel1PtUncertaintyPhi = new TH3F("fPtITSminPtTPCvsRel1PtUncertaintyPhi","PtITSminPtTPCvsRel1PtUncertaintyPhi",fgkNResPtBins,binsResPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNPhiBins,binsPhi);
9c8dfcb5 860 fPtITSminPtTPCvsRel1PtUncertaintyPhi->SetXTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
861 fPtITSminPtTPCvsRel1PtUncertaintyPhi->SetYTitle("Rel1PtUncertainty");
862 fPtITSminPtTPCvsRel1PtUncertaintyPhi->SetZTitle("#phi");
863 fHistListITS->Add(fPtITSminPtTPCvsRel1PtUncertaintyPhi);
864
cc89bb69 865 fPtRel1PtUncertaintyChi2PerClusTPC = new TH3F("fPtRel1PtUncertaintyChi2PerClusTPC","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, binsPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNChi2PerClusBins,binsChi2PerClus);
f4d11ac8 866 fPtRel1PtUncertaintyChi2PerClusTPC->SetXTitle("p_{t}^{global}");
867 fPtRel1PtUncertaintyChi2PerClusTPC->SetYTitle("Rel1PtUncertainty");
65e8ecdd 868 fPtRel1PtUncertaintyChi2PerClusTPC->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
f4d11ac8 869 fHistListITS->Add(fPtRel1PtUncertaintyChi2PerClusTPC);
870
cc89bb69 871 fPtNPointTPCSChi2PerClusTPC = new TH3F("fPtNPointTPCSChi2PerClusTPC","PtITSminPtTPCvsPtITSNPointTPCS",fgkNPtBins, binsPt,fgkNNPointTPCSBins,binsNPointTPCS,fgkNChi2PerClusBins,binsChi2PerClus);
65e8ecdd 872 fPtNPointTPCSChi2PerClusTPC->SetXTitle("p_{t}^{global}");
873 fPtNPointTPCSChi2PerClusTPC->SetYTitle("N_{Point,TPC}^{Shared}/N_{Point,TPC}");
874 fPtNPointTPCSChi2PerClusTPC->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
875 fHistListITS->Add(fPtNPointTPCSChi2PerClusTPC);
876
cc89bb69 877 fPtNPointTPCSRel1PtUncertainty = new TH3F("fPtNPointTPCSRel1PtUncertainty","PtITSminPtTPCvsPtITSNPointTPCS",fgkNPtBins, binsPt,fgkNNPointTPCSBins,binsNPointTPCS,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty);
65e8ecdd 878 fPtNPointTPCSRel1PtUncertainty->SetXTitle("p_{t}^{global}");
879 fPtNPointTPCSRel1PtUncertainty->SetYTitle("N_{Point,TPC}^{Shared}/N_{Point,TPC}");
880 fPtNPointTPCSRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
881 fHistListITS->Add(fPtNPointTPCSRel1PtUncertainty);
882
cc89bb69 883 fPtRel1PtUncertaintyChi2PerClusTPCSharedSel = new TH3F("fPtRel1PtUncertaintyChi2PerClusTPCSharedSel","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, binsPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNChi2PerClusBins,binsChi2PerClus);
3adc85ec 884 fPtRel1PtUncertaintyChi2PerClusTPCSharedSel->SetXTitle("p_{t}^{global}");
885 fPtRel1PtUncertaintyChi2PerClusTPCSharedSel->SetYTitle("Rel1PtUncertainty");
886 fPtRel1PtUncertaintyChi2PerClusTPCSharedSel->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
887 fHistListITS->Add(fPtRel1PtUncertaintyChi2PerClusTPCSharedSel);
add06ceb 888
889 fPtAllTPC = new TH1F("fPtAllTPC","PtAll",fgkNPtBins,binsPt);
fdceab34 890 fHistListTPC->Add(fPtAllTPC);
add06ceb 891 fPtSelTPC = new TH1F("fPtSelTPC","PtSel",fgkNPtBins,binsPt);
fdceab34 892 fHistListTPC->Add(fPtSelTPC);
add06ceb 893 fPtSelTPCITS = new TH1F("fPtSelTPCITS","PtSel",fgkNPtBins,binsPt);
fdceab34 894 fHistListTPC->Add(fPtSelTPCITS);
df943115 895
65e8ecdd 896 //****************************************************************************************************************//
897 // Cosmic Candidates //
898 //****************************************************************************************************************//
cc89bb69 899 fPtSignedCosmicCandidates = new TH1F("fPtSignedCosmicCandidates","fPtSignedCosmicCandidates",2*(int)(fgkPtMax-fgkPtMin), -1.*fgkPtMax, fgkPtMax);
900 fHistListCosmics->Add(fPtSignedCosmicCandidates);
65e8ecdd 901 fDeltaPtCosmicCandidates = new TH1F("fDeltaPtCosmicCandidates","fDeltaPtCosmicCandidates",fgkNPtBins, -50., 50.);
902 fHistListCosmics->Add(fDeltaPtCosmicCandidates);
e5abcde9 903 fDeltaPhiSumEta = new TH2F("fDeltaPhiSumEta","fDeltaPhiSumEta",fgkNPhiBins*4,0.,kMaxPhi,80, -2.,2.);
cc89bb69 904 fHistListCosmics->Add(fDeltaPhiSumEta);
905 fDCAZCosmicCandidates = new TH2F("fDCAZCosmicCandidates","fDCAZCosmicCandidates",fgkNDCAZBins,binsDCAZ,fgkNDCAZBins,binsDCAZ);
906 fHistListCosmics->Add(fDCAZCosmicCandidates);
907 fDCARCosmicCandidates = new TH2F("fDCARCosmicCandidates","fDCARCosmicCandidates",fgkNDCARBins,binsDCAR,fgkNDCARBins,binsDCAR);
908 fHistListCosmics->Add(fDCARCosmicCandidates);
e5abcde9 909 fTheta = new TH1F("fTheta","fTheta",fgkNPhiBins*8,0.,kMaxPhi);
add06ceb 910 fHistListCosmics->Add(fTheta);
911 fThetaZoom = new TH1F("fThetaZoom","fThetaZoom",100,TMath::Pi()-1.,TMath::Pi()+1.);
912 fHistListCosmics->Add(fThetaZoom);
e5abcde9 913 fThetaPt1Pt2 = new TH3F("fThetaPt1Pt2","fThetaPt1Pt2",fgkNPhiBins*8,0.,kMaxPhi,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax);
914 fHistListCosmics->Add(fThetaPt1Pt2);
915 fDeltaPhiSumEtaPt1 = new TH3F("fDeltaPhiSumEtaPt1","fDeltaPhiSumEtaPt1",fgkNPhiBins*4,0.,kMaxPhi,80, -2.,2.,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax);
916 fHistListCosmics->Add(fDeltaPhiSumEtaPt1);
917 fDeltaPhiSumEtaPt2 = new TH3F("fDeltaPhiSumEtaPt2","fDeltaPhiSumEtaPt2",fgkNPhiBins*4,0.,kMaxPhi,80, -2.,2.,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax);
918 fHistListCosmics->Add(fDeltaPhiSumEtaPt2);
919 fThetaDCAZ1DCAZ2 = new TH3F("fThetaDCAZ1DCAZ2","fThetaDCAZ1DCAZ2",fgkNPhiBins*8,0.,kMaxPhi,fgkNDCAZBins,-2.,2.,fgkNDCAZBins,-2.,2.);
920 fHistListCosmics->Add(fThetaDCAZ1DCAZ2);
65e8ecdd 921
df943115 922 TH1::AddDirectory(oldStatus);
923
e7b49043 924 if(binsPhi) delete [] binsPhi;
925 if(binsChi2PerClus) delete [] binsChi2PerClus;
926 if(binsPt) delete [] binsPt;
927 if(binsResPt) delete [] binsResPt;
928 if(binsNPointTPC) delete [] binsNPointTPC;
929 if(binsNPointTPCS) delete [] binsNPointTPCS;
930 if(binsDCAR) delete [] binsDCAR;
931 if(binsDCAZ) delete [] binsDCAZ;
932 if(binsNPointITS) delete [] binsNPointITS;
933 if(binsNSigmaToVertex) delete [] binsNSigmaToVertex;
934 if(binsChi2C) delete [] binsChi2C;
935 if(binsEta) delete [] binsEta;
936 if(binsRel1PtUncertainty) delete [] binsRel1PtUncertainty;
937
938
fdceab34 939}
940//________________________________________________________________________
941void AliPWG4HighPtQATPConly::Exec(Option_t *) {
942 // Main loop
943 // Called for each event
df943115 944 AliDebug(2,Form(">> AliPWG4HighPtQATPConly::Exec \n"));
945
b5cc0c6d 946 // All events without selection
b5cc0c6d 947 fNEventAll->Fill(0.);
948
df943115 949 if (!fESD) {
950 AliDebug(2,Form("ERROR: fESD not available"));
67ebd013 951 // Post output data
952 PostData(0, fHistList);
953 PostData(1, fHistListTPC);
954 PostData(2, fHistListITS);
65e8ecdd 955 PostData(3, fHistListCosmics);
fdceab34 956 return;
957 }
958
35ba8832 959// fESD->SetESDfriend(fESDfriend); //Attach the friend to the ESD
960// if (!fESDfriend) {
961// AliDebug(2,Form("ERROR: fESDfriend not available"));
962// // Post output data
963// PostData(0, fHistList);
964// PostData(1, fHistListTPC);
965// PostData(2, fHistListITS);
966// PostData(3, fHistListCosmics);
967// return;
968// }
f4d11ac8 969
67ebd013 970 Bool_t isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
971 if(!isSelected) { //Select collison candidates
b5cc0c6d 972 AliDebug(2,Form(" Trigger Selection: event REJECTED ... "));
cd9a6fa2 973 // Post output data
67ebd013 974 PostData(0, fHistList);
975 PostData(1, fHistListTPC);
976 PostData(2, fHistListITS);
65e8ecdd 977 PostData(3, fHistListCosmics);
b5cc0c6d 978 return;
67ebd013 979 }
fdceab34 980
f4d11ac8 981 // AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
982// // AliMCEventHandler* eventHandler = (AliMCEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
983
984 AliStack* stack = 0x0;
985 AliMCEvent* mcEvent = 0x0;
986
987 if(fMC) {
988 mcEvent = fMC;
989 if (!mcEvent) {
990 AliDebug(2,Form("ERROR: Could not retrieve MC event"));
991 PostData(0, fHistList);
992 PostData(1, fHistListTPC);
993 PostData(2, fHistListITS);
65e8ecdd 994 PostData(3, fHistListCosmics);
f4d11ac8 995 return;
996 }
997
998 AliDebug(2,Form("MC particles: %d", mcEvent->GetNumberOfTracks()));
999
1000 stack = mcEvent->Stack(); //Particles Stack
1001
1002 AliDebug(2,Form("MC particles stack: %d", stack->GetNtrack()));
1003 }
1004
1005
add06ceb 1006 const AliESDVertex *vertex = fESD->GetPrimaryVertexTracks();
1007 if(vertex->GetNContributors()<1) {
1008 // SPD vertex
1009 vertex = fESD->GetPrimaryVertexSPD();
1010 if(vertex->GetNContributors()<1) vertex = 0x0;
1011 }
1012
b5cc0c6d 1013 const AliESDVertex *vtx = fESD->GetPrimaryVertexTracks();
fdceab34 1014 // Need vertex cut
67ebd013 1015 if (vtx->GetNContributors() < 2) {
add06ceb 1016 // SPD vertex
1017 vtx = fESD->GetPrimaryVertexSPD();
1018 if(vtx->GetNContributors()<2) {
1019 vertex = 0x0;
1020 // Post output data
1021 PostData(0, fHistList);
1022 PostData(1, fHistListTPC);
1023 PostData(2, fHistListITS);
1024 PostData(3, fHistListCosmics);
1025 return;
1026 }
67ebd013 1027 }
fdceab34 1028
df943115 1029 AliDebug(2,Form("Vertex title %s, status %d, nCont %d\n",vtx->GetTitle(), vtx->GetStatus(), vtx->GetNContributors()));
b5cc0c6d 1030 double primVtx[3];
1031 vtx->GetXYZ(primVtx);
1032 // printf("primVtx: %g %g %g \n",primVtx[0],primVtx[1],primVtx[2]);
67ebd013 1033 if(TMath::Sqrt(primVtx[0]*primVtx[0] + primVtx[1]*primVtx[1])>1. || TMath::Abs(primVtx[2]>10.)){
cd9a6fa2 1034 // Post output data
1035 PostData(0, fHistList);
1036 PostData(1, fHistListTPC);
1037 PostData(2, fHistListITS);
65e8ecdd 1038 PostData(3, fHistListCosmics);
cd9a6fa2 1039 return;
1040 }
1041 if(!fESD->GetNumberOfTracks() || fESD->GetNumberOfTracks()<2){
1042 // Post output data
1043 PostData(0, fHistList);
1044 PostData(1, fHistListTPC);
1045 PostData(2, fHistListITS);
65e8ecdd 1046 PostData(3, fHistListCosmics);
cd9a6fa2 1047 return;
1048 }
fdceab34 1049 Int_t nTracks = fESD->GetNumberOfTracks();
b5cc0c6d 1050 AliDebug(2,Form("nTracks %d\n", nTracks));
1051
cc89bb69 1052 if(!fTrackCuts) {
1053 // Post output data
1054 PostData(0, fHistList);
1055 PostData(1, fHistListTPC);
1056 PostData(2, fHistListITS);
1057 PostData(3, fHistListCosmics);
1058 return;
1059 }
b5cc0c6d 1060
1061 // Selected events for analysis
1062 fNEventSel->Fill(0.);
df943115 1063
fdceab34 1064 for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) {
cc89bb69 1065
fdceab34 1066 AliESDtrack *track = fESD->GetTrack(iTrack);
1067 AliExternalTrackParam *trackTPC = (AliExternalTrackParam *)track->GetTPCInnerParam();
67ebd013 1068 if(!track || !trackTPC) continue;
cc89bb69 1069
f4d11ac8 1070 const AliESDfriendTrack* constfriendtrack = track->GetFriendTrack();
cc89bb69 1071 //if (!constfriendtrack) { continue;}
1072 // AliESDfriendTrack friendtrack(*constfriendtrack);
f4d11ac8 1073
fdceab34 1074 Float_t pt = track->Pt();
1075 Float_t ptTPC = trackTPC->Pt();
1076 Float_t phi = track->Phi();
1077 Float_t dca2D, dcaZ;
1078 track->GetImpactParameters(dca2D,dcaZ);
1079 // Float_t dca2DTPC, dcaZTPC;
1080 //track->GetImpactParametersTPC(dca2DTPC,dcaZTPC);
1081 UChar_t itsMap = track->GetITSClusterMap();
1082 Int_t nPointITS = 0;
1083 for (Int_t i=0; i < 6; i++) {
1084 if (itsMap & (1 << i))
1085 nPointITS ++;
1086 }
b5cc0c6d 1087 double mom[3];
1088 track->GetPxPyPz(mom);
f4d11ac8 1089 double momTPC[3];
1090 trackTPC->GetPxPyPz(momTPC);
fdceab34 1091 Float_t nSigmaToVertex = fTrackCuts->GetSigmaToVertex(track);// Calculates the number of sigma to the vertex for a track.
1092 Float_t chi2C = track->GetConstrainedChi2();
b5cc0c6d 1093 Float_t relUncertainty1Pt = TMath::Sqrt(TMath::Abs(track->GetSigma1Pt2()))*pt;
f4d11ac8 1094 Float_t chi2PerClusterTPC = -1.;
1095 Float_t nClustersTPC = track->GetTPCNcls();
38ecb6a5 1096 if(nClustersTPC>0.) chi2PerClusterTPC = track->GetTPCchi2()/(2.*nClustersTPC-5.);
1097 Float_t chi2PerNPointITS = -1.;
1098 if(nPointITS>3) chi2PerNPointITS = track->GetITSchi2()/(2.*(float)nPointITS-5.);
fdceab34 1099
1100 fPtAll->Fill(pt);
1101 fPtAllTPC->Fill(ptTPC);
65e8ecdd 1102
cc89bb69 1103 Bool_t cosmic = kFALSE;
add06ceb 1104 if(GetCutType()==2) { if(pt>6.) { cosmic = IsCosmic(track,iTrack,4.); } }
65e8ecdd 1105
fdceab34 1106 if (fTrackCuts->AcceptTrack(track)) {
cc89bb69 1107 if(GetCutType()==1) { if(pt>6.) { cosmic = IsCosmic(track,iTrack,4.); } }
65e8ecdd 1108 // if(cosmic) continue;
1109
fdceab34 1110 fPtSel->Fill(pt);
fdceab34 1111 fPtSelTPC->Fill(ptTPC);
f4d11ac8 1112 if(ptTPC==0. || pt==0.) continue;
fdceab34 1113 fPtAllminPtTPCvsPtAll->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
9f54dd56 1114
1115 if(track->GetSign()>0.) fPtAllminPtTPCvsPtAllEtaPos->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
1116 if(track->GetSign()<0.) fPtAllminPtTPCvsPtAllEtaNeg->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
1117
65e8ecdd 1118 fPtAllminPtTPCvsPtAllNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
1119 if(nClustersTPC>0.) fPtAllminPtTPCvsPtAllNPointTPCS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->GetTPCnclsS()/nClustersTPC);
fdceab34 1120 fPtAllminPtTPCvsPtAllDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
1121 fPtAllminPtTPCvsPtAllDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
1122 fPtAllminPtTPCvsPtAllPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
1123 fPtAllminPtTPCvsPtAllNPointITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nPointITS);
1124 fPtAllminPtTPCvsPtAllNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
1125 fPtAllminPtTPCvsPtAllChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
1126 fPtAllminPtTPCvsPtAllRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
f4d11ac8 1127 fPtAllminPtTPCvsPtAllChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
38ecb6a5 1128 if(nPointITS>3) fPtAllminPtTPCvsPtAllChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
9c8dfcb5 1129 fPtAllminPtTPCvsNPointTPCPhi->Fill((1./pt-1./ptTPC)/(1./pt),nClustersTPC,phi);
1130 fPtAllminPtTPCvsNPointITSPhi->Fill((1./pt-1./ptTPC)/(1./pt),nPointITS,phi);
1131 fPtAllminPtTPCvsRel1PtUncertaintyPhi->Fill((1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt,phi);
1132
f4d11ac8 1133 if(TMath::Abs((1./pt-1./ptTPC)/(1./pt))>0.8) fEtaPhiOutliers->Fill(track->Eta(),phi);
cc89bb69 1134
1135 if (constfriendtrack) {
1136 AliESDfriendTrack friendtrack(*constfriendtrack);
1137 if (friendtrack.GetITSOut()) {
1138 AliExternalTrackParam trackITSouter(*(friendtrack.GetITSOut()));
1139 Float_t ptITSouter = trackITSouter.Pt();
1140 if(ptITSouter==0.) continue;
1141 fPtSelITSouter->Fill(ptITSouter);
1142 fPtITSouterminPtTPCvsPtAll->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter) );
1143
1144 if(trackITSouter.GetSign()>0.) fPtITSouterminPtTPCvsPtAllEtaPos->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),trackITSouter.Eta());
1145 if(trackITSouter.GetSign()<0.) fPtITSouterminPtTPCvsPtAllEtaNeg->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),trackITSouter.Eta());
1146
1147 fPtITSouterminPtTPCvsPtAllNPointTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nClustersTPC);
1148 if(nClustersTPC>0.) fPtITSouterminPtTPCvsPtAllNPointTPCS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),track->GetTPCnclsS()/nClustersTPC);
1149 fPtITSouterminPtTPCvsPtAllDCAR->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dca2D);
1150 fPtITSouterminPtTPCvsPtAllDCAZ->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dcaZ);
1151 fPtITSouterminPtTPCvsPtAllPhi->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),phi);
1152 fPtITSouterminPtTPCvsPtAllNPointITS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nPointITS);
1153 fPtITSouterminPtTPCvsPtAllNSigmaToVertex->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nSigmaToVertex);
1154 fPtITSouterminPtTPCvsPtAllChi2C->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2C);
1155 fPtITSouterminPtTPCvsPtAllRel1PtUncertainty->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),relUncertainty1Pt);
1156 fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerClusterTPC);
1157 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1158 if(track->HasPointOnITSLayer(0)) {
1159 fPtITSouterminPtTPCvsPtAllITSLayer0->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1160 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1161 }
1162 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
1163 fPtITSouterminPtTPCvsPtAllITSLayer1->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1164 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1165 }
1166 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && track->HasPointOnITSLayer(2)) {
1167 fPtITSouterminPtTPCvsPtAllITSLayer2->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1168 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1169 }
1170 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && track->HasPointOnITSLayer(3)) {
1171 fPtITSouterminPtTPCvsPtAllITSLayer3->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1172 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1173 }
1174 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3) && track->HasPointOnITSLayer(4)) {
1175 fPtITSouterminPtTPCvsPtAllITSLayer4->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1176 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1177 }
1178 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1) && !track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3) && !track->HasPointOnITSLayer(4) && track->HasPointOnITSLayer(5)) {
1179 fPtITSouterminPtTPCvsPtAllITSLayer5->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1180 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1181 }
1182
1183 if(!track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) {
1184 fPtITSouterminPtTPCvsPtAllNoSPD->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1185 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1186 }
1187 if(!track->HasPointOnITSLayer(2) && !track->HasPointOnITSLayer(3)) {
1188 fPtITSouterminPtTPCvsPtAllNoSDD->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1189 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1190 }
1191 if(!track->HasPointOnITSLayer(4) && !track->HasPointOnITSLayer(5)) {
1192 fPtITSouterminPtTPCvsPtAllNoSSD->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter));
1193 if(nPointITS>3) fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),chi2PerNPointITS);
1194 }
f4d11ac8 1195 }
1196 }
fdceab34 1197 }//fTrackCuts selection
1198
1199
1200 //ITSrefit selection
1201 if (fTrackCutsITS->AcceptTrack(track)) {
1202
1203 fPtSelITS->Fill(pt);
1204 fPtSelTPCITS->Fill(ptTPC);
1205 fPtITSminPtTPCvsPtITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
9f54dd56 1206 if(track->GetSign()>0.) fPtITSminPtTPCvsPtITSEtaPos->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
1207 if(track->GetSign()<0.) fPtITSminPtTPCvsPtITSEtaNeg->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->Eta());
65e8ecdd 1208 fPtITSminPtTPCvsPtITSNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
1209 if(nClustersTPC>0.) fPtITSminPtTPCvsPtITSNPointTPCS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->GetTPCnclsS()/nClustersTPC);
fdceab34 1210 fPtITSminPtTPCvsPtITSDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
1211 fPtITSminPtTPCvsPtITSDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
10295ac3 1212 fPtITSminPtTPCvsPtITSPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
1213 fPtITSminPtTPCvsPtITSNPointITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nPointITS);
fdceab34 1214 fPtITSminPtTPCvsPtITSNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
1215 fPtITSminPtTPCvsPtITSChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
1216 fPtITSminPtTPCvsPtITSRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
f4d11ac8 1217 fPtITSminPtTPCvsPtITSChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
38ecb6a5 1218 if(nPointITS>3) fPtITSminPtTPCvsPtITSChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
9c8dfcb5 1219 fPtITSminPtTPCvsNPointTPCPhi->Fill((1./pt-1./ptTPC)/(1./pt),nClustersTPC,phi);
1220 fPtITSminPtTPCvsNPointITSPhi->Fill((1./pt-1./ptTPC)/(1./pt),nPointITS,phi);
1221 fPtITSminPtTPCvsRel1PtUncertaintyPhi->Fill((1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt,phi);
65e8ecdd 1222
1223 fPtRel1PtUncertaintyChi2PerClusTPC->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
1224 fPtNPointTPCSChi2PerClusTPC->Fill(pt,track->GetTPCnclsS()/nClustersTPC,chi2PerClusterTPC);
1225 fPtNPointTPCSRel1PtUncertainty->Fill(pt,track->GetTPCnclsS()/nClustersTPC,relUncertainty1Pt);
3adc85ec 1226 if(track->GetTPCnclsS()/nClustersTPC>0.05) fPtRel1PtUncertaintyChi2PerClusTPCSharedSel->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
fdceab34 1227 }//fTrackCutsITS loop
1228
f4d11ac8 1229 }//ESD track loop
fdceab34 1230
1231 // Post output data
1232 PostData(0, fHistList);
1233 PostData(1, fHistListTPC);
1234 PostData(2, fHistListITS);
65e8ecdd 1235 PostData(3, fHistListCosmics);
1236
1237}
1238//________________________________________________________________________
1239Bool_t AliPWG4HighPtQATPConly::IsCosmic(const AliESDtrack *track1 , Int_t trackNumber, Double_t ptMin)
1240{
9c8dfcb5 1241 Bool_t candidate1 = kFALSE;
65e8ecdd 1242 Bool_t candidate2 = kFALSE;
9c8dfcb5 1243 if(!track1) return candidate1;
65e8ecdd 1244
1245 Int_t nTracks = fESD->GetNumberOfTracks();
cc89bb69 1246
1247 Float_t dcaR[2] = {0.,0.};
1248 Float_t dcaZ[2] = {0.,0.};
65e8ecdd 1249
add06ceb 1250 for (Int_t iTrack2 = trackNumber+1; iTrack2 < nTracks; iTrack2++) {
65e8ecdd 1251 candidate2 = kFALSE;
add06ceb 1252 AliESDtrack *track2 = fESD->GetTrack(iTrack2);
65e8ecdd 1253 if(!track2) continue;
add06ceb 1254 if(GetCutType()==1 && !(fTrackCuts->AcceptTrack(track2))) { continue; }
65e8ecdd 1255 if(track2->Pt()<ptMin) continue;
1256
9c8dfcb5 1257 //Check if same charge. If not same charge, pair is cosmic candidate
9f54dd56 1258 //Removed condition for time being. Not so clear how well we can measure curvature at high momenta
9c8dfcb5 1259 // if( (track1->GetSign()*track2->GetSign()) > 0. ) continue;
65e8ecdd 1260
1261 //Check if back-to-back
1262 Double_t mom1[3],mom2[3];
1263 track1->GetPxPyPz(mom1);
1264 track2->GetPxPyPz(mom2);
1265 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]) );
add06ceb 1266 Double_t theta = TMath::ACos(cosTheta);
e5abcde9 1267 if(cosTheta<0.) theta+=TMath::Pi();
1268 //if(TMath::Abs(TMath::Pi()-theta)<fMaxCosmicAngle) { candidate1 = kTRUE; candidate2 = kTRUE;}
add06ceb 1269
00c1235a 1270// Double_t cosMaxCosmicAngle[2] = {TMath::Cos(TMath::Pi()-fMaxCosmicAngle),TMath::Cos(TMath::Pi()+fMaxCosmicAngle)};
add06ceb 1271// if(cosTheta >= cosMaxCosmicAngle[0] && cosTheta <= cosMaxCosmicAngle[1]) {
1272 candidate1 = kTRUE; candidate2 = kTRUE;//}
65e8ecdd 1273 if(candidate2) {
1274 fDeltaPtCosmicCandidates->Fill(track1->Pt()-track2->Pt());
add06ceb 1275 Float_t deltaPhi = track1->Phi()-track2->Phi();
1276 if(deltaPhi<0.) deltaPhi+=2.*TMath::Pi();
1277 fDeltaPhiSumEta->Fill(deltaPhi,track1->Eta()+track2->Eta());
cc89bb69 1278
1279 track1->GetImpactParameters(dcaR[0],dcaZ[0]);
1280 track2->GetImpactParameters(dcaR[1],dcaZ[1]);
1281 fDCAZCosmicCandidates->Fill(dcaZ[0],dcaZ[1]);
1282 fDCARCosmicCandidates->Fill(dcaR[0],dcaR[1]);
add06ceb 1283 fTheta->Fill(theta);
1284 fThetaZoom->Fill(theta);
e5abcde9 1285 fThetaPt1Pt2->Fill(theta,track1->Pt(),track2->Pt());
1286 fDeltaPhiSumEtaPt1->Fill(deltaPhi,track1->Eta()+track2->Eta(),track1->Pt());
1287 fDeltaPhiSumEtaPt2->Fill(deltaPhi,track1->Eta()+track2->Eta(),track2->Pt());
1288 fThetaDCAZ1DCAZ2->Fill(theta,dcaZ[0],dcaZ[1]);
65e8ecdd 1289 }
fdceab34 1290
65e8ecdd 1291 }
1292
9c8dfcb5 1293 if(candidate1) {
cc89bb69 1294 fPtSignedCosmicCandidates->Fill(track1->GetSign()*track1->Pt());
65e8ecdd 1295 }
1296
9c8dfcb5 1297 return candidate1;
fdceab34 1298}
65e8ecdd 1299
fdceab34 1300//________________________________________________________________________
1301void AliPWG4HighPtQATPConly::Terminate(Option_t *)
1302{
fdceab34 1303
fdceab34 1304}
df943115 1305
1306#endif