]>
Commit | Line | Data |
---|---|---|
8d63376d | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-2009, 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 | // | |
18 | // AliAnalysisTask to extract from ESD tracks the information | |
19 | // on ITS tracking efficiency and resolutions. | |
20 | // | |
21 | // Author: A.Dainese, andrea.dainese@pd.infn.it | |
22 | ///////////////////////////////////////////////////////////// | |
23 | ||
c2893e82 | 24 | #include <TStyle.h> |
8d63376d | 25 | #include <TChain.h> |
26 | #include <TTree.h> | |
27 | #include <TNtuple.h> | |
28 | #include <TBranch.h> | |
29 | #include <TClonesArray.h> | |
30 | #include <TObjArray.h> | |
31 | #include <TH1F.h> | |
32 | #include <TH2F.h> | |
33 | #include <TCanvas.h> | |
34 | #include <TParticle.h> | |
35 | ||
36 | #include "AliAnalysisTask.h" | |
37 | #include "AliAnalysisManager.h" | |
38 | ||
39 | #include "AliMultiplicity.h" | |
40 | #include "AliVertexerTracks.h" | |
41 | #include "AliESDtrack.h" | |
42 | #include "AliExternalTrackParam.h" | |
43 | #include "AliESDVertex.h" | |
44 | #include "AliESDEvent.h" | |
45 | #include "AliESDfriend.h" | |
46 | #include "AliESDInputHandler.h" | |
47 | #include "AliESDInputHandlerRP.h" | |
f8777463 | 48 | #include "AliESDtrackCuts.h" |
8d63376d | 49 | #include "AliTrackPointArray.h" |
2308c814 | 50 | #include "../ITS/AliITSRecPoint.h" |
8d63376d | 51 | |
f8777463 | 52 | #include "AliInputEventHandler.h" |
8d63376d | 53 | #include "AliMCEventHandler.h" |
54 | #include "AliMCEvent.h" | |
55 | #include "AliStack.h" | |
56 | #include "AliLog.h" | |
57 | ||
58 | #include "AliGenEventHeader.h" | |
59 | #include "AliAnalysisTaskITSTrackingCheck.h" | |
60 | ||
61 | ||
62 | ClassImp(AliAnalysisTaskITSTrackingCheck) | |
d98a315a | 63 | AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck() : |
64 | AliAnalysisTaskSE(), | |
65 | fReadMC(kFALSE), | |
66 | fReadRPLabels(kFALSE), | |
67 | fFillNtuples(kFALSE), | |
68 | fUseITSSAforNtuples(kFALSE), | |
69 | fESD(0), | |
70 | fOutput(0), | |
71 | fHistNtracks(0), | |
72 | fHistNclsITSMI(0), | |
73 | fHistNclsITSSA(0), | |
74 | fHistNclsITSSAInAcc(0), | |
75 | fHistClusterMapITSMI(0), | |
76 | fHistClusterMapITSMIok(0), | |
77 | fHistClusterMapITSMIbad(0), | |
78 | fHistClusterMapITSMIskipped(0), | |
79 | fHistClusterMapITSMIoutinz(0), | |
80 | fHistClusterMapITSMInorefit(0), | |
81 | fHistClusterMapITSMInocls(0), | |
82 | fHistClusterMapITSMIokoutinzbad(0), | |
83 | fHistClusterMapITSSA(0), | |
84 | fHistClusterMapITSSAok(0), | |
85 | fHistClusterMapITSSAbad(0), | |
86 | fHistClusterMapITSSAskipped(0), | |
87 | fHistClusterMapITSSAoutinz(0), | |
88 | fHistClusterMapITSSAnorefit(0), | |
89 | fHistClusterMapITSSAnocls(0), | |
90 | fHistClusterMapITSSAokoutinzbad(0), | |
91 | fHistClusterMapITSSAInAcc(0), | |
92 | fHistClusterMapITSSAokInAcc(0), | |
93 | fHistClusterMapITSSAbadInAcc(0), | |
94 | fHistClusterMapITSSAskippedInAcc(0), | |
95 | fHistClusterMapITSSAoutinzInAcc(0), | |
96 | fHistClusterMapITSSAnorefitInAcc(0), | |
97 | fHistClusterMapITSSAnoclsInAcc(0), | |
98 | fHistClusterMapITSSAokoutinzbadInAcc(0), | |
99 | fHistClusterMapModuleITSSAokInAcc(0), | |
100 | fHistClusterMapModuleITSSAbadInAcc(0), | |
101 | fHistClusterMapModuleITSSAnoclsInAcc(0), | |
102 | fHistPhiTPCInAcc(0), | |
103 | fHistPtTPC(0), | |
104 | fHistPtTPCInAcc(0), | |
105 | fHistPtITSMI2(0), | |
106 | fHistPtITSMI3(0), | |
107 | fHistPtITSMI4(0), | |
108 | fHistPtITSMI5(0), | |
109 | fHistPtITSMI6(0), | |
110 | fHistPtITSMISPD(0), | |
111 | fHistPtITSMIoneSPD(0), | |
112 | fHistPtITSMI2InAcc(0), | |
113 | fHistPtITSMI3InAcc(0), | |
114 | fHistPtITSMI4InAcc(0), | |
115 | fHistPtITSMI5InAcc(0), | |
116 | fHistPtITSMI6InAcc(0), | |
117 | fHistPtITSMISPDInAcc(0), | |
118 | fHistPtITSMIoneSPDInAcc(0), | |
119 | fHistPtITSMIokbadoutinz6(0), | |
120 | fHistPtITSMIokbadoutinz4InAcc(0), | |
121 | fHistPtITSMIokbadoutinz5InAcc(0), | |
122 | fHistPtITSMIokbadoutinz6InAcc(0), | |
123 | fHistPhiITSMIokbadoutinz6InAcc(0), | |
124 | fNtupleESDTracks(0), | |
125 | fNtupleITSAlignExtra(0), | |
126 | fNtupleITSAlignSPDTracklets(0) | |
127 | { | |
128 | // Constructor | |
129 | } | |
8d63376d | 130 | |
131 | //________________________________________________________________________ | |
132 | AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) : | |
d98a315a | 133 | AliAnalysisTaskSE(name), |
2308c814 | 134 | fReadMC(kFALSE), |
8d63376d | 135 | fReadRPLabels(kFALSE), |
2308c814 | 136 | fFillNtuples(kFALSE), |
3f18d0a6 | 137 | fUseITSSAforNtuples(kFALSE), |
f8777463 | 138 | fUsePhysSel(kFALSE), |
8d63376d | 139 | fESD(0), |
8d63376d | 140 | fOutput(0), |
f8777463 | 141 | fHistNEvents(0), |
142 | fHistNEventsFrac(0), | |
8d63376d | 143 | fHistNtracks(0), |
144 | fHistNclsITSMI(0), | |
145 | fHistNclsITSSA(0), | |
2308c814 | 146 | fHistNclsITSSAInAcc(0), |
8d63376d | 147 | fHistClusterMapITSMI(0), |
148 | fHistClusterMapITSMIok(0), | |
149 | fHistClusterMapITSMIbad(0), | |
150 | fHistClusterMapITSMIskipped(0), | |
151 | fHistClusterMapITSMIoutinz(0), | |
152 | fHistClusterMapITSMInorefit(0), | |
153 | fHistClusterMapITSMInocls(0), | |
2308c814 | 154 | fHistClusterMapITSMIokoutinzbad(0), |
8d63376d | 155 | fHistClusterMapITSSA(0), |
156 | fHistClusterMapITSSAok(0), | |
157 | fHistClusterMapITSSAbad(0), | |
158 | fHistClusterMapITSSAskipped(0), | |
159 | fHistClusterMapITSSAoutinz(0), | |
160 | fHistClusterMapITSSAnorefit(0), | |
161 | fHistClusterMapITSSAnocls(0), | |
2308c814 | 162 | fHistClusterMapITSSAokoutinzbad(0), |
163 | fHistClusterMapITSSAInAcc(0), | |
164 | fHistClusterMapITSSAokInAcc(0), | |
165 | fHistClusterMapITSSAbadInAcc(0), | |
166 | fHistClusterMapITSSAskippedInAcc(0), | |
167 | fHistClusterMapITSSAoutinzInAcc(0), | |
168 | fHistClusterMapITSSAnorefitInAcc(0), | |
169 | fHistClusterMapITSSAnoclsInAcc(0), | |
170 | fHistClusterMapITSSAokoutinzbadInAcc(0), | |
171 | fHistClusterMapModuleITSSAokInAcc(0), | |
172 | fHistClusterMapModuleITSSAbadInAcc(0), | |
173 | fHistClusterMapModuleITSSAnoclsInAcc(0), | |
f8777463 | 174 | fHistClusterMapModuleITSMIokInAcc(0), |
175 | fHistClusterMapModuleITSMIbadInAcc(0), | |
176 | fHistClusterMapModuleITSMInoclsInAcc(0), | |
177 | fHistxlocSDDok(0), | |
178 | fHistzlocSDDok(0), | |
179 | fHistxlocVSmodSDDok(0), | |
180 | fHistxlocSDDall(0), | |
181 | fHistzlocSDDall(0), | |
3f18d0a6 | 182 | fHistPhiTPCInAcc(0), |
8d63376d | 183 | fHistPtTPC(0), |
3f18d0a6 | 184 | fHistPtTPCInAcc(0), |
f8777463 | 185 | fHistdEdxVSPtTPCInAcc(0), |
186 | fHistdEdxVSPtITSTPCsel(0), | |
187 | fHistPtVSphiTPCInAcc(0), | |
188 | fHistPtTPCInAccNoTRDout(0), | |
189 | fHistPtTPCInAccNoTOFout(0), | |
190 | fHistPtTPCInAccWithPtTPCAtInnerWall(0), | |
191 | fHistPtTPCInAccWithPtTPCAtVtx(0), | |
192 | fHistDeltaPtTPC(0), | |
193 | fHistPtTPCInAccP(0), | |
194 | fHistPtTPCInAccS(0), | |
195 | fHistPtTPCInAccPfromStrange(0), | |
196 | fHistPtTPCInAccSfromStrange(0), | |
197 | fHistPtTPCInAccSfromMat(0), | |
8d63376d | 198 | fHistPtITSMI2(0), |
199 | fHistPtITSMI3(0), | |
200 | fHistPtITSMI4(0), | |
201 | fHistPtITSMI5(0), | |
202 | fHistPtITSMI6(0), | |
203 | fHistPtITSMISPD(0), | |
7b4d74b2 | 204 | fHistPtITSMIoneSPD(0), |
3f18d0a6 | 205 | fHistPtITSMI2InAcc(0), |
206 | fHistPtITSMI3InAcc(0), | |
207 | fHistPtITSMI4InAcc(0), | |
208 | fHistPtITSMI5InAcc(0), | |
209 | fHistPtITSMI6InAcc(0), | |
210 | fHistPtITSMISPDInAcc(0), | |
7b4d74b2 | 211 | fHistPtITSMIoneSPDInAcc(0), |
f8777463 | 212 | fHistPtITSTPCsel(0), |
213 | fHistPtITSTPCselP(0), | |
214 | fHistPtITSTPCselS(0), | |
215 | fHistPtITSTPCselPfromStrange(0), | |
216 | fHistPtITSTPCselSfromStrange(0), | |
217 | fHistPtITSTPCselSfromMat(0), | |
218 | fHistPtITSMI2InAccP(0), | |
219 | fHistPtITSMI3InAccP(0), | |
220 | fHistPtITSMI4InAccP(0), | |
221 | fHistPtITSMI5InAccP(0), | |
222 | fHistPtITSMI6InAccP(0), | |
223 | fHistPtITSMISPDInAccP(0), | |
224 | fHistPtITSMIoneSPDInAccP(0), | |
225 | fHistPtITSMI2InAccS(0), | |
226 | fHistPtITSMI3InAccS(0), | |
227 | fHistPtITSMI4InAccS(0), | |
228 | fHistPtITSMI5InAccS(0), | |
229 | fHistPtITSMI6InAccS(0), | |
230 | fHistPtITSMISPDInAccS(0), | |
231 | fHistPtITSMIoneSPDInAccS(0), | |
3f18d0a6 | 232 | fHistPtITSMIokbadoutinz6(0), |
c2893e82 | 233 | fHistPtITSMIokbadoutinz4InAcc(0), |
234 | fHistPtITSMIokbadoutinz5InAcc(0), | |
3f18d0a6 | 235 | fHistPtITSMIokbadoutinz6InAcc(0), |
236 | fHistPhiITSMIokbadoutinz6InAcc(0), | |
f8777463 | 237 | fHistRProdVtxInAccP(0), |
238 | fHistRProdVtxInAccS(0), | |
239 | fHistd0rphiTPCInAccP150200(0), | |
240 | fHistd0rphiTPCInAccP500700(0), | |
241 | fHistd0rphiTPCInAccP10001500(0), | |
242 | fHistd0rphiTPCInAccS150200(0), | |
243 | fHistd0rphiTPCInAccS500700(0), | |
244 | fHistd0rphiTPCInAccS10001500(0), | |
245 | fHistd0rphiITSMISPDInAccP150200(0), | |
246 | fHistd0rphiITSMISPDInAccP500700(0), | |
247 | fHistd0rphiITSMISPDInAccP10001500(0), | |
248 | fHistd0rphiITSMISPDInAccS150200(0), | |
249 | fHistd0rphiITSMISPDInAccS500700(0), | |
250 | fHistd0rphiITSMISPDInAccS10001500(0), | |
251 | fHistd0rphiITSMIoneSPDInAccP150200(0), | |
252 | fHistd0rphiITSMIoneSPDInAccP500700(0), | |
253 | fHistd0rphiITSMIoneSPDInAccP10001500(0), | |
254 | fHistd0zITSMIoneSPDInAccP150200(0), | |
255 | fHistd0zITSMIoneSPDInAccP500700(0), | |
256 | fHistd0zITSMIoneSPDInAccP10001500(0), | |
257 | fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0), | |
258 | fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0), | |
259 | fHistd0rphiITSMIoneSPDInAccS150200(0), | |
260 | fHistd0rphiITSMIoneSPDInAccS500700(0), | |
261 | fHistd0rphiITSMIoneSPDInAccS500700from22(0), | |
262 | fHistd0rphiITSMIoneSPDInAccS500700from211(0), | |
263 | fHistd0rphiITSMIoneSPDInAccS500700from310(0), | |
264 | fHistd0rphiITSMIoneSPDInAccS500700from321(0), | |
265 | fHistd0rphiITSMIoneSPDInAccS10001500(0), | |
266 | fHistd0zITSMIoneSPDInAccS150200(0), | |
267 | fHistd0zITSMIoneSPDInAccS500700(0), | |
268 | fHistd0zITSMIoneSPDInAccS10001500(0), | |
269 | fHistPDGMoth(0), | |
270 | fHistPDGMoth150200(0), | |
271 | fHistPDGMoth500700(0), | |
272 | fHistPDGMoth10001500(0), | |
273 | fHistPDGTrk(0), | |
8d63376d | 274 | fNtupleESDTracks(0), |
275 | fNtupleITSAlignExtra(0), | |
f8777463 | 276 | fNtupleITSAlignSPDTracklets(0), |
277 | fESDtrackCutsTPC(0), | |
278 | fESDtrackCutsITSTPC(0) | |
8d63376d | 279 | { |
280 | // Constructor | |
281 | ||
f8777463 | 282 | for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0; |
8d63376d | 283 | |
284 | // Define input and output slots here | |
8d63376d | 285 | // Output slot #0 writes into a TList container |
d98a315a | 286 | DefineOutput(1, TList::Class()); //My private output |
8d63376d | 287 | } |
288 | //________________________________________________________________________ | |
289 | AliAnalysisTaskITSTrackingCheck::~AliAnalysisTaskITSTrackingCheck() | |
290 | { | |
291 | // Destructor | |
292 | ||
293 | // histograms are in the output list and deleted when the output | |
294 | // list is deleted by the TSelector dtor | |
295 | ||
296 | if (fOutput) { | |
297 | delete fOutput; | |
298 | fOutput = 0; | |
299 | } | |
300 | } | |
301 | ||
302 | //________________________________________________________________________ | |
8d63376d | 303 | //________________________________________________________________________ |
d98a315a | 304 | void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects() |
8d63376d | 305 | { |
306 | // Create histograms | |
307 | // Called once | |
308 | ||
c2893e82 | 309 | gStyle->SetHistLineWidth(2); |
310 | ||
f8777463 | 311 | Int_t nPtBins=34; |
312 | Float_t xPtBins[35]={0,0.025,0.05,0.075,0.1,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.3,0.325,0.35,0.375,0.4,0.5,0.6,0.7,0.8,1.0,1.5,2.,2.5,3,4,5,6,8,10,15,20,25,30}; | |
3f18d0a6 | 313 | |
f8777463 | 314 | for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0; |
8d63376d | 315 | |
316 | // Several histograms are more conveniently managed in a TList | |
317 | fOutput = new TList; | |
318 | fOutput->SetOwner(); | |
319 | ||
f8777463 | 320 | fHistPDGMoth = new TH1F("fHistPDGMoth","",4000,0,4000); |
321 | fOutput->Add(fHistPDGMoth); | |
322 | fHistPDGMoth150200 = new TH1F("fHistPDGMoth150200","",4000,0,4000); | |
323 | fOutput->Add(fHistPDGMoth150200); | |
324 | fHistPDGMoth500700 = new TH1F("fHistPDGMoth500700","",4000,0,4000); | |
325 | fOutput->Add(fHistPDGMoth500700); | |
326 | fHistPDGMoth10001500 = new TH1F("fHistPDGMoth10001500","",4000,0,4000); | |
327 | fOutput->Add(fHistPDGMoth10001500); | |
328 | fHistPDGTrk = new TH1F("fHistPDGTrk","",4000,0,4000); | |
329 | fOutput->Add(fHistPDGTrk); | |
330 | ||
331 | fHistNEvents = new TH1F("fHistNEvents", "Events: -1 tot, 0 sel, 1 vSPD3D, 2 vSPDZ, 3 vSPD, 4 vTRK; Type; N Events",12, -1.5, 10.5); | |
332 | fHistNEvents->SetMinimum(0); | |
333 | fOutput->Add(fHistNEvents); | |
334 | ||
335 | fHistNEventsFrac = (TH1F*)fHistNEvents->Clone("fHistNEventsFrac"); | |
336 | fOutput->Add(fHistNEventsFrac); | |
337 | ||
8d63376d | 338 | fHistNtracks = new TH1F("fHistNtracks", "N ESD tracks; N tracks; Events",5000, -0.5, 4999.5); |
339 | fHistNtracks->Sumw2(); | |
340 | fHistNtracks->SetMinimum(0); | |
341 | fOutput->Add(fHistNtracks); | |
342 | ||
343 | fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",7, -0.5, 6.5); | |
344 | fHistNclsITSMI->Sumw2(); | |
345 | fHistNclsITSMI->SetMinimum(0); | |
346 | fOutput->Add(fHistNclsITSMI); | |
347 | ||
2308c814 | 348 | fHistNclsITSSAInAcc = new TH1F("fHistNclsITSSAInAcc", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5); |
349 | fHistNclsITSSAInAcc->Sumw2(); | |
350 | fHistNclsITSSAInAcc->SetMinimum(0); | |
351 | fOutput->Add(fHistNclsITSSAInAcc); | |
352 | ||
8d63376d | 353 | fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5); |
354 | fHistNclsITSSA->Sumw2(); | |
355 | fHistNclsITSSA->SetMinimum(0); | |
356 | fOutput->Add(fHistNclsITSSA); | |
357 | ||
358 | fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",6, -0.5, 5.5); | |
359 | fHistClusterMapITSMI->Sumw2(); | |
360 | fHistClusterMapITSMI->SetMinimum(0); | |
361 | fOutput->Add(fHistClusterMapITSMI); | |
362 | ||
363 | fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5); | |
364 | fHistClusterMapITSSA->Sumw2(); | |
365 | fHistClusterMapITSSA->SetMinimum(0); | |
366 | fOutput->Add(fHistClusterMapITSSA); | |
367 | ||
2308c814 | 368 | fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
369 | fHistClusterMapITSSAInAcc->Sumw2(); | |
370 | fHistClusterMapITSSAInAcc->SetMinimum(0); | |
371 | fOutput->Add(fHistClusterMapITSSAInAcc); | |
372 | ||
8d63376d | 373 | fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5); |
374 | fHistClusterMapITSMIok->Sumw2(); | |
375 | fHistClusterMapITSMIok->SetMinimum(0); | |
376 | fOutput->Add(fHistClusterMapITSMIok); | |
377 | ||
2308c814 | 378 | fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
379 | fHistClusterMapITSSAokInAcc->Sumw2(); | |
380 | fHistClusterMapITSSAokInAcc->SetMinimum(0); | |
381 | fOutput->Add(fHistClusterMapITSSAokInAcc); | |
382 | ||
383 | fHistClusterMapModuleITSSAokInAcc = new TH1F("fHistClusterMapModuleITSSAokInAcc", "N tracks with ok on Module (SA); Module; N tracks",2198, -0.5, 2197.5); | |
384 | fHistClusterMapModuleITSSAokInAcc->SetMinimum(0); | |
385 | fOutput->Add(fHistClusterMapModuleITSSAokInAcc); | |
386 | ||
f8777463 | 387 | fHistClusterMapModuleITSMIokInAcc = new TH1F("fHistClusterMapModuleITSMIokInAcc", "N tracks with ok on Module (MI); Module; N tracks",2198, -0.5, 2197.5); |
388 | fHistClusterMapModuleITSMIokInAcc->SetMinimum(0); | |
389 | fOutput->Add(fHistClusterMapModuleITSMIokInAcc); | |
390 | ||
8d63376d | 391 | fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
392 | fHistClusterMapITSSAok->Sumw2(); | |
393 | fHistClusterMapITSSAok->SetMinimum(0); | |
394 | fOutput->Add(fHistClusterMapITSSAok); | |
395 | ||
396 | fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",6, -0.5, 5.5); | |
397 | fHistClusterMapITSMIbad->Sumw2(); | |
398 | fHistClusterMapITSMIbad->SetMinimum(0); | |
399 | fOutput->Add(fHistClusterMapITSMIbad); | |
400 | ||
2308c814 | 401 | fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
402 | fHistClusterMapITSSAbadInAcc->Sumw2(); | |
403 | fHistClusterMapITSSAbadInAcc->SetMinimum(0); | |
404 | fOutput->Add(fHistClusterMapITSSAbadInAcc); | |
405 | ||
406 | fHistClusterMapModuleITSSAbadInAcc = new TH1F("fHistClusterMapModuleITSSAbadInAcc", "N tracks with bad on Module (SA); Module; N tracks",2198, -0.5, 2197.5); | |
407 | fHistClusterMapModuleITSSAbadInAcc->SetMinimum(0); | |
408 | fOutput->Add(fHistClusterMapModuleITSSAbadInAcc); | |
409 | ||
f8777463 | 410 | fHistClusterMapModuleITSMIbadInAcc = new TH1F("fHistClusterMapModuleITSMIbadInAcc", "N tracks with bad on Module (MI); Module; N tracks",2198, -0.5, 2197.5); |
411 | fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0); | |
412 | fOutput->Add(fHistClusterMapModuleITSMIbadInAcc); | |
413 | ||
8d63376d | 414 | fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
415 | fHistClusterMapITSSAbad->Sumw2(); | |
416 | fHistClusterMapITSSAbad->SetMinimum(0); | |
417 | fOutput->Add(fHistClusterMapITSSAbad); | |
418 | ||
419 | fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",6, -0.5, 5.5); | |
420 | fHistClusterMapITSMIskipped->Sumw2(); | |
421 | fHistClusterMapITSMIskipped->SetMinimum(0); | |
422 | fOutput->Add(fHistClusterMapITSMIskipped); | |
423 | ||
2308c814 | 424 | fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
425 | fHistClusterMapITSSAskippedInAcc->Sumw2(); | |
426 | fHistClusterMapITSSAskippedInAcc->SetMinimum(0); | |
427 | fOutput->Add(fHistClusterMapITSSAskippedInAcc); | |
428 | ||
8d63376d | 429 | fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
430 | fHistClusterMapITSSAskipped->Sumw2(); | |
431 | fHistClusterMapITSSAskipped->SetMinimum(0); | |
432 | fOutput->Add(fHistClusterMapITSSAskipped); | |
433 | ||
434 | fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",6, -0.5, 5.5); | |
435 | fHistClusterMapITSMIoutinz->Sumw2(); | |
436 | fHistClusterMapITSMIoutinz->SetMinimum(0); | |
437 | fOutput->Add(fHistClusterMapITSMIoutinz); | |
438 | ||
2308c814 | 439 | fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
440 | fHistClusterMapITSSAoutinzInAcc->Sumw2(); | |
441 | fHistClusterMapITSSAoutinzInAcc->SetMinimum(0); | |
442 | fOutput->Add(fHistClusterMapITSSAoutinzInAcc); | |
443 | ||
8d63376d | 444 | fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
445 | fHistClusterMapITSSAoutinz->Sumw2(); | |
446 | fHistClusterMapITSSAoutinz->SetMinimum(0); | |
447 | fOutput->Add(fHistClusterMapITSSAoutinz); | |
448 | ||
2308c814 | 449 | fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5); |
450 | fHistClusterMapITSSAokoutinzbad->Sumw2(); | |
451 | fHistClusterMapITSSAokoutinzbad->SetMinimum(0); | |
452 | fOutput->Add(fHistClusterMapITSSAokoutinzbad); | |
453 | ||
454 | fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",6, -0.5, 5.5); | |
455 | fHistClusterMapITSMIokoutinzbad->Sumw2(); | |
456 | fHistClusterMapITSMIokoutinzbad->SetMinimum(0); | |
457 | fOutput->Add(fHistClusterMapITSMIokoutinzbad); | |
458 | ||
459 | fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5); | |
460 | fHistClusterMapITSSAokoutinzbadInAcc->Sumw2(); | |
461 | fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0); | |
462 | fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc); | |
463 | ||
8d63376d | 464 | fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",6, -0.5, 5.5); |
465 | fHistClusterMapITSMInorefit->Sumw2(); | |
466 | fHistClusterMapITSMInorefit->SetMinimum(0); | |
467 | fOutput->Add(fHistClusterMapITSMInorefit); | |
468 | ||
2308c814 | 469 | fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
470 | fHistClusterMapITSSAnorefitInAcc->Sumw2(); | |
471 | fHistClusterMapITSSAnorefitInAcc->SetMinimum(0); | |
472 | fOutput->Add(fHistClusterMapITSSAnorefitInAcc); | |
473 | ||
8d63376d | 474 | fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
475 | fHistClusterMapITSSAnorefit->Sumw2(); | |
476 | fHistClusterMapITSSAnorefit->SetMinimum(0); | |
477 | fOutput->Add(fHistClusterMapITSSAnorefit); | |
478 | ||
479 | fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",6, -0.5, 5.5); | |
480 | fHistClusterMapITSMInocls->Sumw2(); | |
481 | fHistClusterMapITSMInocls->SetMinimum(0); | |
482 | fOutput->Add(fHistClusterMapITSMInocls); | |
483 | ||
2308c814 | 484 | fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
485 | fHistClusterMapITSSAnoclsInAcc->Sumw2(); | |
486 | fHistClusterMapITSSAnoclsInAcc->SetMinimum(0); | |
487 | fOutput->Add(fHistClusterMapITSSAnoclsInAcc); | |
488 | ||
489 | fHistClusterMapModuleITSSAnoclsInAcc = new TH1F("fHistClusterMapModuleITSSAnoclsInAcc", "N tracks with nocls on Module (SA); Module; N tracks",2198, -0.5, 2197.5); | |
490 | fHistClusterMapModuleITSSAnoclsInAcc->SetMinimum(0); | |
491 | fOutput->Add(fHistClusterMapModuleITSSAnoclsInAcc); | |
492 | ||
f8777463 | 493 | fHistClusterMapModuleITSMInoclsInAcc = new TH1F("fHistClusterMapModuleITSMInoclsInAcc", "N tracks with nocls on Module (MI); Module; N tracks",2198, -0.5, 2197.5); |
494 | fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0); | |
495 | fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc); | |
496 | ||
8d63376d | 497 | fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5); |
498 | fHistClusterMapITSSAnocls->Sumw2(); | |
499 | fHistClusterMapITSSAnocls->SetMinimum(0); | |
500 | fOutput->Add(fHistClusterMapITSSAnocls); | |
501 | ||
f8777463 | 502 | fHistxlocSDDok = new TH1F("fHistxlocSDDok", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75); |
503 | fHistxlocSDDok->Sumw2(); | |
504 | fHistxlocSDDok->SetMinimum(0); | |
505 | fOutput->Add(fHistxlocSDDok); | |
506 | ||
507 | fHistxlocVSmodSDDok = new TH2F("fHistxlocVSmodSDDok", "SDD points; module; xloc [cm]",260,239.5,499.5,25, -3.75, 3.75); | |
508 | fOutput->Add(fHistxlocVSmodSDDok); | |
509 | ||
510 | fHistzlocSDDok = new TH1F("fHistzlocSDDok", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85); | |
511 | fHistzlocSDDok->Sumw2(); | |
512 | fHistzlocSDDok->SetMinimum(0); | |
513 | fOutput->Add(fHistzlocSDDok); | |
514 | ||
515 | fHistxlocSDDall = new TH1F("fHistxlocSDDall", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75); | |
516 | fHistxlocSDDall->Sumw2(); | |
517 | fHistxlocSDDall->SetMinimum(0); | |
518 | fOutput->Add(fHistxlocSDDall); | |
519 | ||
520 | fHistzlocSDDall = new TH1F("fHistzlocSDDall", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85); | |
521 | fHistzlocSDDall->Sumw2(); | |
522 | fHistzlocSDDall->SetMinimum(0); | |
523 | fOutput->Add(fHistzlocSDDall); | |
524 | ||
525 | ||
3f18d0a6 | 526 | fHistPhiTPCInAcc = new TH1F("fHistPhiTPCInAcc","Azimuthal distribution of TPC tracks; #phi; N tracks",100, 0, 2.*3.1415); |
527 | fHistPhiTPCInAcc->Sumw2(); | |
528 | fHistPhiTPCInAcc->SetMinimum(0); | |
529 | fOutput->Add(fHistPhiTPCInAcc); | |
530 | ||
531 | fHistPhiITSMIokbadoutinz6InAcc = new TH1F("fHistPhiITSMIokbadoutinz6InAcc","Azimuthal distribution of ITSMI tracks with 6 layers OK; #phi; N tracks",100,0,2.*3.1415); | |
532 | fHistPhiITSMIokbadoutinz6InAcc->Sumw2(); | |
533 | fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0); | |
534 | fOutput->Add(fHistPhiITSMIokbadoutinz6InAcc); | |
8d63376d | 535 | |
3f18d0a6 | 536 | fHistPtTPC = new TH1F("fHistPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 537 | fHistPtTPC->Sumw2(); |
538 | fHistPtTPC->SetMinimum(0); | |
539 | fOutput->Add(fHistPtTPC); | |
540 | ||
3f18d0a6 | 541 | fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 542 | fHistPtITSMI6->Sumw2(); |
543 | fHistPtITSMI6->SetMinimum(0); | |
544 | fOutput->Add(fHistPtITSMI6); | |
545 | ||
3f18d0a6 | 546 | fHistPtITSMI5 = new TH1F("fHistPtITSMI5","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 547 | fHistPtITSMI5->Sumw2(); |
548 | fHistPtITSMI5->SetMinimum(0); | |
549 | fOutput->Add(fHistPtITSMI5); | |
550 | ||
3f18d0a6 | 551 | fHistPtITSMI4 = new TH1F("fHistPtITSMI4","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 552 | fHistPtITSMI4->Sumw2(); |
553 | fHistPtITSMI4->SetMinimum(0); | |
554 | fOutput->Add(fHistPtITSMI4); | |
555 | ||
3f18d0a6 | 556 | fHistPtITSMI3 = new TH1F("fHistPtITSMI3","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 557 | fHistPtITSMI3->Sumw2(); |
558 | fHistPtITSMI3->SetMinimum(0); | |
559 | fOutput->Add(fHistPtITSMI3); | |
560 | ||
3f18d0a6 | 561 | fHistPtITSMI2 = new TH1F("fHistPtITSMI2","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 562 | fHistPtITSMI2->Sumw2(); |
563 | fHistPtITSMI2->SetMinimum(0); | |
564 | fOutput->Add(fHistPtITSMI2); | |
565 | ||
3f18d0a6 | 566 | fHistPtITSMISPD = new TH1F("fHistPtITSMISPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
8d63376d | 567 | fHistPtITSMISPD->Sumw2(); |
568 | fHistPtITSMISPD->SetMinimum(0); | |
569 | fOutput->Add(fHistPtITSMISPD); | |
3f18d0a6 | 570 | |
7b4d74b2 | 571 | fHistPtITSMIoneSPD = new TH1F("fHistPtITSMIoneSPD","pt distribution of ITSMIoneSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
572 | fHistPtITSMIoneSPD->Sumw2(); | |
573 | fHistPtITSMIoneSPD->SetMinimum(0); | |
574 | fOutput->Add(fHistPtITSMIoneSPD); | |
575 | ||
3f18d0a6 | 576 | fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
577 | fHistPtTPCInAcc->Sumw2(); | |
578 | fHistPtTPCInAcc->SetMinimum(0); | |
579 | fOutput->Add(fHistPtTPCInAcc); | |
580 | ||
f8777463 | 581 | fHistdEdxVSPtTPCInAcc = new TH2F("fHistdEdxVSPtTPCInAcc","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; TPC dE/dx",100,0,1,50,0,500); |
582 | fOutput->Add(fHistdEdxVSPtTPCInAcc); | |
583 | ||
584 | fHistdEdxVSPtITSTPCsel = new TH2F("fHistdEdxVSPtITSTPCsel","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; ITS dE/dx",100,0,1,50,0,500); | |
585 | fOutput->Add(fHistdEdxVSPtITSTPCsel); | |
586 | ||
587 | fHistPtVSphiTPCInAcc = new TH2F("fHistPtVSphiTPCInAcc","pt distribution of TPC tracks; phi; p_{t} [GeV/c]",18,0,6.28,20,0,0.5); | |
588 | fHistPtVSphiTPCInAcc->SetMinimum(0); | |
589 | fOutput->Add(fHistPtVSphiTPCInAcc); | |
590 | ||
591 | fHistPtTPCInAccNoTRDout = new TH1F("fHistPtTPCInAccNoTRDout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
592 | fHistPtTPCInAccNoTRDout->Sumw2(); | |
593 | fHistPtTPCInAccNoTRDout->SetMinimum(0); | |
594 | fOutput->Add(fHistPtTPCInAccNoTRDout); | |
595 | ||
596 | fHistPtTPCInAccNoTOFout = new TH1F("fHistPtTPCInAccNoTOFout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
597 | fHistPtTPCInAccNoTOFout->Sumw2(); | |
598 | fHistPtTPCInAccNoTOFout->SetMinimum(0); | |
599 | fOutput->Add(fHistPtTPCInAccNoTOFout); | |
600 | ||
601 | fHistPtTPCInAccWithPtTPCAtVtx = new TH1F("fHistPtTPCInAccWithPtTPCAtVtx","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
602 | fHistPtTPCInAccWithPtTPCAtVtx->Sumw2(); | |
603 | fHistPtTPCInAccWithPtTPCAtVtx->SetMinimum(0); | |
604 | fOutput->Add(fHistPtTPCInAccWithPtTPCAtVtx); | |
605 | ||
606 | fHistPtTPCInAccWithPtTPCAtInnerWall = new TH1F("fHistPtTPCInAccWithPtTPCAtInnerWall","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
607 | fHistPtTPCInAccWithPtTPCAtInnerWall->Sumw2(); | |
608 | fHistPtTPCInAccWithPtTPCAtInnerWall->SetMinimum(0); | |
609 | fOutput->Add(fHistPtTPCInAccWithPtTPCAtInnerWall); | |
610 | ||
611 | fHistDeltaPtTPC = new TH2F("fHistDeltaPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; p_{t} TPC at vtx - p_{t} at inner wall [GeV/c]",10,0,1,50,-1,1); | |
612 | fHistDeltaPtTPC->SetMinimum(0); | |
613 | fOutput->Add(fHistDeltaPtTPC); | |
614 | ||
3f18d0a6 | 615 | fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
616 | fHistPtITSMI6InAcc->Sumw2(); | |
617 | fHistPtITSMI6InAcc->SetMinimum(0); | |
618 | fOutput->Add(fHistPtITSMI6InAcc); | |
619 | ||
620 | fHistPtITSMI5InAcc = new TH1F("fHistPtITSMI5InAcc","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
621 | fHistPtITSMI5InAcc->Sumw2(); | |
622 | fHistPtITSMI5InAcc->SetMinimum(0); | |
623 | fOutput->Add(fHistPtITSMI5InAcc); | |
624 | ||
625 | fHistPtITSMI4InAcc = new TH1F("fHistPtITSMI4InAcc","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
626 | fHistPtITSMI4InAcc->Sumw2(); | |
627 | fHistPtITSMI4InAcc->SetMinimum(0); | |
628 | fOutput->Add(fHistPtITSMI4InAcc); | |
8d63376d | 629 | |
3f18d0a6 | 630 | fHistPtITSMI3InAcc = new TH1F("fHistPtITSMI3InAcc","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
631 | fHistPtITSMI3InAcc->Sumw2(); | |
632 | fHistPtITSMI3InAcc->SetMinimum(0); | |
633 | fOutput->Add(fHistPtITSMI3InAcc); | |
634 | ||
635 | fHistPtITSMI2InAcc = new TH1F("fHistPtITSMI2InAcc","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
636 | fHistPtITSMI2InAcc->Sumw2(); | |
637 | fHistPtITSMI2InAcc->SetMinimum(0); | |
638 | fOutput->Add(fHistPtITSMI2InAcc); | |
639 | ||
640 | fHistPtITSMISPDInAcc = new TH1F("fHistPtITSMISPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
641 | fHistPtITSMISPDInAcc->Sumw2(); | |
642 | fHistPtITSMISPDInAcc->SetMinimum(0); | |
643 | fOutput->Add(fHistPtITSMISPDInAcc); | |
644 | ||
7b4d74b2 | 645 | fHistPtITSMIoneSPDInAcc = new TH1F("fHistPtITSMIoneSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
646 | fHistPtITSMIoneSPDInAcc->Sumw2(); | |
647 | fHistPtITSMIoneSPDInAcc->SetMinimum(0); | |
648 | fOutput->Add(fHistPtITSMIoneSPDInAcc); | |
f8777463 | 649 | |
650 | fHistPtITSTPCsel = new TH1F("fHistPtITSTPCsel","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
651 | fHistPtITSTPCsel->Sumw2(); | |
652 | fHistPtITSTPCsel->SetMinimum(0); | |
653 | fOutput->Add(fHistPtITSTPCsel); | |
654 | ||
655 | fHistPtITSTPCselP = new TH1F("fHistPtITSTPCselP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
656 | fHistPtITSTPCselP->Sumw2(); | |
657 | fHistPtITSTPCselP->SetMinimum(0); | |
658 | fOutput->Add(fHistPtITSTPCselP); | |
659 | ||
660 | fHistPtITSTPCselS = new TH1F("fHistPtITSTPCselS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
661 | fHistPtITSTPCselS->Sumw2(); | |
662 | fHistPtITSTPCselS->SetMinimum(0); | |
663 | fOutput->Add(fHistPtITSTPCselS); | |
664 | ||
665 | fHistPtITSTPCselSfromStrange = new TH1F("fHistPtITSTPCselSfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
666 | fHistPtITSTPCselSfromStrange->Sumw2(); | |
667 | fHistPtITSTPCselSfromStrange->SetMinimum(0); | |
668 | fOutput->Add(fHistPtITSTPCselSfromStrange); | |
669 | ||
670 | fHistPtITSTPCselPfromStrange = new TH1F("fHistPtITSTPCselPfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
671 | fHistPtITSTPCselPfromStrange->Sumw2(); | |
672 | fHistPtITSTPCselPfromStrange->SetMinimum(0); | |
673 | fOutput->Add(fHistPtITSTPCselPfromStrange); | |
674 | ||
675 | fHistPtITSTPCselSfromMat = new TH1F("fHistPtITSTPCselSfromMat","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
676 | fHistPtITSTPCselSfromMat->Sumw2(); | |
677 | fHistPtITSTPCselSfromMat->SetMinimum(0); | |
678 | fOutput->Add(fHistPtITSTPCselSfromMat); | |
679 | ||
680 | fHistPtTPCInAccP = new TH1F("fHistPtTPCInAccP","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
681 | fHistPtTPCInAccP->Sumw2(); | |
682 | fHistPtTPCInAccP->SetMinimum(0); | |
683 | fOutput->Add(fHistPtTPCInAccP); | |
684 | ||
685 | fHistPtTPCInAccPfromStrange = new TH1F("fHistPtTPCInAccPfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
686 | fHistPtTPCInAccPfromStrange->Sumw2(); | |
687 | fHistPtTPCInAccPfromStrange->SetMinimum(0); | |
688 | fOutput->Add(fHistPtTPCInAccPfromStrange); | |
689 | ||
690 | fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
691 | fHistPtITSMI6InAccP->Sumw2(); | |
692 | fHistPtITSMI6InAccP->SetMinimum(0); | |
693 | fOutput->Add(fHistPtITSMI6InAccP); | |
694 | ||
695 | fHistPtITSMI5InAccP = new TH1F("fHistPtITSMI5InAccP","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
696 | fHistPtITSMI5InAccP->Sumw2(); | |
697 | fHistPtITSMI5InAccP->SetMinimum(0); | |
698 | fOutput->Add(fHistPtITSMI5InAccP); | |
699 | ||
700 | fHistPtITSMI4InAccP = new TH1F("fHistPtITSMI4InAccP","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
701 | fHistPtITSMI4InAccP->Sumw2(); | |
702 | fHistPtITSMI4InAccP->SetMinimum(0); | |
703 | fOutput->Add(fHistPtITSMI4InAccP); | |
704 | ||
705 | fHistPtITSMI3InAccP = new TH1F("fHistPtITSMI3InAccP","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
706 | fHistPtITSMI3InAccP->Sumw2(); | |
707 | fHistPtITSMI3InAccP->SetMinimum(0); | |
708 | fOutput->Add(fHistPtITSMI3InAccP); | |
709 | ||
710 | fHistPtITSMI2InAccP = new TH1F("fHistPtITSMI2InAccP","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
711 | fHistPtITSMI2InAccP->Sumw2(); | |
712 | fHistPtITSMI2InAccP->SetMinimum(0); | |
713 | fOutput->Add(fHistPtITSMI2InAccP); | |
714 | ||
715 | fHistPtITSMISPDInAccP = new TH1F("fHistPtITSMISPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
716 | fHistPtITSMISPDInAccP->Sumw2(); | |
717 | fHistPtITSMISPDInAccP->SetMinimum(0); | |
718 | fOutput->Add(fHistPtITSMISPDInAccP); | |
719 | ||
720 | fHistPtITSMIoneSPDInAccP = new TH1F("fHistPtITSMIoneSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
721 | fHistPtITSMIoneSPDInAccP->Sumw2(); | |
722 | fHistPtITSMIoneSPDInAccP->SetMinimum(0); | |
723 | fOutput->Add(fHistPtITSMIoneSPDInAccP); | |
724 | ||
725 | fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
726 | fHistPtTPCInAccS->Sumw2(); | |
727 | fHistPtTPCInAccS->SetMinimum(0); | |
728 | fOutput->Add(fHistPtTPCInAccS); | |
729 | ||
730 | fHistPtTPCInAccSfromStrange = new TH1F("fHistPtTPCInAccSfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
731 | fHistPtTPCInAccSfromStrange->Sumw2(); | |
732 | fHistPtTPCInAccSfromStrange->SetMinimum(0); | |
733 | fOutput->Add(fHistPtTPCInAccSfromStrange); | |
734 | ||
735 | fHistPtTPCInAccSfromMat = new TH1F("fHistPtTPCInAccSfromMat","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
736 | fHistPtTPCInAccSfromMat->Sumw2(); | |
737 | fHistPtTPCInAccSfromMat->SetMinimum(0); | |
738 | fOutput->Add(fHistPtTPCInAccSfromMat); | |
739 | ||
740 | fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
741 | fHistPtITSMI6InAccS->Sumw2(); | |
742 | fHistPtITSMI6InAccS->SetMinimum(0); | |
743 | fOutput->Add(fHistPtITSMI6InAccS); | |
744 | ||
745 | fHistPtITSMI5InAccS = new TH1F("fHistPtITSMI5InAccS","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
746 | fHistPtITSMI5InAccS->Sumw2(); | |
747 | fHistPtITSMI5InAccS->SetMinimum(0); | |
748 | fOutput->Add(fHistPtITSMI5InAccS); | |
749 | ||
750 | fHistPtITSMI4InAccS = new TH1F("fHistPtITSMI4InAccS","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
751 | fHistPtITSMI4InAccS->Sumw2(); | |
752 | fHistPtITSMI4InAccS->SetMinimum(0); | |
753 | fOutput->Add(fHistPtITSMI4InAccS); | |
754 | ||
755 | fHistPtITSMI3InAccS = new TH1F("fHistPtITSMI3InAccS","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
756 | fHistPtITSMI3InAccS->Sumw2(); | |
757 | fHistPtITSMI3InAccS->SetMinimum(0); | |
758 | fOutput->Add(fHistPtITSMI3InAccS); | |
759 | ||
760 | fHistPtITSMI2InAccS = new TH1F("fHistPtITSMI2InAccS","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
761 | fHistPtITSMI2InAccS->Sumw2(); | |
762 | fHistPtITSMI2InAccS->SetMinimum(0); | |
763 | fOutput->Add(fHistPtITSMI2InAccS); | |
764 | ||
765 | fHistPtITSMISPDInAccS = new TH1F("fHistPtITSMISPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
766 | fHistPtITSMISPDInAccS->Sumw2(); | |
767 | fHistPtITSMISPDInAccS->SetMinimum(0); | |
768 | fOutput->Add(fHistPtITSMISPDInAccS); | |
769 | ||
770 | fHistPtITSMIoneSPDInAccS = new TH1F("fHistPtITSMIoneSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
771 | fHistPtITSMIoneSPDInAccS->Sumw2(); | |
772 | fHistPtITSMIoneSPDInAccS->SetMinimum(0); | |
773 | fOutput->Add(fHistPtITSMIoneSPDInAccS); | |
7b4d74b2 | 774 | |
3f18d0a6 | 775 | fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
776 | fHistPtITSMIokbadoutinz6->Sumw2(); | |
777 | fHistPtITSMIokbadoutinz6->SetMinimum(0); | |
778 | fOutput->Add(fHistPtITSMIokbadoutinz6); | |
8d63376d | 779 | |
c2893e82 | 780 | fHistPtITSMIokbadoutinz4InAcc = new TH1F("fHistPtITSMIokbadoutinz4InAcc","pt distribution of ITSMI tracks with 4 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
781 | fHistPtITSMIokbadoutinz4InAcc->Sumw2(); | |
782 | fHistPtITSMIokbadoutinz4InAcc->SetMinimum(0); | |
783 | fOutput->Add(fHistPtITSMIokbadoutinz4InAcc); | |
784 | ||
785 | fHistPtITSMIokbadoutinz5InAcc = new TH1F("fHistPtITSMIokbadoutinz5InAcc","pt distribution of ITSMI tracks with 5 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); | |
786 | fHistPtITSMIokbadoutinz5InAcc->Sumw2(); | |
787 | fHistPtITSMIokbadoutinz5InAcc->SetMinimum(0); | |
788 | fOutput->Add(fHistPtITSMIokbadoutinz5InAcc); | |
789 | ||
3f18d0a6 | 790 | fHistPtITSMIokbadoutinz6InAcc = new TH1F("fHistPtITSMIokbadoutinz6InAcc","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins); |
791 | fHistPtITSMIokbadoutinz6InAcc->Sumw2(); | |
792 | fHistPtITSMIokbadoutinz6InAcc->SetMinimum(0); | |
793 | fOutput->Add(fHistPtITSMIokbadoutinz6InAcc); | |
8d63376d | 794 | |
f8777463 | 795 | fHistRProdVtxInAccP = new TH1F("fHistRProdVtxInAccP","Radius of production vertex for primaries; r [cm]; N tracks",100,0,10); |
796 | fHistRProdVtxInAccP->Sumw2(); | |
797 | fHistRProdVtxInAccP->SetMinimum(0); | |
798 | fOutput->Add(fHistRProdVtxInAccP); | |
799 | ||
800 | fHistRProdVtxInAccS = new TH1F("fHistRProdVtxInAccS","Radius of production vertex for secondaries; r [cm]; N tracks",100,0,10); | |
801 | fHistRProdVtxInAccS->Sumw2(); | |
802 | fHistRProdVtxInAccS->SetMinimum(0); | |
803 | fOutput->Add(fHistRProdVtxInAccS); | |
804 | ||
805 | fHistd0rphiTPCInAccP150200 = new TH1F("fHistd0rphiTPCInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5); | |
806 | fHistd0rphiTPCInAccP150200->Sumw2(); | |
807 | fHistd0rphiTPCInAccP150200->SetMinimum(0); | |
808 | fOutput->Add(fHistd0rphiTPCInAccP150200); | |
809 | ||
810 | fHistd0rphiTPCInAccP500700 = new TH1F("fHistd0rphiTPCInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5); | |
811 | fHistd0rphiTPCInAccP500700->Sumw2(); | |
812 | fHistd0rphiTPCInAccP500700->SetMinimum(0); | |
813 | fOutput->Add(fHistd0rphiTPCInAccP500700); | |
814 | ||
815 | fHistd0rphiTPCInAccP10001500 = new TH1F("fHistd0rphiTPCInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5); | |
816 | fHistd0rphiTPCInAccP10001500->Sumw2(); | |
817 | fHistd0rphiTPCInAccP10001500->SetMinimum(0); | |
818 | fOutput->Add(fHistd0rphiTPCInAccP10001500); | |
819 | ||
820 | fHistd0rphiTPCInAccS150200 = new TH1F("fHistd0rphiTPCInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5); | |
821 | fHistd0rphiTPCInAccS150200->Sumw2(); | |
822 | fHistd0rphiTPCInAccS150200->SetMinimum(0); | |
823 | fOutput->Add(fHistd0rphiTPCInAccS150200); | |
824 | ||
825 | fHistd0rphiTPCInAccS500700 = new TH1F("fHistd0rphiTPCInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5); | |
826 | fHistd0rphiTPCInAccS500700->Sumw2(); | |
827 | fHistd0rphiTPCInAccS500700->SetMinimum(0); | |
828 | fOutput->Add(fHistd0rphiTPCInAccS500700); | |
829 | ||
830 | fHistd0rphiTPCInAccS10001500 = new TH1F("fHistd0rphiTPCInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5); | |
831 | fHistd0rphiTPCInAccS10001500->Sumw2(); | |
832 | fHistd0rphiTPCInAccS10001500->SetMinimum(0); | |
833 | fOutput->Add(fHistd0rphiTPCInAccS10001500); | |
834 | ||
835 | fHistd0rphiITSMISPDInAccP150200 = new TH1F("fHistd0rphiITSMISPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
836 | fHistd0rphiITSMISPDInAccP150200->Sumw2(); | |
837 | fHistd0rphiITSMISPDInAccP150200->SetMinimum(0); | |
838 | fOutput->Add(fHistd0rphiITSMISPDInAccP150200); | |
839 | ||
840 | fHistd0rphiITSMISPDInAccP500700 = new TH1F("fHistd0rphiITSMISPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
841 | fHistd0rphiITSMISPDInAccP500700->Sumw2(); | |
842 | fHistd0rphiITSMISPDInAccP500700->SetMinimum(0); | |
843 | fOutput->Add(fHistd0rphiITSMISPDInAccP500700); | |
844 | ||
845 | fHistd0rphiITSMISPDInAccP10001500 = new TH1F("fHistd0rphiITSMISPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
846 | fHistd0rphiITSMISPDInAccP10001500->Sumw2(); | |
847 | fHistd0rphiITSMISPDInAccP10001500->SetMinimum(0); | |
848 | fOutput->Add(fHistd0rphiITSMISPDInAccP10001500); | |
849 | ||
850 | fHistd0rphiITSMISPDInAccS150200 = new TH1F("fHistd0rphiITSMISPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
851 | fHistd0rphiITSMISPDInAccS150200->Sumw2(); | |
852 | fHistd0rphiITSMISPDInAccS150200->SetMinimum(0); | |
853 | fOutput->Add(fHistd0rphiITSMISPDInAccS150200); | |
854 | ||
855 | fHistd0rphiITSMISPDInAccS500700 = new TH1F("fHistd0rphiITSMISPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
856 | fHistd0rphiITSMISPDInAccS500700->Sumw2(); | |
857 | fHistd0rphiITSMISPDInAccS500700->SetMinimum(0); | |
858 | fOutput->Add(fHistd0rphiITSMISPDInAccS500700); | |
859 | ||
860 | fHistd0rphiITSMISPDInAccS10001500 = new TH1F("fHistd0rphiITSMISPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
861 | fHistd0rphiITSMISPDInAccS10001500->Sumw2(); | |
862 | fHistd0rphiITSMISPDInAccS10001500->SetMinimum(0); | |
863 | fOutput->Add(fHistd0rphiITSMISPDInAccS10001500); | |
864 | ||
865 | fHistd0rphiITSMIoneSPDInAccP150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
866 | fHistd0rphiITSMIoneSPDInAccP150200->Sumw2(); | |
867 | fHistd0rphiITSMIoneSPDInAccP150200->SetMinimum(0); | |
868 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccP150200); | |
869 | ||
870 | fHistd0rphiITSMIoneSPDInAccP500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
871 | fHistd0rphiITSMIoneSPDInAccP500700->Sumw2(); | |
872 | fHistd0rphiITSMIoneSPDInAccP500700->SetMinimum(0); | |
873 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccP500700); | |
874 | ||
875 | fHistd0rphiITSMIoneSPDInAccP10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
876 | fHistd0rphiITSMIoneSPDInAccP10001500->Sumw2(); | |
877 | fHistd0rphiITSMIoneSPDInAccP10001500->SetMinimum(0); | |
878 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccP10001500); | |
879 | ||
880 | fHistd0zITSMIoneSPDInAccP150200 = new TH1F("fHistd0zITSMIoneSPDInAccP150200","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5); | |
881 | fHistd0zITSMIoneSPDInAccP150200->Sumw2(); | |
882 | fHistd0zITSMIoneSPDInAccP150200->SetMinimum(0); | |
883 | fOutput->Add(fHistd0zITSMIoneSPDInAccP150200); | |
884 | ||
885 | fHistd0zITSMIoneSPDInAccP500700 = new TH1F("fHistd0zITSMIoneSPDInAccP500700","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5); | |
886 | fHistd0zITSMIoneSPDInAccP500700->Sumw2(); | |
887 | fHistd0zITSMIoneSPDInAccP500700->SetMinimum(0); | |
888 | fOutput->Add(fHistd0zITSMIoneSPDInAccP500700); | |
889 | ||
890 | fHistd0zITSMIoneSPDInAccP10001500 = new TH1F("fHistd0zITSMIoneSPDInAccP10001500","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5); | |
891 | fHistd0zITSMIoneSPDInAccP10001500->Sumw2(); | |
892 | fHistd0zITSMIoneSPDInAccP10001500->SetMinimum(0); | |
893 | fOutput->Add(fHistd0zITSMIoneSPDInAccP10001500); | |
894 | ||
895 | fHistd0rphiVSphiITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; phi",30,-0.3,0.3,40,0,2*3.1415); | |
896 | fOutput->Add(fHistd0rphiVSphiITSMIoneSPDInAccP10001500); | |
897 | ||
898 | fHistd0rphiVSetaITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSetaITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; eta",30,-0.3,0.3,10,-1,1); | |
899 | fOutput->Add(fHistd0rphiVSetaITSMIoneSPDInAccP10001500); | |
900 | ||
901 | fHistd0rphiITSMIoneSPDInAccS150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
902 | fHistd0rphiITSMIoneSPDInAccS150200->Sumw2(); | |
903 | fHistd0rphiITSMIoneSPDInAccS150200->SetMinimum(0); | |
904 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200); | |
905 | ||
906 | fHistd0rphiITSMIoneSPDInAccS500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
907 | fHistd0rphiITSMIoneSPDInAccS500700->Sumw2(); | |
908 | fHistd0rphiITSMIoneSPDInAccS500700->SetMinimum(0); | |
909 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700); | |
910 | ||
911 | fHistd0rphiITSMIoneSPDInAccS500700from22 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from22","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
912 | fHistd0rphiITSMIoneSPDInAccS500700from22->Sumw2(); | |
913 | fHistd0rphiITSMIoneSPDInAccS500700from22->SetMinimum(0); | |
914 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from22); | |
915 | ||
916 | fHistd0rphiITSMIoneSPDInAccS500700from211 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from211","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
917 | fHistd0rphiITSMIoneSPDInAccS500700from211->Sumw2(); | |
918 | fHistd0rphiITSMIoneSPDInAccS500700from211->SetMinimum(0); | |
919 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from211); | |
920 | ||
921 | fHistd0rphiITSMIoneSPDInAccS500700from310 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from310","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
922 | fHistd0rphiITSMIoneSPDInAccS500700from310->Sumw2(); | |
923 | fHistd0rphiITSMIoneSPDInAccS500700from310->SetMinimum(0); | |
924 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from310); | |
925 | ||
926 | fHistd0rphiITSMIoneSPDInAccS500700from321 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from321","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
927 | fHistd0rphiITSMIoneSPDInAccS500700from321->Sumw2(); | |
928 | fHistd0rphiITSMIoneSPDInAccS500700from321->SetMinimum(0); | |
929 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from321); | |
930 | ||
931 | fHistd0rphiITSMIoneSPDInAccS10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5); | |
932 | fHistd0rphiITSMIoneSPDInAccS10001500->Sumw2(); | |
933 | fHistd0rphiITSMIoneSPDInAccS10001500->SetMinimum(0); | |
934 | fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500); | |
935 | ||
936 | fHistd0zITSMIoneSPDInAccS150200 = new TH1F("fHistd0zITSMIoneSPDInAccS150200","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5); | |
937 | fHistd0zITSMIoneSPDInAccS150200->Sumw2(); | |
938 | fHistd0zITSMIoneSPDInAccS150200->SetMinimum(0); | |
939 | fOutput->Add(fHistd0zITSMIoneSPDInAccS150200); | |
940 | ||
941 | fHistd0zITSMIoneSPDInAccS500700 = new TH1F("fHistd0zITSMIoneSPDInAccS500700","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5); | |
942 | fHistd0zITSMIoneSPDInAccS500700->Sumw2(); | |
943 | fHistd0zITSMIoneSPDInAccS500700->SetMinimum(0); | |
944 | fOutput->Add(fHistd0zITSMIoneSPDInAccS500700); | |
945 | ||
946 | fHistd0zITSMIoneSPDInAccS10001500 = new TH1F("fHistd0zITSMIoneSPDInAccS10001500","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5); | |
947 | fHistd0zITSMIoneSPDInAccS10001500->Sumw2(); | |
948 | fHistd0zITSMIoneSPDInAccS10001500->SetMinimum(0); | |
949 | fOutput->Add(fHistd0zITSMIoneSPDInAccS10001500); | |
950 | ||
951 | ||
8d63376d | 952 | // ntuples |
953 | // | |
f8777463 | 954 | fNtupleESDTracks = new TNtuple("fNtupleESDTracks","tracks","pt:eta:phi:d0:z0:sigmad0:sigmaz0:ptMC:pdgMC:d0MC:d0MCv:z0MCv:sigmad0MCv:sigmaz0MCv:ITSflag:isPrimary:isTPCSel"); |
8d63376d | 955 | fOutput->Add(fNtupleESDTracks); |
956 | ||
c2893e82 | 957 | fNtupleITSAlignExtra = new TNtuple("fNtupleITSAlignExtra","ITS alignment checks: extra clusters","layer:x:y:z:dxy:dz:xloc:zloc:npoints:pt"); |
8d63376d | 958 | fOutput->Add(fNtupleITSAlignExtra); |
959 | ||
c2893e82 | 960 | fNtupleITSAlignSPDTracklets = new TNtuple("fNtupleITSAlignSPDTracklets","ITS alignment checks: SPD tracklets wrt SPD vertex","phi:theta:z:dxy:dz:pt"); |
8d63376d | 961 | fOutput->Add(fNtupleITSAlignSPDTracklets); |
962 | ||
963 | return; | |
964 | } | |
965 | ||
966 | //________________________________________________________________________ | |
d98a315a | 967 | void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *) |
8d63376d | 968 | { |
969 | // Main loop | |
970 | // Called for each event | |
d98a315a | 971 | fESD = dynamic_cast<AliESDEvent*>(InputEvent()); |
972 | ||
973 | if (!fESD) { | |
974 | Printf("ERROR: fESD not available"); | |
975 | return; | |
976 | } | |
977 | ||
f8777463 | 978 | |
979 | fHistNEvents->Fill(-1); | |
980 | ||
981 | Bool_t isSelected = kTRUE; | |
982 | if(fUsePhysSel) { | |
983 | isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected(); | |
984 | } | |
985 | if(!isSelected) return; | |
986 | ||
d98a315a | 987 | |
2308c814 | 988 | //if(fESD->GetEventType()!=7) return; |
8d63376d | 989 | |
8d63376d | 990 | // *********** MC info *************** |
991 | TArrayF mcVertex(3); | |
992 | mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.; | |
993 | Float_t dNchdy=-999.; | |
994 | ||
995 | TParticle *part=0; | |
996 | AliESDVertex *vertexMC=0; | |
997 | AliStack *stack=0; | |
998 | if (fReadMC) { | |
999 | AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()); | |
1000 | if (!eventHandler) { | |
1001 | Printf("ERROR: Could not retrieve MC event handler"); | |
1002 | return; | |
1003 | } | |
1004 | ||
1005 | AliMCEvent* mcEvent = eventHandler->MCEvent(); | |
1006 | if (!mcEvent) { | |
1007 | Printf("ERROR: Could not retrieve MC event"); | |
1008 | return; | |
1009 | } | |
1010 | ||
1011 | stack = mcEvent->Stack(); | |
1012 | if (!stack) { | |
1013 | AliDebug(AliLog::kError, "Stack not available"); | |
1014 | return; | |
1015 | } | |
1016 | ||
1017 | AliHeader* header = mcEvent->Header(); | |
1018 | if (!header) { | |
1019 | AliDebug(AliLog::kError, "Header not available"); | |
1020 | return; | |
1021 | } | |
1022 | AliGenEventHeader* genHeader = header->GenEventHeader(); | |
1023 | genHeader->PrimaryVertex(mcVertex); | |
1024 | ||
1025 | ||
1026 | Int_t ngenpart = (Int_t)stack->GetNtrack(); | |
1027 | //printf("# generated particles = %d\n",ngenpart); | |
1028 | dNchdy=0; | |
1029 | for(Int_t ip=0; ip<ngenpart; ip++) { | |
1030 | part = (TParticle*)stack->Particle(ip); | |
1031 | // keep only electrons, muons, pions, kaons and protons | |
1032 | Int_t apdg = TMath::Abs(part->GetPdgCode()); | |
1033 | if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue; | |
1034 | // reject secondaries | |
1035 | if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue; | |
1036 | // reject incoming protons | |
1037 | Double_t energy = part->Energy(); | |
1038 | if(energy>900.) continue; | |
1039 | Double_t pz = part->Pz(); | |
1040 | Double_t y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13)); | |
1041 | if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1 | |
1042 | } | |
1043 | //printf("# primary particles = %7.1f\n",dNchdy); | |
1044 | } | |
1045 | // *********** MC info *************** | |
1046 | Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0}; | |
1047 | vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma); | |
1048 | ||
8d63376d | 1049 | // *********** ESD friends *********** |
8d63376d | 1050 | if(!fESDfriend) printf("no ESD friend\n"); |
1051 | ||
f8777463 | 1052 | |
1053 | //------- event selection -------- | |
1054 | Int_t mincontrSPDvtx=1; | |
1055 | Double_t maxzSPDvtx=20.; | |
1056 | Double_t maxrSPDvtx=1.; | |
1057 | //------- TPC track selection -------- | |
1058 | Int_t minclsTPC=90; | |
1059 | Double_t maxchi2perTPCcl=4.; | |
1060 | Double_t minEtaInAcc=-0.8; // -0.8 | |
1061 | Double_t maxEtaInAcc=0.8; // 0.8 | |
1062 | Double_t maxdcaxy=1e6;//2.4; | |
1063 | Double_t maxdcaz=1e6;//3.2; | |
1064 | AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC"); | |
1065 | esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy); | |
1066 | esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz); | |
1067 | esdtrackCutsTPC->SetDCAToVertex2D(kTRUE); | |
1068 | esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE); | |
1069 | esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack | |
1070 | esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE); | |
1071 | esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC); | |
1072 | esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl); | |
1073 | esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc); | |
1074 | SetESDtrackCutsTPC(esdtrackCutsTPC); | |
1075 | //------- ITS+TPC track selection -------- | |
1076 | Double_t maxdcaxyITSTPC=0.2; | |
1077 | Double_t maxdcazITSTPC=1.e6; | |
1078 | AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC"); | |
1079 | esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC); | |
1080 | esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC); | |
1081 | esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE); | |
1082 | esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE); | |
1083 | esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE); | |
1084 | esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD, | |
1085 | AliESDtrackCuts::kAny); | |
1086 | esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE); | |
1087 | esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC); | |
1088 | esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl); | |
1089 | esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc); | |
1090 | SetESDtrackCutsITSTPC(esdtrackCutsITSTPC); | |
1091 | //--------------------------------------- | |
1092 | ||
1093 | ||
8d63376d | 1094 | // |
2308c814 | 1095 | |
1096 | /* | |
8d63376d | 1097 | // ********** Trigger ***************** |
1098 | ULong64_t triggerMask; | |
1099 | ULong64_t spdFO = (1 << 14); | |
1100 | ULong64_t v0left = (1 << 11); | |
1101 | ULong64_t v0right = (1 << 12); | |
1102 | ||
1103 | triggerMask=fESD->GetTriggerMask(); | |
1104 | // MB1: SPDFO || V0L || V0R | |
1105 | Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right))); | |
1106 | //MB2: GFO && V0R | |
1107 | //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right)) | |
1108 | // ************ Trigger ****************** | |
1109 | if(!eventTriggered) return; | |
2308c814 | 1110 | */ |
8d63376d | 1111 | |
f8777463 | 1112 | |
1113 | fHistNEvents->Fill(0); | |
1114 | ||
8d63376d | 1115 | // SPD vertex |
1116 | const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD(); | |
f8777463 | 1117 | // Select good SPD vertices |
1118 | TString spdvtitle=spdv->GetTitle(); | |
1119 | //if(!spdvtitle.Contains("3D")) return; | |
1120 | if(spdv->GetNContributors()<mincontrSPDvtx || | |
1121 | TMath::Abs(spdv->GetZv())>maxzSPDvtx || | |
1122 | spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) { | |
1123 | delete esdtrackCutsTPC; esdtrackCutsTPC=0; | |
1124 | delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0; | |
1125 | return; | |
1126 | } | |
1127 | ||
1128 | // | |
1129 | // Tracks vertex | |
1130 | const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks(); | |
1131 | ||
1132 | ||
1133 | if(spdvtitle.Contains("3D")) { | |
1134 | fHistNEvents->Fill(1); | |
1135 | fHistNEvents->Fill(3); | |
1136 | } else { | |
1137 | fHistNEvents->Fill(2); | |
1138 | fHistNEvents->Fill(3); | |
1139 | } | |
1140 | if(vertexESD) { | |
1141 | if(vertexESD->GetStatus()) fHistNEvents->Fill(4); | |
1142 | } | |
1143 | ||
8d63376d | 1144 | Int_t ntracks = fESD->GetNumberOfTracks(); |
7b4d74b2 | 1145 | printf("Tracks # = %d\n",fESD->GetNumberOfTracks()); |
8d63376d | 1146 | |
1147 | fHistNtracks->Fill(ntracks); | |
1148 | // Post the data already here | |
d98a315a | 1149 | PostData(1, fOutput); |
8d63376d | 1150 | |
1151 | Int_t idet,status; Float_t xloc,zloc; | |
3f18d0a6 | 1152 | Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1; |
1153 | Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9; | |
1154 | ||
8d63376d | 1155 | // loop on tracks |
1156 | for(Int_t itr=0; itr<ntracks; itr++) { | |
1157 | AliESDtrack *track = fESD->GetTrack(itr); | |
2308c814 | 1158 | // remove kink daughters |
8d63376d | 1159 | if(track->GetKinkIndex(0)>0) continue; |
1160 | ||
3f18d0a6 | 1161 | // remove tracks not reco in ITS or TPC |
1162 | if (!(track->GetStatus() & AliESDtrack::kITSin) && | |
1163 | !(track->GetStatus() & AliESDtrack::kTPCin)) continue; | |
8d63376d | 1164 | |
f8777463 | 1165 | Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE; |
1166 | Double_t rProdVtx=0,zProdVtx=0; | |
1167 | Int_t pdgTrk=0,pdgMoth=0; | |
1168 | ||
1169 | Int_t trkLabel = TMath::Abs(track->GetLabel()); | |
1170 | // check if it is primary | |
1171 | if(fReadMC && stack) { | |
1172 | isPrimary = stack->IsPhysicalPrimary(trkLabel); | |
1173 | part = (TParticle*)stack->Particle(trkLabel); | |
1174 | rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1])); | |
1175 | zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]); | |
1176 | //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried | |
1177 | pdgTrk = TMath::Abs(part->GetPdgCode()); | |
1178 | if(part->GetFirstMother()>=0) { | |
1179 | TParticle* mm=stack->Particle(part->GetFirstMother()); | |
1180 | if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode()); | |
1181 | } | |
1182 | if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122) isFromStrange=kTRUE; | |
1183 | if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE; | |
1184 | } | |
1185 | ||
1186 | Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE; | |
8d63376d | 1187 | if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE; |
f8777463 | 1188 | if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE; |
1189 | //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE; | |
8d63376d | 1190 | |
f8777463 | 1191 | // remove tracks with kTPCin and not kTPCrefit |
1192 | if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue; | |
8d63376d | 1193 | |
f8777463 | 1194 | AliESDtrack *trackTPC = 0; |
1195 | if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr); | |
1196 | if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex | |
1197 | ||
2308c814 | 1198 | |
2308c814 | 1199 | Int_t nclsITS = track->GetNcls(0); |
3f18d0a6 | 1200 | Int_t nclsokbadoutinzITS = 0; |
2308c814 | 1201 | Bool_t outInZ=kFALSE; |
f8777463 | 1202 | Bool_t skipTrack=kFALSE; |
8d63376d | 1203 | |
1204 | for(Int_t layer=0; layer<6; layer++) { | |
8d63376d | 1205 | track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc); |
f8777463 | 1206 | if(status<0) continue; |
2308c814 | 1207 | if(layer>=2) idet+=240; // add n SPD modules |
f8777463 | 1208 | if(layer>=4) idet+=260; // add n SDD modules |
2308c814 | 1209 | if(status==4) outInZ=kTRUE; |
f8777463 | 1210 | if(tpcrefit) { |
8d63376d | 1211 | if(status==1) fHistClusterMapITSMIok->Fill(layer); |
1212 | if(status==2) fHistClusterMapITSMIbad->Fill(layer); | |
1213 | if(status==3) fHistClusterMapITSMIskipped->Fill(layer); | |
1214 | if(status==4) fHistClusterMapITSMIoutinz->Fill(layer); | |
1215 | if(status==5) fHistClusterMapITSMInocls->Fill(layer); | |
1216 | if(status==6) fHistClusterMapITSMInorefit->Fill(layer); | |
f8777463 | 1217 | if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet); |
1218 | if(status==2 && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet); | |
1219 | if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet); | |
3f18d0a6 | 1220 | if(status==1 || status==2 || status==4) { |
1221 | fHistClusterMapITSMIokoutinzbad->Fill(layer); | |
1222 | nclsokbadoutinzITS++; | |
1223 | } | |
f8777463 | 1224 | if((layer==2 || layer==3) && status!=2 && status!=4 && TMath::Abs(zloc)<2) { |
1225 | Float_t xlocCls; | |
1226 | Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls); | |
1227 | fHistxlocSDDall->Fill(xloc); | |
1228 | fHistzlocSDDall->Fill(zloc); | |
1229 | if(/*status==1*/ nClsInMod>0) { | |
1230 | fHistxlocSDDok->Fill(xloc); | |
1231 | fHistxlocVSmodSDDok->Fill(idet,xloc); | |
1232 | fHistzlocSDDok->Fill(zloc); | |
1233 | }else if(TMath::Abs(xloc)<1) printf("EVENT %d PHI %f LAYER %d\n",fESD->GetEventNumberInFile(),track->Phi(),layer); | |
1234 | } | |
8d63376d | 1235 | } else { |
1236 | if(status==1) fHistClusterMapITSSAok->Fill(layer); | |
1237 | if(status==2) fHistClusterMapITSSAbad->Fill(layer); | |
1238 | if(status==3) fHistClusterMapITSSAskipped->Fill(layer); | |
1239 | if(status==4) fHistClusterMapITSSAoutinz->Fill(layer); | |
1240 | if(status==5) fHistClusterMapITSSAnocls->Fill(layer); | |
1241 | if(status==6) fHistClusterMapITSSAnorefit->Fill(layer); | |
2308c814 | 1242 | if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer); |
1243 | if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);} | |
1244 | if(status==2 && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);} | |
1245 | if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer); | |
1246 | if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer); | |
1247 | if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);} | |
1248 | if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer); | |
1249 | if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer); | |
1250 | } | |
1251 | if(TESTBIT(track->GetITSClusterMap(),layer)) { | |
f8777463 | 1252 | if(tpcrefit) { |
2308c814 | 1253 | fHistClusterMapITSMI->Fill(layer); |
1254 | } else { | |
1255 | fHistClusterMapITSSA->Fill(layer); | |
1256 | if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer); | |
1257 | } | |
8d63376d | 1258 | } |
f8777463 | 1259 | //if(idet>=238 && idet<=239) skipTrack=kTRUE; |
8d63376d | 1260 | } |
f8777463 | 1261 | if(skipTrack) continue; |
8d63376d | 1262 | |
3f18d0a6 | 1263 | // TPC track findable in ITS |
f8777463 | 1264 | if(tpcrefit && trackTPC) { |
1265 | if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) { | |
1266 | itsfindable=kTRUE; | |
1267 | Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100; | |
1268 | track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter); | |
1269 | track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter); | |
1270 | track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter); | |
1271 | fHistPtTPC->Fill(track->Pt()); | |
1272 | if(TMath::Abs(zAtSSDouter)<100.*zSSDouter && | |
1273 | TMath::Abs(zAtSDDouter)<100.*zSDDouter && | |
1274 | TMath::Abs(zAtSPDouter)<100.*zSPDouter) { | |
1275 | itsfindableAcc=kTRUE; | |
1276 | fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal()); | |
1277 | fHistPtTPCInAcc->Fill(track->Pt()); | |
1278 | fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt()); | |
1279 | if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt()); | |
1280 | if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt()); | |
1281 | fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt()); | |
1282 | Double_t pTPCinnerwall[3]; | |
1283 | track->GetInnerPxPyPz(pTPCinnerwall); | |
1284 | Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]); | |
1285 | fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall); | |
1286 | fHistDeltaPtTPC->Fill(ptTPCinnerwall,ptTPCinnerwall-trackTPC->Pt()); | |
1287 | fHistPhiTPCInAcc->Fill(track->Phi()); | |
1288 | if(isPrimary) { | |
1289 | fHistPtTPCInAccP->Fill(track->Pt()); | |
1290 | if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt()); | |
1291 | } else { | |
1292 | fHistPtTPCInAccS->Fill(track->Pt()); | |
1293 | if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt()); | |
1294 | if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt()); | |
1295 | } | |
1296 | //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);} | |
1297 | } | |
3f18d0a6 | 1298 | } |
2308c814 | 1299 | } |
8d63376d | 1300 | |
f8777463 | 1301 | // track prolonged in ITS with different conditions |
1302 | if(itsrefit) { | |
1303 | if(itsfindable) { | |
1304 | if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt()); | |
1305 | if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt()); | |
1306 | if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt()); | |
1307 | if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt()); | |
1308 | if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt()); | |
1309 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) | |
1310 | fHistPtITSMISPD->Fill(track->Pt()); | |
1311 | if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) | |
1312 | fHistPtITSMIoneSPD->Fill(track->Pt()); | |
1313 | if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt()); | |
1314 | } | |
1315 | if(itsfindableAcc) { | |
1316 | if(nclsITS==6) { | |
1317 | fHistPtITSMI6InAcc->Fill(track->Pt()); | |
1318 | if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());} | |
1319 | } | |
1320 | if(nclsITS==5) { | |
1321 | fHistPtITSMI5InAcc->Fill(track->Pt()); | |
1322 | if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());} | |
1323 | } | |
1324 | if(nclsITS==4) { | |
1325 | fHistPtITSMI4InAcc->Fill(track->Pt()); | |
1326 | if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());} | |
1327 | } | |
1328 | if(nclsITS==3) { | |
1329 | fHistPtITSMI3InAcc->Fill(track->Pt()); | |
1330 | if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());} | |
1331 | } | |
1332 | if(nclsITS==2) { | |
1333 | fHistPtITSMI2InAcc->Fill(track->Pt()); | |
1334 | if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());} | |
1335 | } | |
1336 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) { | |
1337 | fHistPtITSMISPDInAcc->Fill(track->Pt()); | |
1338 | if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());} | |
1339 | } | |
1340 | if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) { | |
1341 | fHistPtITSMIoneSPDInAcc->Fill(track->Pt()); | |
1342 | if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());} | |
1343 | } | |
1344 | if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt()); | |
1345 | if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt()); | |
1346 | if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt()); | |
1347 | if(nclsokbadoutinzITS==6) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi()); | |
1348 | } | |
1349 | } | |
8d63376d | 1350 | |
f8777463 | 1351 | if(tpcrefit) { |
2308c814 | 1352 | fHistNclsITSMI->Fill(nclsITS); |
1353 | } else { | |
1354 | fHistNclsITSSA->Fill(nclsITS); | |
1355 | if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS); | |
1356 | } | |
1357 | ||
f8777463 | 1358 | |
1359 | if(tpcrefit && fUseITSSAforNtuples) continue; // only ITS-SA for ntuples | |
1360 | if(!tpcrefit && !fUseITSSAforNtuples) continue; // only ITS-TPC for ntuples | |
8d63376d | 1361 | |
f8777463 | 1362 | // we need the vertex to compute the impact parameters |
1363 | //if(!vertexESD) continue; | |
1364 | //if(!(vertexESD->GetStatus())) continue; | |
8d63376d | 1365 | |
f8777463 | 1366 | // impact parameter to VertexTracks |
1367 | Float_t d0z0[2],covd0z0[3]; | |
1368 | Double_t d0z0TPC[2],covd0z0TPC[3]; | |
1369 | if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) continue; | |
1370 | track->GetImpactParameters(d0z0,covd0z0); | |
1371 | if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC); | |
1372 | if(covd0z0[0]<0. || covd0z0[2]<0.) continue; | |
1373 | if(covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) continue; | |
1374 | ||
1375 | // track that passes final ITS+TPC cuts | |
1376 | if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) { | |
1377 | fHistPtITSTPCsel->Fill(track->Pt()); | |
1378 | fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal()); | |
1379 | if(isPrimary) { | |
1380 | fHistPtITSTPCselP->Fill(track->Pt()); | |
1381 | if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt()); | |
1382 | } else { | |
1383 | fHistPtITSTPCselS->Fill(track->Pt()); | |
1384 | if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt()); | |
1385 | if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt()); | |
1386 | } | |
1387 | } | |
1388 | ||
1389 | ||
1390 | // fill d0 histos | |
1391 | if((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) { | |
1392 | if(track->Pt()>0.150 && track->Pt()<0.200) { | |
1393 | if(isPrimary) { | |
1394 | fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]); | |
1395 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) | |
1396 | fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]); | |
1397 | if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) { | |
1398 | if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]); | |
1399 | if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]); | |
1400 | } | |
1401 | } else { | |
1402 | fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]); | |
1403 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) | |
1404 | fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]); | |
1405 | if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) { | |
1406 | if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]); | |
1407 | if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]); | |
1408 | if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth); | |
1409 | } | |
1410 | } | |
1411 | } | |
1412 | if(track->Pt()>0.500 && track->Pt()<0.700) { | |
1413 | if(isPrimary) { | |
1414 | fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]); | |
1415 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) | |
1416 | fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]); | |
1417 | if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) { | |
1418 | if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]); | |
1419 | if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]); | |
1420 | } | |
1421 | } else { | |
1422 | fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]); | |
1423 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) | |
1424 | fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]); | |
1425 | if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) { | |
1426 | fHistPDGTrk->Fill(pdgTrk); | |
1427 | fHistPDGMoth->Fill(pdgMoth); | |
1428 | if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth); | |
1429 | if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]); | |
1430 | if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]); | |
1431 | if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]); | |
1432 | if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]); | |
1433 | if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]); | |
1434 | if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]); | |
1435 | if(pdgMoth!=310 && pdgMoth!=321 && pdgMoth<3000) fHistRProdVtxInAccS->Fill(rProdVtx); | |
1436 | } | |
1437 | } | |
1438 | } | |
1439 | if(track->Pt()>1.000 && track->Pt()<1.500) { | |
1440 | if(isPrimary) { | |
1441 | fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]); | |
1442 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) | |
1443 | fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]); | |
1444 | if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) { | |
1445 | if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]); | |
1446 | if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]); | |
1447 | fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi()); | |
1448 | fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta()); | |
1449 | } | |
1450 | } else { | |
1451 | fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]); | |
1452 | if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) | |
1453 | fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]); | |
1454 | if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) { | |
1455 | if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]); | |
1456 | if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]); | |
1457 | if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth); | |
1458 | } | |
1459 | } | |
1460 | } | |
8d63376d | 1461 | } |
1462 | ||
2308c814 | 1463 | |
f8777463 | 1464 | // encode ITS cluster map, including MC info |
1465 | Int_t iITSflag=MakeITSflag(track); | |
8d63376d | 1466 | |
1467 | // if MC info is available: get particle properties | |
1468 | Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.; | |
1469 | Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.}; | |
1470 | if(fReadMC) { | |
1471 | part = (TParticle*)stack->Particle(trkLabel); | |
1472 | ptMC=part->Pt(); | |
1473 | pdgMC=part->GetPdgCode(); | |
1474 | d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField()); | |
1475 | track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv); | |
1476 | if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue; | |
8d63376d | 1477 | } |
1478 | ||
ab846928 | 1479 | Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]); |
1480 | if(!itsrefit) sigmad0MCv *= -1.; | |
f8777463 | 1481 | Float_t isPrimaryFl = (isPrimary ? 1. : 0.); |
1482 | Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.); | |
ab846928 | 1483 | |
8d63376d | 1484 | // fill ntuple with track properties |
2308c814 | 1485 | if(fFillNtuples && SelectPt(track->Pt())) { |
f8777463 | 1486 | Float_t fillArray[21]={track->Pt(),track->Eta(),track->Phi(),d0z0[0],d0z0[1],TMath::Sqrt(covd0z0[0]),TMath::Sqrt(covd0z0[2]),ptMC,pdgMC,d0MC,d0z0MCv[0],d0z0MCv[1],sigmad0MCv,TMath::Sqrt(covd0z0MCv[2]),(Float_t)iITSflag,isPrimaryFl,isTPCSelFl}; |
8d63376d | 1487 | fNtupleESDTracks->Fill(fillArray); |
1488 | } | |
1489 | ||
1490 | //--------------------------------------------- | |
1491 | // AliTrackPoints: alignment checks | |
1492 | // | |
2308c814 | 1493 | if(!fFillNtuples) continue; |
ab846928 | 1494 | if(!fESDfriend) continue; |
1495 | ||
8d63376d | 1496 | const AliTrackPointArray *array = track->GetTrackPointArray(); |
2308c814 | 1497 | if(!array) continue; |
8d63376d | 1498 | AliTrackPoint point; |
1499 | Int_t pointOnLayer[6]={0,0,0,0,0,0}; | |
1500 | Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1; | |
1501 | Bool_t extra=kFALSE; | |
1502 | Int_t layerId,layerExtra=-1; | |
1503 | for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) { | |
1504 | array->GetPoint(point,ipt); | |
1505 | Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY()); | |
1506 | ||
1507 | if(r>3 && r<6) { | |
1508 | layerId = 0; | |
1509 | } else if(r>6 && r<8) { | |
1510 | layerId = 1; | |
1511 | } else if(r>8 && r<18) { | |
1512 | layerId = 2; | |
3f18d0a6 | 1513 | } else if(r>18 && r<30) { |
8d63376d | 1514 | layerId = 3; |
3f18d0a6 | 1515 | } else if(r>30 && r<40) { |
8d63376d | 1516 | layerId = 4; |
3f18d0a6 | 1517 | } else if(r>40 && r<50) { |
8d63376d | 1518 | layerId = 5; |
1519 | } else { | |
1520 | layerId=100; | |
1521 | } | |
1522 | ||
1523 | // only ITS points | |
1524 | if(layerId>5) continue; | |
1525 | ||
1526 | if(!point.IsExtra()) { | |
1527 | pointOnLayer[layerId]++; | |
1528 | indexAssociated[layerId]=ipt; | |
1529 | } else { | |
1530 | // this is an extra cluster | |
1531 | extra=kTRUE; | |
1532 | layerExtra=layerId; | |
1533 | indexExtra=ipt; | |
1534 | } | |
1535 | } // end loop on AliTrackPoints | |
1536 | ||
1537 | TString vtitle = spdv->GetTitle(); | |
1538 | if(!vtitle.Contains("3D")) continue; | |
1539 | ||
1540 | // SPD tracklet | |
1541 | if(indexAssociated[0]>=0 && indexAssociated[1]>=0) { | |
1542 | AliTrackPoint pointSPD1,pointSPD2; | |
1543 | array->GetPoint(pointSPD1,indexAssociated[0]); | |
1544 | array->GetPoint(pointSPD2,indexAssociated[1]); | |
1545 | Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX()); | |
1546 | Float_t lambda=TMath::ATan((pointSPD2.GetZ()-pointSPD1.GetZ())/TMath::Sqrt((pointSPD2.GetX()-pointSPD1.GetX())*(pointSPD2.GetX()-pointSPD1.GetX())+(pointSPD2.GetY()-pointSPD1.GetY())*(pointSPD2.GetY()-pointSPD1.GetY()))); | |
1547 | Float_t theta=0.5*TMath::Pi()-lambda; | |
1548 | TParticle particle(211,0,0,0,0,0,TMath::Cos(phi),TMath::Sin(phi),TMath::Tan(lambda),10.,pointSPD1.GetX(),pointSPD1.GetY(),pointSPD1.GetZ(),0); | |
1549 | AliESDtrack tracklet(&particle); | |
1550 | Float_t dz[2]; | |
1551 | // distance to primary SPD (only if 3D and high multiplicity) | |
1552 | if(spdv->GetNContributors()>10) { | |
3f18d0a6 | 1553 | tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz); |
1554 | //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz); | |
c2893e82 | 1555 | fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt()); |
8d63376d | 1556 | } |
1557 | } | |
1558 | ||
1559 | // distance to extra | |
3f18d0a6 | 1560 | if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) { |
8d63376d | 1561 | AliTrackPoint pointExtra,pointAssociated; |
1562 | array->GetPoint(pointAssociated,indexAssociated[layerExtra]); | |
1563 | array->GetPoint(pointExtra,indexExtra); | |
1564 | Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv()); | |
1565 | Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv()); | |
1566 | Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv())); | |
1567 | Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv())); | |
1568 | Float_t dzExtra[2]; | |
1569 | dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated); | |
1570 | dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated; | |
1571 | Float_t xlocExtra=-100.,zlocExtra=-100.; | |
c2893e82 | 1572 | fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt()); |
8d63376d | 1573 | } |
1574 | ||
f8777463 | 1575 | if(trackTPC) { delete trackTPC; trackTPC=0; } |
8d63376d | 1576 | } // end loop on tracks |
1577 | ||
1578 | if(vertexMC) { delete vertexMC; vertexMC=0; } | |
1579 | ||
f8777463 | 1580 | delete esdtrackCutsTPC; esdtrackCutsTPC=0; |
1581 | delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0; | |
1582 | ||
8d63376d | 1583 | return; |
1584 | } | |
1585 | ||
1586 | //________________________________________________________________________ | |
1587 | void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *) | |
1588 | { | |
1589 | // Draw result to the screen | |
1590 | // Called once at the end of the query | |
2efff183 | 1591 | fOutput = dynamic_cast<TList*> (GetOutputData(1)); |
8d63376d | 1592 | if (!fOutput) { |
1593 | Printf("ERROR: fOutput not available"); | |
1594 | return; | |
1595 | } | |
f8777463 | 1596 | fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents")); |
1597 | fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac")); | |
1598 | if(fHistNEvents && fHistNEventsFrac) { | |
1599 | for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) { | |
1600 | if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2)); | |
1601 | } | |
1602 | } | |
8d63376d | 1603 | |
1604 | return; | |
1605 | } | |
1606 | //--------------------------------------------------------------------------- | |
1607 | Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label) const | |
1608 | { | |
1609 | // | |
1610 | // Return number of ITS clusters produced by MC particle with given label | |
1611 | // | |
2308c814 | 1612 | |
8d63376d | 1613 | AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); |
1614 | if(!esdHRP) return -1; | |
1615 | TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS"); | |
1616 | if(!cTree) return -1; | |
1617 | TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000); | |
1618 | cTree->SetBranchAddress("ITSRecPoints",&clusters); | |
1619 | if(!clusters) return -1; | |
1620 | ||
1621 | AliITSRecPoint *c=0; | |
1622 | Int_t i,n,icl,lay,ilab; | |
1623 | Int_t ncls[6]={0,0,0,0,0,0}; | |
1624 | Int_t nclstot=0; | |
1625 | ||
1626 | for(i=0; i<2198; i++) { | |
1627 | cTree->GetEvent(i); | |
1628 | n=clusters->GetEntriesFast(); | |
1629 | for (icl=0; icl<n; icl++) { | |
1630 | c=(AliITSRecPoint*)clusters->UncheckedAt(icl); | |
1631 | lay=c->GetLayer(); | |
1632 | for(ilab=0;ilab<3;ilab++) { | |
1633 | if(c->GetLabel(ilab)==label) ncls[lay]++; | |
1634 | } | |
1635 | } | |
1636 | } | |
1637 | for(i=0;i<6;i++) { if(ncls[i]) nclstot++; } | |
1638 | ||
1639 | return nclstot; | |
2308c814 | 1640 | //return label*0; |
8d63376d | 1641 | } |
1642 | //--------------------------------------------------------------------------- | |
f8777463 | 1643 | Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const |
1644 | { | |
1645 | // | |
1646 | // Return number of ITS clusters produced by MC particle with given label | |
1647 | // | |
1648 | ||
1649 | AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); | |
1650 | if(!esdHRP) return -1; | |
1651 | TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS"); | |
1652 | if(!cTree) return -1; | |
1653 | TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000); | |
1654 | cTree->SetBranchAddress("ITSRecPoints",&clusters); | |
1655 | if(!clusters) return -1; | |
1656 | ||
1657 | AliITSRecPoint *c=0; | |
1658 | Int_t n,icl; | |
1659 | ||
1660 | cTree->GetEvent(idet); | |
1661 | n=clusters->GetEntriesFast(); | |
1662 | ||
1663 | if(n==1) { | |
1664 | for (icl=0; icl<n; icl++) { | |
1665 | c=(AliITSRecPoint*)clusters->UncheckedAt(icl); | |
1666 | xloc = c->GetDetLocalX(); | |
1667 | } | |
1668 | } | |
1669 | return n; | |
1670 | } | |
1671 | //--------------------------------------------------------------------------- | |
8d63376d | 1672 | Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part, |
1673 | AliESDVertex *vert, | |
1674 | Double_t bzT) const | |
1675 | { | |
1676 | // | |
1677 | // Return the MC value of the impact parameter | |
1678 | // | |
1679 | ||
1680 | Double_t vx=part->Vx()-vert->GetX(); | |
1681 | Double_t vy=part->Vy()-vert->GetY(); | |
1682 | ||
1683 | Double_t pt=part->Pt(); | |
1684 | Double_t px=part->Px(); | |
1685 | Double_t py=part->Py(); | |
1686 | Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.); | |
1687 | if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.; | |
1688 | ||
1689 | if(px<0.000001) px=0.000001; | |
f8777463 | 1690 | Double_t rAnd=((10./2.99792458)*pt/bzT)*100.; |
8d63376d | 1691 | Double_t center[3],d0; |
1692 | center[0]=vx-(1./charge)*rAnd*(py/pt); | |
1693 | center[1]=vy+(1./charge)*rAnd*(px/pt); | |
1694 | center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]); | |
1695 | d0 = -center[2]+rAnd; | |
1696 | ||
1697 | return d0; | |
1698 | } | |
1699 | //--------------------------------------------------------------------------- | |
1700 | Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt) | |
1701 | { | |
1702 | // | |
1703 | // Keep only tracks in given pt bins | |
1704 | // | |
f8777463 | 1705 | Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.}; |
1706 | Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.}; | |
8d63376d | 1707 | |
f8777463 | 1708 | for(Int_t i=0; i<11; i++) { |
ab846928 | 1709 | if(pt>ptlower[i] && pt<ptupper[i]) { |
8d63376d | 1710 | fCountsPerPtBin[i]++; |
1711 | return kTRUE; | |
1712 | } | |
1713 | } | |
1714 | return kFALSE; | |
2308c814 | 1715 | //return kTRUE; |
8d63376d | 1716 | } |
f8777463 | 1717 | //--------------------------------------------------------------------------- |
1718 | Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const { | |
1719 | // | |
1720 | // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs, | |
1721 | // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present. | |
1722 | // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD | |
1723 | // | |
1724 | Int_t iITSflag=0; | |
1725 | if(track->HasPointOnITSLayer(0)) iITSflag+=1; | |
1726 | if(track->HasPointOnITSLayer(1)) iITSflag+=2; | |
1727 | if(track->HasPointOnITSLayer(2)) iITSflag+=10; | |
1728 | if(track->HasPointOnITSLayer(3)) iITSflag+=20; | |
1729 | if(track->HasPointOnITSLayer(4)) iITSflag+=100; | |
1730 | if(track->HasPointOnITSLayer(5)) iITSflag+=200; | |
1731 | ||
1732 | if(iITSflag==333 && track->GetNcls(0)<6) | |
1733 | printf(" ERROR %d %d\n",track->GetNcls(0),track->GetLabel()); | |
1734 | ||
1735 | // number of associated ITS clusters | |
1736 | iITSflag += 1000*track->GetNcls(0); | |
1737 | ||
1738 | // number of associated TPC clusters | |
1739 | iITSflag += 100000*track->GetNcls(1); | |
1740 | ||
1741 | // if MC info and is available | |
1742 | // write the number of ITS clusters produced by this track | |
1743 | Int_t nITSclsMC=0; | |
1744 | if(fReadMC && fReadRPLabels) { | |
1745 | nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel())); | |
1746 | if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC; | |
1747 | // flag fake tracks | |
1748 | if(track->GetLabel()<0) iITSflag *= -1; | |
1749 | } | |
8d63376d | 1750 | |
f8777463 | 1751 | return iITSflag; |
1752 | } | |
8d63376d | 1753 | |
1754 | ||
1755 |