]>
Commit | Line | Data |
---|---|---|
77e570bf | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-2010, 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 | // AliAnalysisTaskSE for the study of the impact parameter resolution | |
19 | // | |
20 | // Authors:A.Dainese, andrea.dainese@pd.infn.it | |
21 | // and Xianbao Yuan, yuanxb@iopp.ccnu.edu.cn; xianbao.yuan@pd.infn.it | |
22 | ///////////////////////////////////////////////////////// | |
23 | ||
77e570bf | 24 | #include <TList.h> |
25 | #include <TH1F.h> | |
26 | ||
27 | #include "AliAnalysisManager.h" | |
cbddc2a0 | 28 | #include "AliGeomManager.h" |
66cefb1c | 29 | #include "AliMultiplicity.h" |
31a96e36 | 30 | #include "AliTriggerConfiguration.h" |
31 | #include "AliCDBManager.h" | |
32 | #include "AliCDBEntry.h" | |
cbddc2a0 | 33 | #include "AliTrackPointArray.h" |
77e570bf | 34 | #include "AliMCEventHandler.h" |
cbddc2a0 | 35 | #include "AliGenEventHeader.h" |
77e570bf | 36 | #include "AliMCEvent.h" |
37 | #include "AliStack.h" | |
38 | #include "AliESDEvent.h" | |
39 | #include "AliESDVertex.h" | |
40 | #include "AliESDtrack.h" | |
41 | #include "AliVertexerTracks.h" | |
319532c0 | 42 | #include "AliVVertex.h" |
43 | #include "AliPID.h" | |
77e570bf | 44 | #include "AliAnalysisTaskSEImpParRes.h" |
45 | ||
46 | ClassImp(AliAnalysisTaskSEImpParRes) | |
47 | ||
48 | //________________________________________________________________________ | |
49 | AliAnalysisTaskSEImpParRes::AliAnalysisTaskSEImpParRes(): | |
50 | AliAnalysisTaskSE(), | |
51 | fReadMC(kFALSE), | |
52 | fSelectedPdg(-1), | |
cbddc2a0 | 53 | fUseDiamond(kFALSE), |
47f68c78 | 54 | fSkipTrack(kTRUE), |
66cefb1c | 55 | fMinMult(0), |
56 | fMaxMult(1000000), | |
31a96e36 | 57 | fCheckSDDIsIn(0), |
58 | fTriggerClass(""), | |
59 | fTrigConfig(0), | |
60 | fOCDBPath(""), | |
77e570bf | 61 | fOutputitspureSARec(0), |
62 | fOutputitspureSASkip(0), | |
63 | fOutputallPointRec(0), | |
64 | fOutputallPointSkip(0), | |
65 | fOutputpartPointRec(0), | |
66 | fOutputpartPointSkip(0), | |
67 | fOutputonepointSPDRec(0), | |
68 | fOutputonepointSPDSkip(0), | |
69 | fOutputpostvTracRec(0), | |
70 | fOutputpostvTracSkip(0), | |
71 | fOutputnegtvTracRec(0), | |
72 | fOutputnegtvTracSkip(0), | |
73 | fOutputpullAllpointRec(0), | |
74 | fOutputpullAllpointSkip(0), | |
75 | fOutputOnlyRefitRec(0), | |
76 | fOutputOnlyRefitSkip(0), | |
b2d79ac3 | 77 | fOutputSinThetaRec(0), |
78 | fOutputSinThetaSkip(0), | |
cbddc2a0 | 79 | fOutputallPointTrue(0), |
80 | fOutputpostvTracTrue(0), | |
81 | fOutputnegtvTracTrue(0), | |
82 | fOutputpullAllpointTrue(0), | |
83 | fOutputphiAllpointSkip(0), | |
84 | fOutputphiPostvtracSkip(0), | |
85 | fOutputphiNegtvtracSkip(0), | |
319532c0 | 86 | fOutputparticlePID(0), |
77e570bf | 87 | fOutputPt(0), |
88 | fNentries(0), | |
89 | fEstimVtx(0) | |
90 | { | |
91 | // | |
92 | // Default constructor | |
93 | // | |
94 | } | |
95 | ||
96 | //________________________________________________________________________ | |
97 | AliAnalysisTaskSEImpParRes::AliAnalysisTaskSEImpParRes(const char *name): | |
98 | AliAnalysisTaskSE(name), | |
99 | fReadMC(kFALSE), | |
100 | fSelectedPdg(-1), | |
cbddc2a0 | 101 | fUseDiamond(kFALSE), |
47f68c78 | 102 | fSkipTrack(kTRUE), |
66cefb1c | 103 | fMinMult(0), |
104 | fMaxMult(1000000), | |
31a96e36 | 105 | fCheckSDDIsIn(0), |
106 | fTriggerClass(""), | |
107 | fTrigConfig(0), | |
108 | fOCDBPath(""), | |
77e570bf | 109 | fOutputitspureSARec(0), |
110 | fOutputitspureSASkip(0), | |
111 | fOutputallPointRec(0), | |
112 | fOutputallPointSkip(0), | |
113 | fOutputpartPointRec(0), | |
114 | fOutputpartPointSkip(0), | |
115 | fOutputonepointSPDRec(0), | |
116 | fOutputonepointSPDSkip(0), | |
117 | fOutputpostvTracRec(0), | |
118 | fOutputpostvTracSkip(0), | |
119 | fOutputnegtvTracRec(0), | |
120 | fOutputnegtvTracSkip(0), | |
121 | fOutputpullAllpointRec(0), | |
122 | fOutputpullAllpointSkip(0), | |
123 | fOutputOnlyRefitRec(0), | |
124 | fOutputOnlyRefitSkip(0), | |
b2d79ac3 | 125 | fOutputSinThetaRec(0), |
126 | fOutputSinThetaSkip(0), | |
cbddc2a0 | 127 | fOutputallPointTrue(0), |
128 | fOutputpostvTracTrue(0), | |
129 | fOutputnegtvTracTrue(0), | |
130 | fOutputpullAllpointTrue(0), | |
131 | fOutputphiAllpointSkip(0), | |
132 | fOutputphiPostvtracSkip(0), | |
133 | fOutputphiNegtvtracSkip(0), | |
319532c0 | 134 | fOutputparticlePID(0), |
77e570bf | 135 | fOutputPt(0), |
136 | fNentries(0), | |
137 | fEstimVtx(0) | |
138 | { | |
139 | // | |
140 | // Default constructor | |
141 | // | |
142 | ||
143 | DefineOutput(1, TList::Class()); //My private output | |
144 | DefineOutput(2, TList::Class()); //My private output | |
145 | DefineOutput(3, TList::Class()); //My private output | |
146 | DefineOutput(4, TList::Class()); //My private output | |
147 | DefineOutput(5, TList::Class()); | |
148 | DefineOutput(6, TList::Class()); //My private output | |
149 | DefineOutput(7, TList::Class()); | |
150 | DefineOutput(8, TList::Class()); //My private output | |
151 | DefineOutput(9, TList::Class()); //My private output | |
152 | DefineOutput(10, TList::Class()); //My private output | |
153 | DefineOutput(11, TList::Class()); //My private output | |
154 | DefineOutput(12, TList::Class()); | |
155 | DefineOutput(13, TList::Class()); //My private output | |
156 | DefineOutput(14, TList::Class()); | |
157 | DefineOutput(15, TList::Class()); //My private output | |
158 | DefineOutput(16, TList::Class()); | |
159 | DefineOutput(17, TList::Class()); //My private output | |
b2d79ac3 | 160 | DefineOutput(18, TList::Class()); |
161 | DefineOutput(19, TList::Class()); //My private output | |
cbddc2a0 | 162 | DefineOutput(20, TList::Class()); //My private output |
163 | DefineOutput(21, TList::Class()); | |
164 | DefineOutput(22, TList::Class()); //My private output | |
165 | DefineOutput(23, TList::Class()); | |
166 | DefineOutput(24, TList::Class()); //My private output | |
167 | DefineOutput(25, TList::Class()); | |
168 | DefineOutput(26, TList::Class()); //My private output | |
169 | DefineOutput(27, TList::Class()); | |
26f8147c | 170 | DefineOutput(28, TH1F::Class()); |
171 | DefineOutput(29, TH1F::Class()); | |
77e570bf | 172 | } |
173 | ||
174 | //________________________________________________________________________ | |
175 | AliAnalysisTaskSEImpParRes::~AliAnalysisTaskSEImpParRes() | |
176 | { | |
177 | // | |
178 | // default distructor | |
179 | // | |
9c12af5f | 180 | if (AliAnalysisManager::GetAnalysisManager()->IsProofMode()) return; // RS |
181 | // | |
cbddc2a0 | 182 | if (fOutputitspureSARec) { delete fOutputitspureSARec; fOutputitspureSARec=0x0;} |
183 | if (fOutputitspureSASkip) { delete fOutputitspureSASkip; fOutputitspureSASkip=0x0;} | |
184 | if (fOutputallPointRec) { delete fOutputallPointRec; fOutputallPointRec=0x0; } | |
185 | if (fOutputallPointSkip) { delete fOutputallPointSkip; fOutputallPointSkip=0x0; } | |
186 | if (fOutputpartPointRec) { delete fOutputpartPointRec; fOutputpartPointRec=0x0; } | |
187 | if (fOutputpartPointSkip) { delete fOutputpartPointSkip; fOutputpartPointSkip=0x0; } | |
188 | if (fOutputonepointSPDRec) { delete fOutputonepointSPDRec;fOutputonepointSPDRec=0x0;} | |
189 | if (fOutputonepointSPDSkip) { delete fOutputonepointSPDSkip;fOutputonepointSPDSkip=0x0;} | |
190 | if (fOutputpostvTracRec) { delete fOutputpostvTracRec; fOutputpostvTracRec=0x0;} | |
191 | if (fOutputpostvTracSkip) { delete fOutputpostvTracSkip; fOutputpostvTracSkip=0x0;} | |
192 | if (fOutputnegtvTracRec) { delete fOutputnegtvTracRec; fOutputnegtvTracRec=0x0;} | |
193 | if (fOutputnegtvTracSkip) { delete fOutputnegtvTracSkip; fOutputnegtvTracSkip=0x0;} | |
194 | if (fOutputpullAllpointRec) {delete fOutputpullAllpointRec; fOutputpullAllpointRec=0x0;} | |
195 | if (fOutputpullAllpointSkip) {delete fOutputpullAllpointSkip; fOutputpullAllpointSkip=0x0;} | |
196 | if (fOutputOnlyRefitRec) {delete fOutputOnlyRefitRec; fOutputOnlyRefitRec=0x0;} | |
197 | if (fOutputOnlyRefitSkip) {delete fOutputOnlyRefitSkip; fOutputOnlyRefitSkip=0x0;} | |
198 | if (fOutputSinThetaRec) {delete fOutputSinThetaRec; fOutputSinThetaRec=0x0;} | |
199 | if (fOutputSinThetaSkip) {delete fOutputSinThetaSkip; fOutputSinThetaSkip=0x0;} | |
200 | if (fOutputallPointTrue) {delete fOutputallPointTrue; fOutputallPointTrue=0x0;} | |
201 | if (fOutputpostvTracTrue) {delete fOutputpostvTracTrue;fOutputpostvTracTrue=0x0;} | |
202 | if (fOutputnegtvTracTrue) {delete fOutputnegtvTracTrue;fOutputnegtvTracTrue=0x0;} | |
203 | if (fOutputpullAllpointTrue) {delete fOutputpullAllpointTrue;fOutputpullAllpointTrue=0x0;} | |
204 | if (fOutputphiAllpointSkip) {delete fOutputphiAllpointSkip;fOutputphiAllpointSkip=0x0;} | |
319532c0 | 205 | if (fOutputphiPostvtracSkip) {delete fOutputphiPostvtracSkip;fOutputphiPostvtracSkip=0x0;} |
cbddc2a0 | 206 | if (fOutputphiNegtvtracSkip) {delete fOutputphiNegtvtracSkip;fOutputphiNegtvtracSkip=0x0;} |
319532c0 | 207 | if (fOutputparticlePID) {delete fOutputparticlePID;fOutputparticlePID=0x0;} |
cbddc2a0 | 208 | if (fOutputPt) {delete fOutputPt;fOutputPt=0x0;} |
209 | if (fNentries) { delete fNentries; fNentries =0x0; } | |
210 | if (fEstimVtx) { delete fEstimVtx; fEstimVtx =0x0; } | |
77e570bf | 211 | |
212 | } | |
213 | ||
214 | //________________________________________________________________________ | |
215 | void AliAnalysisTaskSEImpParRes::UserCreateOutputObjects() | |
216 | { | |
217 | // | |
218 | // Create the output container | |
219 | // | |
220 | ||
221 | if(fDebug>1) printf("AnalysisTaskSEImpParRes::UserCreateOutputObjects() \n"); | |
222 | ||
223 | // Several histograms are more conveniently managed in a TList | |
224 | if (!fOutputitspureSARec) { | |
225 | fOutputitspureSARec = new TList(); | |
226 | fOutputitspureSARec->SetOwner(); | |
227 | fOutputitspureSARec->SetName("ITSpureSARec"); | |
228 | } | |
229 | ||
230 | if (!fOutputitspureSASkip) { | |
231 | fOutputitspureSASkip = new TList(); | |
232 | fOutputitspureSASkip->SetOwner(); | |
233 | fOutputitspureSASkip->SetName("ITSpureSASkip"); | |
234 | } | |
235 | ||
236 | if (!fOutputallPointRec) { | |
237 | fOutputallPointRec = new TList(); | |
238 | fOutputallPointRec->SetOwner(); | |
239 | fOutputallPointRec->SetName("allpointRec"); | |
240 | } | |
241 | ||
242 | if (!fOutputallPointSkip) { | |
243 | fOutputallPointSkip = new TList(); | |
244 | fOutputallPointSkip->SetOwner(); | |
245 | fOutputallPointSkip->SetName("allpointSkip"); | |
246 | } | |
247 | ||
248 | if (!fOutputpartPointRec) { | |
249 | fOutputpartPointRec = new TList(); | |
250 | fOutputpartPointRec->SetOwner(); | |
251 | fOutputpartPointRec->SetName("partpointRec"); | |
252 | } | |
253 | ||
254 | if (!fOutputpartPointSkip) { | |
255 | fOutputpartPointSkip = new TList(); | |
256 | fOutputpartPointSkip->SetOwner(); | |
257 | fOutputpartPointSkip->SetName("partpointSkip"); | |
258 | } | |
259 | ||
260 | if (!fOutputonepointSPDRec) { | |
261 | fOutputonepointSPDRec = new TList(); | |
262 | fOutputonepointSPDRec->SetOwner(); | |
263 | fOutputonepointSPDRec->SetName("onepointSPDRec"); | |
264 | } | |
265 | ||
266 | if (!fOutputonepointSPDSkip) { | |
267 | fOutputonepointSPDSkip = new TList(); | |
268 | fOutputonepointSPDSkip->SetOwner(); | |
269 | fOutputonepointSPDSkip->SetName("onepointSPDSkip"); | |
270 | } | |
271 | ||
272 | if (!fOutputpostvTracRec) { | |
273 | fOutputpostvTracRec = new TList(); | |
274 | fOutputpostvTracRec->SetOwner(); | |
275 | fOutputpostvTracRec->SetName("postvtracRec"); | |
276 | } | |
277 | ||
278 | if (!fOutputpostvTracSkip) { | |
279 | fOutputpostvTracSkip = new TList(); | |
280 | fOutputpostvTracSkip->SetOwner(); | |
281 | fOutputpostvTracSkip->SetName("postvtracSkip"); | |
282 | } | |
283 | ||
284 | if (!fOutputnegtvTracRec) { | |
285 | fOutputnegtvTracRec = new TList(); | |
286 | fOutputnegtvTracRec->SetOwner(); | |
287 | fOutputnegtvTracRec->SetName("negtvtracRe"); | |
288 | } | |
289 | ||
290 | if (!fOutputnegtvTracSkip) { | |
291 | fOutputnegtvTracSkip = new TList(); | |
292 | fOutputnegtvTracSkip->SetOwner(); | |
293 | fOutputnegtvTracSkip->SetName("negtvtracSkip"); | |
294 | } | |
cbddc2a0 | 295 | |
77e570bf | 296 | if (!fOutputpullAllpointSkip) { |
297 | fOutputpullAllpointSkip = new TList(); | |
298 | fOutputpullAllpointSkip->SetOwner(); | |
299 | fOutputpullAllpointSkip->SetName("pullAllpointSkip"); | |
300 | } | |
cbddc2a0 | 301 | |
77e570bf | 302 | if (!fOutputpullAllpointRec) { |
303 | fOutputpullAllpointRec = new TList(); | |
304 | fOutputpullAllpointRec->SetOwner(); | |
305 | fOutputpullAllpointRec->SetName("pullAllpointRec"); | |
306 | } | |
cbddc2a0 | 307 | |
77e570bf | 308 | if (!fOutputOnlyRefitRec) { |
309 | fOutputOnlyRefitRec = new TList(); | |
310 | fOutputOnlyRefitRec->SetOwner(); | |
311 | fOutputOnlyRefitRec->SetName("onlyRefitRec"); | |
312 | } | |
cbddc2a0 | 313 | |
77e570bf | 314 | if (!fOutputOnlyRefitSkip) { |
315 | fOutputOnlyRefitSkip = new TList(); | |
316 | fOutputOnlyRefitSkip->SetOwner(); | |
317 | fOutputOnlyRefitSkip->SetName("onlyRefitRec"); | |
318 | } | |
cbddc2a0 | 319 | |
320 | if (!fOutputallPointTrue) { | |
321 | fOutputallPointTrue = new TList(); | |
322 | fOutputallPointTrue->SetOwner(); | |
323 | fOutputallPointTrue->SetName("allpointTrue"); | |
324 | } | |
325 | ||
326 | if (!fOutputpostvTracTrue) { | |
327 | fOutputpostvTracTrue = new TList(); | |
328 | fOutputpostvTracTrue->SetOwner(); | |
329 | fOutputpostvTracTrue->SetName("postvtracTrue"); | |
330 | } | |
331 | ||
332 | if (!fOutputnegtvTracTrue) { | |
333 | fOutputnegtvTracTrue = new TList(); | |
334 | fOutputnegtvTracTrue->SetOwner(); | |
335 | fOutputnegtvTracTrue->SetName("negtvtracTrue"); | |
336 | } | |
337 | ||
338 | if (!fOutputpullAllpointTrue) { | |
339 | fOutputpullAllpointTrue = new TList(); | |
340 | fOutputpullAllpointTrue->SetOwner(); | |
341 | fOutputpullAllpointTrue->SetName("pullAllpointTrue"); | |
342 | } | |
343 | ||
319532c0 | 344 | |
345 | if (!fOutputparticlePID) { | |
346 | fOutputparticlePID = new TList(); | |
347 | fOutputparticlePID->SetOwner(); | |
348 | fOutputparticlePID->SetName("particlePID"); | |
349 | } | |
350 | ||
77e570bf | 351 | if (!fOutputPt) { |
352 | fOutputPt = new TList(); | |
353 | fOutputPt->SetOwner(); | |
354 | fOutputPt->SetName("Pt"); | |
355 | } | |
356 | ||
357 | const Int_t nhist=26; | |
b2d79ac3 | 358 | const TString d0ITSpureSArphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; |
359 | const TString d0ITSpureSAzTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
360 | const TString d0allpointrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
361 | const TString d0allpointzTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
362 | const TString d0partpointrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
363 | const TString d0partpointzTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
364 | const TString d0onepointSPDrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
365 | const TString d0onepointSPDzTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
366 | const TString d0postvtracrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
367 | const TString d0postvtraczTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
368 | const TString d0negtvtracrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
369 | const TString d0negtvtraczTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
370 | const TString d0pullAllpointrphiTitle = "d_{0} Pull Distribution_rphi; d_{0} pull; Entries"; | |
371 | const TString d0pullAllpointzTitle = "d_{0} Pull Distribution_z; d_{0} pull; Entries"; | |
372 | const TString d0onlyRefitrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
373 | const TString d0onlyRefitzTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
374 | const TString d0ptTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
cbddc2a0 | 375 | const TString d0rphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; |
376 | const TString d0zTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
319532c0 | 377 | const TString d0rphiParticlPID = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; |
378 | const TString d0zPrtilePID = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
cbddc2a0 | 379 | |
319532c0 | 380 | TString named0itspureSArphiRec,named0itspureSAzRec,named0allpointrphiRec, named0allpointzRec,named0partpointrphiRec, named0partpointzRec,named0onepointSPDrphiRec, named0onepointSPDzRec,named0postvtracrphiRec, named0postvtraczRec,named0negtvtracrphiRec, named0negtvtraczRec,named0pt,named0pullAllpointrphiRec,named0pullAllpointzRec,named0onlyRefitrphiRec,named0onlyRefitzRec,named0pionPIDrphiRec, named0pionPIDzRec,named0kaonPIDrphiRec, named0kaonPIDzRec,named0protonPIDrphiRec, named0protonPIDzRec; |
cbddc2a0 | 381 | |
77e570bf | 382 | TH1F *d0ITSpureSArphiRec=0,*d0ITSpureSAzRec=0,*d0AllpointrphiRec=0, *d0AllpointzRec=0,*d0PartpointrphiRec=0, *d0PartpointzRec=0, |
319532c0 | 383 | *d0OnepointSPDrphiRec=0,*d0OnepointSPDzRec=0,*d0PostvtracrphiRec=0, *d0PostvtraczRec=0,*d0NegtvtracrphiRec=0, *d0NegtvtraczRec=0,*d0Pt=0,*d0PullAllpointrphiRec=0,*d0PullAllpointzRec=0,*d0OnlyRefitrphiRec=0,*d0OnlyRefitzRec=0,*d0PionPIDrphiRec=0,*d0PionPIDzRec=0,*d0KaonPIDrphiRec=0,*d0KaonPIDzRec=0,*d0ProtonPIDrphiRec=0,*d0ProtonPIDzRec=0; |
77e570bf | 384 | |
31a96e36 | 385 | TString named0itspureSArphiSkip,named0itspureSAzSkip,named0allpointrphiSkip, named0allpointzSkip,named0partpointrphiSkip, named0partpointzSkip,named0onepointSPDrphiSkip, named0onepointSPDzSkip,named0postvtracrphiSkip, named0postvtraczSkip,named0negtvtracrphiSkip, named0negtvtraczSkip,named0ptSkip,named0pullAllpointrphiSkip,named0pullAllpointzSkip,named0onlyRefitrphiSkip,named0onlyRefitzSkip,named0allpointrphiTrue, named0allpointzTrue,named0postvtracrphiTrue, named0postvtraczTrue,named0negtvtracrphiTrue, named0negtvtraczTrue,named0pullAllpointrphiTrue,named0pullAllpointzTrue,named0pionPIDrphiSkip, named0pionPIDzSkip,named0kaonPIDrphiSkip, named0kaonPIDzSkip,named0protonPIDrphiSkip, named0protonPIDzSkip; |
77e570bf | 386 | |
31a96e36 | 387 | TH1F *d0ITSpureSArphiSkip=0,*d0ITSpureSAzSkip=0,*d0AllpointrphiSkip=0, *d0AllpointzSkip=0,*d0PartpointrphiSkip=0, *d0PartpointzSkip=0,*d0OnepointSPDrphiSkip=0,*d0OnepointSPDzSkip=0,*d0PostvtracrphiSkip=0, *d0PostvtraczSkip=0,*d0NegtvtracrphiSkip=0,*d0NegtvtraczSkip=0,*d0PullAllpointrphiSkip=0,*d0PullAllpointzSkip=0,*d0OnlyRefitrphiSkip=0,*d0OnlyRefitzSkip=0,*d0AllpointrphiTrue=0, *d0AllpointzTrue=0,*d0PostvtracrphiTrue=0, *d0PostvtraczTrue=0,*d0NegtvtracrphiTrue=0,*d0NegtvtraczTrue=0,*d0PullAllpointrphiTrue,*d0PullAllpointzTrue,*d0PionPIDrphiSkip=0,*d0PionPIDzSkip=0,*d0KaonPIDrphiSkip=0,*d0KaonPIDzSkip=0,*d0ProtonPIDrphiSkip=0,*d0ProtonPIDzSkip=0; |
77e570bf | 388 | |
b2d79ac3 | 389 | for(Int_t i=1; i<=nhist; i++) { |
319532c0 | 390 | |
77e570bf | 391 | named0itspureSArphiRec = "d0itspureSArphiRec_"; |
b2d79ac3 | 392 | named0itspureSArphiRec += i; |
77e570bf | 393 | named0itspureSAzRec = "d0itspureSAzRec_"; |
b2d79ac3 | 394 | named0itspureSAzRec += i; |
395 | d0ITSpureSArphiRec = new TH1F(named0itspureSArphiRec.Data(), d0ITSpureSArphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 396 | d0ITSpureSArphiRec->Sumw2(); |
397 | d0ITSpureSArphiRec->SetMinimum(0); | |
398 | fOutputitspureSARec->Add(d0ITSpureSArphiRec); | |
b2d79ac3 | 399 | d0ITSpureSAzRec = new TH1F(named0itspureSAzRec.Data(), d0ITSpureSAzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 400 | d0ITSpureSAzRec->Sumw2(); |
401 | d0ITSpureSAzRec->SetMinimum(0); | |
402 | fOutputitspureSARec->Add(d0ITSpureSAzRec); | |
403 | ||
404 | named0itspureSArphiSkip = "d0itspureSArphiSkip_"; | |
b2d79ac3 | 405 | named0itspureSArphiSkip += i; |
77e570bf | 406 | named0itspureSAzSkip = "d0itspureSAzSkip_"; |
b2d79ac3 | 407 | named0itspureSAzSkip += i; |
319532c0 | 408 | d0ITSpureSArphiSkip = new TH1F(named0itspureSArphiSkip.Data(), d0ITSpureSArphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); d0ITSpureSArphiSkip->Sumw2(); |
77e570bf | 409 | d0ITSpureSArphiSkip->SetMinimum(0); |
410 | fOutputitspureSASkip->Add(d0ITSpureSArphiSkip); | |
b2d79ac3 | 411 | d0ITSpureSAzSkip = new TH1F(named0itspureSAzSkip.Data(), d0ITSpureSAzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 412 | d0ITSpureSAzSkip->Sumw2(); |
413 | d0ITSpureSAzSkip->SetMinimum(0); | |
414 | fOutputitspureSASkip->Add(d0ITSpureSAzSkip); | |
415 | ||
416 | named0allpointrphiRec = "d0allpointrphiRec_"; | |
b2d79ac3 | 417 | named0allpointrphiRec += i; |
77e570bf | 418 | named0allpointzRec = "d0allpointzRec_"; |
b2d79ac3 | 419 | named0allpointzRec += i; |
420 | d0AllpointrphiRec = new TH1F(named0allpointrphiRec.Data(), d0allpointrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 421 | d0AllpointrphiRec->Sumw2(); |
422 | d0AllpointrphiRec->SetMinimum(0); | |
423 | fOutputallPointRec->Add(d0AllpointrphiRec); | |
b2d79ac3 | 424 | d0AllpointzRec= new TH1F(named0allpointzRec.Data(), d0allpointzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 425 | d0AllpointzRec->Sumw2(); |
426 | d0AllpointzRec->SetMinimum(0); | |
427 | fOutputallPointRec->Add(d0AllpointzRec); | |
428 | ||
429 | named0allpointrphiSkip = "d0allpointrphiSkip_"; | |
b2d79ac3 | 430 | named0allpointrphiSkip += i; |
77e570bf | 431 | named0allpointzSkip = "d0allpointzSkip_"; |
b2d79ac3 | 432 | named0allpointzSkip += i; |
433 | d0AllpointrphiSkip = new TH1F(named0allpointrphiSkip.Data(), d0allpointrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 434 | d0AllpointrphiSkip->Sumw2(); |
435 | d0AllpointrphiSkip->SetMinimum(0); | |
436 | fOutputallPointSkip->Add(d0AllpointrphiSkip); | |
b2d79ac3 | 437 | d0AllpointzSkip = new TH1F(named0allpointzSkip.Data(), d0allpointzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 438 | d0AllpointzSkip->Sumw2(); |
439 | d0AllpointzSkip->SetMinimum(0); | |
440 | fOutputallPointSkip->Add(d0AllpointzSkip); | |
441 | ||
442 | named0partpointrphiRec = "d0partpointrphiRec_"; | |
b2d79ac3 | 443 | named0partpointrphiRec += i; |
77e570bf | 444 | named0partpointzRec = "d0partpointzRec_"; |
b2d79ac3 | 445 | named0partpointzRec += i; |
446 | d0PartpointrphiRec = new TH1F(named0partpointrphiRec.Data(), d0partpointrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 447 | d0PartpointrphiRec->Sumw2(); |
448 | d0PartpointrphiRec->SetMinimum(0); | |
449 | fOutputpartPointRec->Add(d0PartpointrphiRec); | |
b2d79ac3 | 450 | d0PartpointzRec = new TH1F(named0partpointzRec.Data(), d0partpointzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 451 | d0PartpointzRec->Sumw2(); |
452 | d0PartpointzRec->SetMinimum(0); | |
453 | fOutputpartPointRec->Add(d0PartpointzRec); | |
454 | ||
455 | named0partpointrphiSkip = "d0partpointrphiSkip_"; | |
b2d79ac3 | 456 | named0partpointrphiSkip += i; |
77e570bf | 457 | named0partpointzSkip = "d0partpointzSkip_"; |
b2d79ac3 | 458 | named0partpointzSkip += i; |
459 | d0PartpointrphiSkip = new TH1F(named0partpointrphiSkip.Data(), d0partpointrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 460 | d0PartpointrphiSkip->Sumw2(); |
461 | d0PartpointrphiSkip->SetMinimum(0); | |
462 | fOutputpartPointSkip->Add(d0PartpointrphiSkip); | |
b2d79ac3 | 463 | d0PartpointzSkip = new TH1F(named0partpointzSkip.Data(), d0partpointzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 464 | d0PartpointzSkip->Sumw2(); |
465 | d0PartpointzSkip->SetMinimum(0); | |
466 | fOutputpartPointSkip->Add(d0PartpointzSkip); | |
467 | ||
468 | named0onepointSPDrphiRec = "d0onepointSPDrphiRec_"; | |
b2d79ac3 | 469 | named0onepointSPDrphiRec += i; |
77e570bf | 470 | named0onepointSPDzRec = "d0onepointSPDzRec_"; |
b2d79ac3 | 471 | named0onepointSPDzRec += i; |
472 | d0OnepointSPDrphiRec = new TH1F(named0onepointSPDrphiRec.Data(), d0onepointSPDrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 473 | d0OnepointSPDrphiRec->Sumw2(); |
474 | d0OnepointSPDrphiRec->SetMinimum(0); | |
475 | fOutputonepointSPDRec->Add(d0OnepointSPDrphiRec); | |
b2d79ac3 | 476 | d0OnepointSPDzRec = new TH1F(named0onepointSPDzRec.Data(), d0onepointSPDzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 477 | d0OnepointSPDzRec->Sumw2(); |
478 | d0OnepointSPDzRec->SetMinimum(0); | |
479 | fOutputonepointSPDRec->Add(d0OnepointSPDzRec); | |
480 | ||
481 | named0onepointSPDrphiSkip = "d0onepointSPDrphiSkip_"; | |
b2d79ac3 | 482 | named0onepointSPDrphiSkip += i; |
77e570bf | 483 | named0onepointSPDzSkip = "d0onepointSPDzSkip_"; |
b2d79ac3 | 484 | named0onepointSPDzSkip += i; |
485 | d0OnepointSPDrphiSkip = new TH1F(named0onepointSPDrphiSkip.Data(), d0onepointSPDrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 486 | d0OnepointSPDrphiSkip->Sumw2(); |
487 | d0OnepointSPDrphiSkip->SetMinimum(0); | |
488 | fOutputonepointSPDSkip->Add(d0OnepointSPDrphiSkip); | |
b2d79ac3 | 489 | d0OnepointSPDzSkip = new TH1F(named0onepointSPDzSkip.Data(), d0onepointSPDzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 490 | d0OnepointSPDzSkip->Sumw2(); |
491 | d0OnepointSPDzSkip->SetMinimum(0); | |
492 | fOutputonepointSPDSkip->Add(d0OnepointSPDzSkip); | |
493 | ||
494 | named0postvtracrphiRec = "d0postvtracrphiRec_"; | |
b2d79ac3 | 495 | named0postvtracrphiRec += i; |
77e570bf | 496 | named0postvtraczRec = "d0postvtraczRec_"; |
b2d79ac3 | 497 | named0postvtraczRec += i; |
498 | d0PostvtracrphiRec = new TH1F(named0postvtracrphiRec.Data(), d0postvtracrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 499 | d0PostvtracrphiRec->Sumw2(); |
500 | d0PostvtracrphiRec->SetMinimum(0); | |
501 | fOutputpostvTracRec->Add(d0PostvtracrphiRec); | |
b2d79ac3 | 502 | d0PostvtraczRec = new TH1F(named0postvtraczRec.Data(), d0postvtraczTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 503 | d0PostvtraczRec->Sumw2(); |
504 | d0PostvtraczRec->SetMinimum(0); | |
505 | fOutputpostvTracRec->Add(d0PostvtraczRec); | |
506 | ||
507 | named0postvtracrphiSkip = "d0postvtracrphiSkip_"; | |
b2d79ac3 | 508 | named0postvtracrphiSkip += i; |
77e570bf | 509 | named0postvtraczSkip = "d0postvtraczSkip_"; |
b2d79ac3 | 510 | named0postvtraczSkip += i; |
511 | d0PostvtracrphiSkip = new TH1F(named0postvtracrphiSkip.Data(), d0postvtracrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 512 | d0PostvtracrphiSkip->Sumw2(); |
513 | d0PostvtracrphiSkip->SetMinimum(0); | |
514 | fOutputpostvTracSkip->Add(d0PostvtracrphiSkip); | |
b2d79ac3 | 515 | d0PostvtraczSkip = new TH1F(named0postvtraczSkip.Data(), d0postvtraczTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 516 | d0PostvtraczSkip->Sumw2(); |
517 | d0PostvtraczSkip->SetMinimum(0); | |
518 | fOutputpostvTracSkip->Add(d0PostvtraczSkip); | |
519 | ||
520 | named0negtvtracrphiRec = "d0negtvtracrphiRec_"; | |
b2d79ac3 | 521 | named0negtvtracrphiRec += i; |
77e570bf | 522 | named0negtvtraczRec = "d0negtvtraczRec_"; |
b2d79ac3 | 523 | named0negtvtraczRec += i; |
524 | d0NegtvtracrphiRec = new TH1F(named0negtvtracrphiRec.Data(), d0negtvtracrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 525 | d0NegtvtracrphiRec->Sumw2(); |
526 | d0NegtvtracrphiRec->SetMinimum(0); | |
527 | fOutputnegtvTracRec->Add(d0NegtvtracrphiRec); | |
b2d79ac3 | 528 | d0NegtvtraczRec = new TH1F(named0negtvtraczRec.Data(), d0negtvtraczTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 529 | d0NegtvtraczRec->Sumw2(); |
530 | d0NegtvtraczRec->SetMinimum(0); | |
531 | fOutputnegtvTracRec->Add(d0NegtvtraczRec); | |
532 | ||
533 | named0negtvtracrphiSkip = "d0negtvtracrphiSkip_"; | |
b2d79ac3 | 534 | named0negtvtracrphiSkip += i; |
77e570bf | 535 | named0negtvtraczSkip = "d0negtvtraczSkip_"; |
b2d79ac3 | 536 | named0negtvtraczSkip += i; |
537 | d0NegtvtracrphiSkip = new TH1F(named0negtvtracrphiSkip.Data(), d0negtvtracrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
77e570bf | 538 | d0NegtvtracrphiSkip->Sumw2(); |
539 | d0NegtvtracrphiSkip->SetMinimum(0); | |
540 | fOutputnegtvTracSkip->Add(d0NegtvtracrphiSkip); | |
b2d79ac3 | 541 | d0NegtvtraczSkip = new TH1F(named0negtvtraczSkip.Data(), d0negtvtraczTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); |
77e570bf | 542 | d0NegtvtraczSkip->Sumw2(); |
543 | d0NegtvtraczSkip->SetMinimum(0); | |
544 | fOutputnegtvTracSkip->Add(d0NegtvtraczSkip); | |
545 | ||
546 | named0pullAllpointrphiSkip = "d0pullAllpointrphiSkip_"; | |
b2d79ac3 | 547 | named0pullAllpointrphiSkip +=i; |
77e570bf | 548 | named0pullAllpointzSkip = "d0pullAllpointzSkip_"; |
b2d79ac3 | 549 | named0pullAllpointzSkip +=i; |
77e570bf | 550 | d0PullAllpointrphiSkip = new TH1F(named0pullAllpointrphiSkip.Data(),d0pullAllpointrphiTitle.Data(),400,-10.,10.); |
551 | d0PullAllpointrphiSkip->Sumw2(); | |
552 | d0PullAllpointrphiSkip->SetMinimum(0); | |
553 | fOutputpullAllpointSkip->Add(d0PullAllpointrphiSkip); | |
554 | d0PullAllpointzSkip = new TH1F(named0pullAllpointzSkip.Data(),d0pullAllpointzTitle.Data(),400,-10.,10.); | |
555 | d0PullAllpointzSkip->Sumw2(); | |
556 | d0PullAllpointzSkip->SetMinimum(0); | |
557 | fOutputpullAllpointSkip->Add(d0PullAllpointzSkip); | |
558 | ||
559 | named0pullAllpointrphiRec = "d0pullAllpointrphiRec_"; | |
b2d79ac3 | 560 | named0pullAllpointrphiRec +=i; |
77e570bf | 561 | named0pullAllpointzRec = "d0pullAllpointzRec_"; |
b2d79ac3 | 562 | named0pullAllpointzRec +=i; |
77e570bf | 563 | d0PullAllpointrphiRec = new TH1F(named0pullAllpointrphiRec.Data(),d0pullAllpointrphiTitle.Data(),400,-10.,10.); |
564 | d0PullAllpointrphiRec->Sumw2(); | |
565 | d0PullAllpointrphiRec->SetMinimum(0); | |
566 | fOutputpullAllpointRec->Add(d0PullAllpointrphiRec); | |
567 | d0PullAllpointzRec = new TH1F(named0pullAllpointzRec.Data(),d0pullAllpointzTitle.Data(),400,-10.,10.); | |
568 | d0PullAllpointzRec->Sumw2(); | |
569 | d0PullAllpointzRec->SetMinimum(0); | |
570 | fOutputpullAllpointRec->Add(d0PullAllpointzRec); | |
571 | ||
77e570bf | 572 | named0onlyRefitrphiRec = "d0onlyrefitrphiRec_"; |
b2d79ac3 | 573 | named0onlyRefitrphiRec +=i; |
77e570bf | 574 | named0onlyRefitzRec = "d0onlyrefitzRec_"; |
b2d79ac3 | 575 | named0onlyRefitzRec +=i; |
576 | d0OnlyRefitrphiRec = new TH1F(named0onlyRefitrphiRec.Data(),d0onlyRefitrphiTitle.Data(),400,-Getd0HistRange(i),Getd0HistRange(i)); | |
77e570bf | 577 | d0OnlyRefitrphiRec->Sumw2(); |
578 | d0OnlyRefitrphiRec->SetMinimum(0); | |
579 | fOutputOnlyRefitRec->Add(d0OnlyRefitrphiRec); | |
b2d79ac3 | 580 | d0OnlyRefitzRec = new TH1F(named0onlyRefitzRec.Data(),d0onlyRefitzTitle.Data(),400,-Getd0HistRange(i),Getd0HistRange(i)); |
77e570bf | 581 | d0OnlyRefitzRec->Sumw2(); |
582 | d0OnlyRefitzRec->SetMinimum(0); | |
583 | fOutputOnlyRefitRec->Add(d0OnlyRefitzRec); | |
584 | ||
77e570bf | 585 | named0onlyRefitrphiSkip = "d0onlyrefitrphiSkip_"; |
b2d79ac3 | 586 | named0onlyRefitrphiSkip +=i; |
77e570bf | 587 | named0onlyRefitzSkip = "d0onlyrefitzSkip_"; |
b2d79ac3 | 588 | named0onlyRefitzSkip +=i; |
589 | d0OnlyRefitrphiSkip = new TH1F(named0onlyRefitrphiSkip.Data(),d0onlyRefitrphiTitle.Data(),400,-Getd0HistRange(i),Getd0HistRange(i)); | |
77e570bf | 590 | d0OnlyRefitrphiSkip->Sumw2(); |
591 | d0OnlyRefitrphiSkip->SetMinimum(0); | |
592 | fOutputOnlyRefitSkip->Add(d0OnlyRefitrphiSkip); | |
b2d79ac3 | 593 | d0OnlyRefitzSkip = new TH1F(named0onlyRefitzSkip.Data(),d0onlyRefitzTitle.Data(),400,-Getd0HistRange(i),Getd0HistRange(i)); |
77e570bf | 594 | d0OnlyRefitzSkip->Sumw2(); |
595 | d0OnlyRefitzSkip->SetMinimum(0); | |
596 | fOutputOnlyRefitSkip->Add(d0OnlyRefitzSkip); | |
597 | ||
cbddc2a0 | 598 | named0allpointrphiTrue = "d0allpointrphiTrue_"; |
599 | named0allpointrphiTrue += i; | |
600 | named0allpointzTrue = "d0allpointzTrue_"; | |
601 | named0allpointzTrue += i; | |
602 | d0AllpointrphiTrue = new TH1F(named0allpointrphiTrue.Data(), d0allpointrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
603 | d0AllpointrphiTrue->Sumw2(); | |
604 | d0AllpointrphiTrue->SetMinimum(0); | |
605 | fOutputallPointTrue->Add(d0AllpointrphiTrue); | |
606 | d0AllpointzTrue = new TH1F(named0allpointzTrue.Data(), d0allpointzTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
607 | d0AllpointzTrue->Sumw2(); | |
608 | d0AllpointzTrue->SetMinimum(0); | |
609 | fOutputallPointTrue->Add(d0AllpointzTrue); | |
610 | ||
611 | named0postvtracrphiTrue = "d0postvtracrphiTrue_"; | |
612 | named0postvtracrphiTrue += i; | |
613 | named0postvtraczTrue = "d0postvtraczTrue_"; | |
614 | named0postvtraczTrue += i; | |
615 | d0PostvtracrphiTrue = new TH1F(named0postvtracrphiTrue.Data(), d0postvtracrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
616 | d0PostvtracrphiTrue->Sumw2(); | |
617 | d0PostvtracrphiTrue->SetMinimum(0); | |
618 | fOutputpostvTracTrue->Add(d0PostvtracrphiTrue); | |
619 | d0PostvtraczTrue = new TH1F(named0postvtraczTrue.Data(), d0postvtraczTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
620 | d0PostvtraczTrue->Sumw2(); | |
621 | d0PostvtraczTrue->SetMinimum(0); | |
622 | fOutputpostvTracTrue->Add(d0PostvtraczTrue); | |
623 | ||
624 | named0negtvtracrphiTrue = "d0negtvtracrphiTrue_"; | |
625 | named0negtvtracrphiTrue += i; | |
626 | named0negtvtraczTrue = "d0negtvtraczTrue_"; | |
627 | named0negtvtraczTrue += i; | |
628 | d0NegtvtracrphiTrue = new TH1F(named0negtvtracrphiTrue.Data(), d0negtvtracrphiTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
629 | d0NegtvtracrphiTrue->Sumw2(); | |
630 | d0NegtvtracrphiTrue->SetMinimum(0); | |
631 | fOutputnegtvTracTrue->Add(d0NegtvtracrphiTrue); | |
632 | d0NegtvtraczTrue = new TH1F(named0negtvtraczTrue.Data(), d0negtvtraczTitle.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
633 | d0NegtvtraczTrue->Sumw2(); | |
634 | d0NegtvtraczTrue->SetMinimum(0); | |
635 | fOutputnegtvTracTrue->Add(d0NegtvtraczTrue); | |
636 | ||
637 | named0pullAllpointrphiTrue = "d0pullAllpointrphiTrue_"; | |
638 | named0pullAllpointrphiTrue +=i; | |
639 | named0pullAllpointzTrue = "d0pullAllpointzTrue_"; | |
640 | named0pullAllpointzTrue +=i; | |
641 | d0PullAllpointrphiTrue = new TH1F(named0pullAllpointrphiTrue.Data(),d0pullAllpointrphiTitle.Data(),400,-10.,10.); | |
642 | d0PullAllpointrphiTrue->Sumw2(); | |
643 | d0PullAllpointrphiTrue->SetMinimum(0); | |
644 | fOutputpullAllpointTrue->Add(d0PullAllpointrphiTrue); | |
645 | d0PullAllpointzTrue = new TH1F(named0pullAllpointzTrue.Data(),d0pullAllpointzTitle.Data(),400,-10.,10.); | |
646 | d0PullAllpointzTrue->Sumw2(); | |
647 | d0PullAllpointzTrue->SetMinimum(0); | |
648 | fOutputpullAllpointTrue->Add(d0PullAllpointzTrue); | |
649 | ||
cbddc2a0 | 650 | |
319532c0 | 651 | named0pionPIDrphiRec = "d0pionPIDrphiRec_"; |
652 | named0pionPIDrphiRec += i; | |
653 | named0pionPIDzRec = "d0pionPIDzRec_"; | |
654 | named0pionPIDzRec += i; | |
655 | d0PionPIDrphiRec = new TH1F(named0pionPIDrphiRec.Data(), d0rphiParticlPID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
656 | d0PionPIDrphiRec->Sumw2(); | |
657 | d0PionPIDrphiRec->SetMinimum(0); | |
658 | fOutputparticlePID->Add(d0PionPIDrphiRec); | |
659 | d0PionPIDzRec = new TH1F(named0pionPIDzRec.Data(), d0zPrtilePID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
660 | d0PionPIDzRec->Sumw2(); | |
661 | d0PionPIDzRec->SetMinimum(0); | |
662 | fOutputparticlePID->Add(d0PionPIDzRec); | |
663 | ||
664 | named0pionPIDrphiSkip = "d0pionPIDrphiSkip_"; | |
665 | named0pionPIDrphiSkip += i; | |
666 | named0pionPIDzSkip = "d0pionPIDzSkip_"; | |
667 | named0pionPIDzSkip += i; | |
668 | d0PionPIDrphiSkip = new TH1F(named0pionPIDrphiSkip.Data(), d0rphiParticlPID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
669 | d0PionPIDrphiSkip->Sumw2(); | |
670 | d0PionPIDrphiSkip->SetMinimum(0); | |
671 | fOutputparticlePID->Add(d0PionPIDrphiSkip); | |
672 | d0PionPIDzSkip = new TH1F(named0pionPIDzSkip.Data(), d0zPrtilePID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
673 | d0PionPIDzSkip->Sumw2(); | |
674 | d0PionPIDzSkip->SetMinimum(0); | |
675 | fOutputparticlePID->Add(d0PionPIDzSkip); | |
676 | ||
677 | named0kaonPIDrphiRec = "d0kaonPIDrphiRec_"; | |
678 | named0kaonPIDrphiRec += i; | |
679 | named0kaonPIDzRec = "d0kaonPIDzRec_"; | |
680 | named0kaonPIDzRec += i; | |
681 | d0KaonPIDrphiRec = new TH1F(named0kaonPIDrphiRec.Data(), d0rphiParticlPID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
682 | d0KaonPIDrphiRec->Sumw2(); | |
683 | d0KaonPIDrphiRec->SetMinimum(0); | |
684 | fOutputparticlePID->Add(d0KaonPIDrphiRec); | |
685 | d0KaonPIDzRec = new TH1F(named0kaonPIDzRec.Data(), d0zPrtilePID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
686 | d0KaonPIDzRec->Sumw2(); | |
687 | d0KaonPIDzRec->SetMinimum(0); | |
688 | fOutputparticlePID->Add(d0KaonPIDzRec); | |
689 | ||
690 | named0kaonPIDrphiSkip = "d0kaonPIDrphiSkip_"; | |
691 | named0kaonPIDrphiSkip += i; | |
692 | named0kaonPIDzSkip = "d0kaonPIDzSkip_"; | |
693 | named0kaonPIDzSkip += i; | |
694 | d0KaonPIDrphiSkip = new TH1F(named0kaonPIDrphiSkip.Data(), d0rphiParticlPID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
695 | d0KaonPIDrphiSkip->Sumw2(); | |
696 | d0KaonPIDrphiSkip->SetMinimum(0); | |
697 | fOutputparticlePID->Add(d0KaonPIDrphiSkip); | |
698 | d0KaonPIDzSkip = new TH1F(named0kaonPIDzSkip.Data(), d0zPrtilePID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
699 | d0KaonPIDzSkip->Sumw2(); | |
700 | d0KaonPIDzSkip->SetMinimum(0); | |
701 | fOutputparticlePID->Add(d0KaonPIDzSkip); | |
702 | ||
703 | named0protonPIDrphiRec = "d0protonPIDrphiRec_"; | |
704 | named0protonPIDrphiRec += i; | |
705 | named0protonPIDzRec = "d0protonPIDzRec_"; | |
706 | named0protonPIDzRec += i; | |
707 | d0ProtonPIDrphiRec = new TH1F(named0protonPIDrphiRec.Data(), d0rphiParticlPID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
708 | d0ProtonPIDrphiRec->Sumw2(); | |
709 | d0ProtonPIDrphiRec->SetMinimum(0); | |
710 | fOutputparticlePID->Add(d0ProtonPIDrphiRec); | |
711 | d0ProtonPIDzRec = new TH1F(named0protonPIDzRec.Data(), d0zPrtilePID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
712 | d0ProtonPIDzRec->Sumw2(); | |
713 | d0ProtonPIDzRec->SetMinimum(0); | |
714 | fOutputparticlePID->Add(d0ProtonPIDzRec); | |
715 | ||
716 | named0protonPIDrphiSkip = "d0protonPIDrphiSkip_"; | |
717 | named0protonPIDrphiSkip += i; | |
718 | named0protonPIDzSkip = "d0protonPIDzSkip_"; | |
719 | named0protonPIDzSkip += i; | |
720 | d0ProtonPIDrphiSkip = new TH1F(named0protonPIDrphiSkip.Data(), d0rphiParticlPID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
721 | d0ProtonPIDrphiSkip->Sumw2(); | |
722 | d0ProtonPIDrphiSkip->SetMinimum(0); | |
723 | fOutputparticlePID->Add(d0ProtonPIDrphiSkip); | |
724 | d0ProtonPIDzSkip = new TH1F(named0protonPIDzSkip.Data(), d0zPrtilePID.Data(), 400, -Getd0HistRange(i), Getd0HistRange(i)); | |
725 | d0ProtonPIDzSkip->Sumw2(); | |
726 | d0ProtonPIDzSkip->SetMinimum(0); | |
727 | fOutputparticlePID->Add(d0ProtonPIDzSkip); | |
728 | ||
77e570bf | 729 | named0pt = "d0pt_"; |
b2d79ac3 | 730 | named0pt += i; |
77e570bf | 731 | d0Pt = new TH1F(named0pt.Data(), d0ptTitle.Data(), 100, 0, 35.); |
732 | d0Pt->Sumw2(); | |
733 | d0Pt->SetMinimum(0); | |
734 | fOutputPt->Add(d0Pt); | |
77e570bf | 735 | } |
736 | ||
319532c0 | 737 | |
5a4911b5 | 738 | if (!fOutputSinThetaRec){ |
739 | fOutputSinThetaRec = new TList(); | |
740 | fOutputSinThetaRec->SetOwner(); | |
741 | fOutputSinThetaRec->SetName("thetaRec"); | |
742 | } | |
743 | ||
744 | if (!fOutputSinThetaSkip){ | |
745 | fOutputSinThetaSkip = new TList(); | |
746 | fOutputSinThetaSkip->SetOwner(); | |
747 | fOutputSinThetaSkip->SetName("thetaSkip"); | |
748 | } | |
749 | ||
750 | if (!fOutputphiAllpointSkip) { | |
751 | fOutputphiAllpointSkip = new TList(); | |
752 | fOutputphiAllpointSkip->SetOwner(); | |
753 | fOutputphiAllpointSkip->SetName("phiallpointSkip"); | |
754 | } | |
755 | ||
756 | if (!fOutputphiPostvtracSkip) { | |
757 | fOutputphiPostvtracSkip = new TList(); | |
758 | fOutputphiPostvtracSkip->SetOwner(); | |
759 | fOutputphiPostvtracSkip->SetName("postvtracSkip"); | |
760 | } | |
761 | ||
762 | if (!fOutputphiNegtvtracSkip) { | |
763 | fOutputphiNegtvtracSkip = new TList(); | |
764 | fOutputphiNegtvtracSkip->SetOwner(); | |
765 | fOutputphiNegtvtracSkip->SetName("negtvtracSkip"); | |
766 | } | |
767 | ||
768 | ||
769 | const TString d0sinThetarphiTitle ="d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
770 | const TString d0sinThetazTitle ="d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
771 | const TString d0phiAllpointrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
772 | const TString d0phiAllpointzTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
773 | const TString d0phiPostvtracrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
774 | const TString d0phiPostvtraczTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
775 | const TString d0phiNegtvtracrphiTitle = "d_{0} Distribution_rphi; d_{0} [#mum]; Entries"; | |
776 | const TString d0phiNegtvtraczTitle = "d_{0} Distribution_z; d_{0} [#mum]; Entries"; | |
319532c0 | 777 | TString named0sinThetaonerphiRec,named0sinThetaonezRec,named0sinThetatworphiRec,named0sinThetatwozRec,named0sinThetathreerphiRec,named0sinThetathreezRec,named0sinThetafourrphiRec,named0sinThetafourzRec,named0thetaForwardrphiRec,named0thetaForwardzRec,named0thetaBackwardrphiRec,named0thetaBackwardzRec; |
5a4911b5 | 778 | |
319532c0 | 779 | TH1F *d0SinThetaonerphiRec,*d0SinThetaonezRec,*d0SinThetatworphiRec,*d0SinThetatwozRec,*d0SinThetathreerphiRec,*d0SinThetathreezRec,*d0SinThetafourrphiRec,*d0SinThetafourzRec,*d0ThetaforwardrphiRec,*d0ThetaforwardzRec,*d0ThetabackwardrphiRec,*d0ThetabackwardzRec; |
5a4911b5 | 780 | |
319532c0 | 781 | TString named0sinThetaonerphiSkip,named0sinThetaonezSkip,named0sinThetatworphiSkip,named0sinThetatwozSkip,named0sinThetathreerphiSkip,named0sinThetathreezSkip,named0sinThetafourrphiSkip,named0sinThetafourzSkip,named0phiAllpointrphiSkip, named0phiAllpointzSkip,named0phiPostvtracrphiSkip, named0phiPostvtraczSkip,named0phiNegtvtracrphiSkip,named0phiNegtvtraczSkip,named0thetaForwardrphiSkip,named0thetaForwardzSkip,named0thetaBackwardrphiSkip,named0thetaBackwardzSkip; |
5a4911b5 | 782 | |
319532c0 | 783 | TH1F*d0SinThetaonerphiSkip,*d0SinThetaonezSkip,*d0SinThetatworphiSkip,*d0SinThetatwozSkip,*d0SinThetathreerphiSkip,*d0SinThetathreezSkip,*d0SinThetafourrphiSkip,*d0SinThetafourzSkip, *d0PhiAllpointrphiSkip,*d0PhiAllpointzSkip,*d0PhiPostvtracrphiSkip,*d0PhiPostvtraczSkip,*d0PhiNegtvtracrphiSkip,*d0PhiNegtvtraczSkip,*d0ThetaforwardrphiSkip,*d0ThetaforwardzSkip,*d0ThetabackwardrphiSkip,*d0ThetabackwardzSkip; |
5a4911b5 | 784 | |
b2d79ac3 | 785 | const Int_t nhistm=10; |
cbddc2a0 | 786 | for(Int_t i=0; i<=nhistm; i++) { |
b2d79ac3 | 787 | named0sinThetaonerphiRec = "d0sinthetaonerphiRec_"; |
788 | named0sinThetaonerphiRec += i; | |
789 | named0sinThetaonezRec ="d0sinthetaonezRec_"; | |
790 | named0sinThetaonezRec += i; | |
791 | d0SinThetaonerphiRec = new TH1F(named0sinThetaonerphiRec.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
792 | d0SinThetaonerphiRec->Sumw2(); | |
793 | d0SinThetaonerphiRec->SetMinimum(0); | |
794 | fOutputSinThetaRec->Add(d0SinThetaonerphiRec); | |
795 | d0SinThetaonezRec = new TH1F(named0sinThetaonezRec.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
796 | d0SinThetaonezRec->Sumw2(); | |
797 | d0SinThetaonezRec->SetMinimum(0); | |
798 | fOutputSinThetaRec->Add(d0SinThetaonezRec); | |
799 | ||
800 | named0sinThetatworphiRec = "d0sinthetatworphiRec_"; | |
801 | named0sinThetatworphiRec += i; | |
802 | named0sinThetatwozRec ="d0sinthetatwozRec_"; | |
803 | named0sinThetatwozRec += i; | |
804 | d0SinThetatworphiRec = new TH1F(named0sinThetatworphiRec.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
805 | d0SinThetatworphiRec->Sumw2(); | |
806 | d0SinThetatworphiRec->SetMinimum(0); | |
807 | fOutputSinThetaRec->Add(d0SinThetatworphiRec); | |
808 | d0SinThetatwozRec = new TH1F(named0sinThetatwozRec.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
809 | d0SinThetatwozRec->Sumw2(); | |
810 | d0SinThetatwozRec->SetMinimum(0); | |
811 | fOutputSinThetaRec->Add(d0SinThetatwozRec); | |
812 | ||
813 | named0sinThetathreerphiRec = "d0sinthetathreerphiRec_"; | |
814 | named0sinThetathreerphiRec += i; | |
815 | named0sinThetathreezRec ="d0sinthetathreezRec_"; | |
816 | named0sinThetathreezRec += i; | |
817 | ||
818 | d0SinThetathreerphiRec = new TH1F(named0sinThetathreerphiRec.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
819 | d0SinThetathreerphiRec->Sumw2(); | |
820 | d0SinThetathreerphiRec->SetMinimum(0); | |
821 | fOutputSinThetaRec->Add(d0SinThetathreerphiRec); | |
822 | d0SinThetathreezRec = new TH1F(named0sinThetathreezRec.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
823 | d0SinThetathreezRec->Sumw2(); | |
824 | d0SinThetathreezRec->SetMinimum(0); | |
825 | fOutputSinThetaRec->Add(d0SinThetathreezRec); | |
826 | ||
827 | named0sinThetafourrphiRec = "d0sinthetafourrphiRec_"; | |
828 | named0sinThetafourrphiRec += i; | |
829 | named0sinThetafourzRec ="d0sinthetafourzRec_"; | |
830 | named0sinThetafourzRec += i; | |
831 | d0SinThetafourrphiRec = new TH1F(named0sinThetafourrphiRec.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
832 | d0SinThetafourrphiRec->Sumw2(); | |
833 | d0SinThetafourrphiRec->SetMinimum(0); | |
834 | fOutputSinThetaRec->Add(d0SinThetafourrphiRec); | |
835 | d0SinThetafourzRec = new TH1F(named0sinThetafourzRec.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
836 | d0SinThetafourzRec->Sumw2(); | |
837 | d0SinThetafourzRec->SetMinimum(0); | |
838 | fOutputSinThetaRec->Add(d0SinThetafourzRec); | |
319532c0 | 839 | |
840 | named0thetaForwardrphiRec = "d0thetaforwardrphiRec_"; | |
841 | named0thetaForwardrphiRec += i; | |
842 | named0thetaForwardzRec ="d0thetaforwardzRec_"; | |
843 | named0thetaForwardzRec += i; | |
844 | d0ThetaforwardrphiRec = new TH1F(named0thetaForwardrphiRec.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
845 | d0ThetaforwardrphiRec->Sumw2(); | |
846 | d0ThetaforwardrphiRec->SetMinimum(0); | |
847 | fOutputSinThetaRec->Add(d0ThetaforwardrphiRec); | |
848 | d0ThetaforwardzRec = new TH1F(named0thetaForwardzRec.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
849 | d0ThetaforwardzRec->Sumw2(); | |
850 | d0ThetaforwardzRec->SetMinimum(0); | |
851 | fOutputSinThetaRec->Add(d0ThetaforwardzRec); | |
852 | ||
853 | named0thetaBackwardrphiRec = "d0thetabackwardrphiRec_"; | |
854 | named0thetaBackwardrphiRec += i; | |
855 | named0thetaBackwardzRec ="d0thetabackwardzRec_"; | |
856 | named0thetaBackwardzRec += i; | |
857 | d0ThetabackwardrphiRec = new TH1F(named0thetaBackwardrphiRec.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
858 | d0ThetabackwardrphiRec->Sumw2(); | |
859 | d0ThetabackwardrphiRec->SetMinimum(0); | |
860 | fOutputSinThetaRec->Add(d0ThetabackwardrphiRec); | |
861 | d0ThetabackwardzRec = new TH1F(named0thetaBackwardzRec.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
862 | d0ThetabackwardzRec->Sumw2(); | |
863 | d0ThetabackwardzRec->SetMinimum(0); | |
864 | fOutputSinThetaRec->Add(d0ThetabackwardzRec); | |
b2d79ac3 | 865 | |
866 | named0sinThetaonerphiSkip = "d0sinthetaonerphiSkip_"; | |
867 | named0sinThetaonerphiSkip += i; | |
868 | named0sinThetaonezSkip ="d0sinthetaonezSkip_"; | |
869 | named0sinThetaonezSkip += i; | |
870 | d0SinThetaonerphiSkip = new TH1F(named0sinThetaonerphiSkip.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
871 | d0SinThetaonerphiSkip->Sumw2(); | |
872 | d0SinThetaonerphiSkip->SetMinimum(0); | |
873 | fOutputSinThetaSkip->Add(d0SinThetaonerphiSkip); | |
874 | d0SinThetaonezSkip = new TH1F(named0sinThetaonezSkip.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
875 | d0SinThetaonezSkip->Sumw2(); | |
876 | d0SinThetaonezSkip->SetMinimum(0); | |
877 | fOutputSinThetaSkip->Add(d0SinThetaonezSkip); | |
878 | ||
879 | named0sinThetatworphiSkip = "d0sinthetatworphiSkip_"; | |
880 | named0sinThetatworphiSkip += i; | |
881 | named0sinThetatwozSkip ="d0sinthetatwozSkip_"; | |
882 | named0sinThetatwozSkip += i; | |
883 | d0SinThetatworphiSkip = new TH1F(named0sinThetatworphiSkip.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
884 | d0SinThetatworphiSkip->Sumw2(); | |
885 | d0SinThetatworphiSkip->SetMinimum(0); | |
886 | fOutputSinThetaSkip->Add(d0SinThetatworphiSkip); | |
887 | d0SinThetatwozSkip = new TH1F(named0sinThetatwozSkip.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
888 | d0SinThetatwozSkip->Sumw2(); | |
889 | d0SinThetatwozSkip->SetMinimum(0); | |
890 | fOutputSinThetaSkip->Add(d0SinThetatwozSkip); | |
891 | ||
892 | named0sinThetathreerphiSkip = "d0sinthetathreerphiSkip_"; | |
893 | named0sinThetathreerphiSkip += i; | |
894 | named0sinThetathreezSkip ="d0sinthetathreezSkip_"; | |
895 | named0sinThetathreezSkip += i; | |
896 | ||
897 | d0SinThetathreerphiSkip = new TH1F(named0sinThetathreerphiSkip.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
898 | d0SinThetathreerphiSkip->Sumw2(); | |
899 | d0SinThetathreerphiSkip->SetMinimum(0); | |
900 | fOutputSinThetaSkip->Add(d0SinThetathreerphiSkip); | |
901 | d0SinThetathreezSkip = new TH1F(named0sinThetathreezSkip.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
902 | d0SinThetathreezSkip->Sumw2(); | |
903 | d0SinThetathreezSkip->SetMinimum(0); | |
904 | fOutputSinThetaSkip->Add(d0SinThetathreezSkip); | |
905 | ||
906 | named0sinThetafourrphiSkip = "d0sinthetafourrphiSkip_"; | |
907 | named0sinThetafourrphiSkip += i; | |
908 | named0sinThetafourzSkip ="d0sinthetafourzSkip_"; | |
909 | named0sinThetafourzSkip += i; | |
910 | d0SinThetafourrphiSkip = new TH1F(named0sinThetafourrphiSkip.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
911 | d0SinThetafourrphiSkip->Sumw2(); | |
912 | d0SinThetafourrphiSkip->SetMinimum(0); | |
913 | fOutputSinThetaSkip->Add(d0SinThetafourrphiSkip); | |
914 | d0SinThetafourzSkip = new TH1F(named0sinThetafourzSkip.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
915 | d0SinThetafourzSkip->Sumw2(); | |
916 | d0SinThetafourzSkip->SetMinimum(0); | |
917 | fOutputSinThetaSkip->Add(d0SinThetafourzSkip); | |
319532c0 | 918 | |
919 | named0thetaForwardrphiSkip = "d0thetaforwardrphiSkip_"; | |
920 | named0thetaForwardrphiSkip += i; | |
921 | named0thetaForwardzSkip ="d0thetaforwardzSkip_"; | |
922 | named0thetaForwardzSkip += i; | |
923 | d0ThetaforwardrphiSkip = new TH1F(named0thetaForwardrphiSkip.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
924 | d0ThetaforwardrphiSkip->Sumw2(); | |
925 | d0ThetaforwardrphiSkip->SetMinimum(0); | |
926 | fOutputSinThetaSkip->Add(d0ThetaforwardrphiSkip); | |
927 | d0ThetaforwardzSkip = new TH1F(named0thetaForwardzSkip.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
928 | d0ThetaforwardzSkip->Sumw2(); | |
929 | d0ThetaforwardzSkip->SetMinimum(0); | |
930 | fOutputSinThetaSkip->Add(d0ThetaforwardzSkip); | |
931 | ||
932 | named0thetaBackwardrphiSkip = "d0thetabackwardrphiSkip_"; | |
933 | named0thetaBackwardrphiSkip += i; | |
934 | named0thetaBackwardzSkip ="d0thetabackwardzSkip_"; | |
935 | named0thetaBackwardzSkip += i; | |
936 | d0ThetabackwardrphiSkip = new TH1F(named0thetaBackwardrphiSkip.Data(),d0sinThetarphiTitle.Data(),400,-2000,2000); | |
937 | d0ThetabackwardrphiSkip->Sumw2(); | |
938 | d0ThetabackwardrphiSkip->SetMinimum(0); | |
939 | fOutputSinThetaSkip->Add(d0ThetabackwardrphiSkip); | |
940 | d0ThetabackwardzSkip = new TH1F(named0thetaBackwardzSkip.Data(),d0sinThetazTitle.Data(),400,-2000,2000); | |
941 | d0ThetabackwardzSkip->Sumw2(); | |
942 | d0ThetabackwardzSkip->SetMinimum(0); | |
943 | fOutputSinThetaSkip->Add(d0ThetabackwardzSkip); | |
944 | ||
5a4911b5 | 945 | } |
946 | ||
947 | const Int_t nhistphi=20; | |
948 | for(Int_t i=0; i<=nhistphi; i++) { | |
cbddc2a0 | 949 | |
950 | named0phiAllpointrphiSkip = "d0phiallpointrphiSkip_"; | |
951 | named0phiAllpointrphiSkip += i; | |
952 | named0phiAllpointzSkip ="d0phiallpointzSkip_"; | |
953 | named0phiAllpointzSkip += i; | |
954 | d0PhiAllpointrphiSkip = new TH1F(named0phiAllpointrphiSkip.Data(),d0phiAllpointrphiTitle.Data(),400,-2000,2000); | |
955 | d0PhiAllpointrphiSkip->Sumw2(); | |
956 | d0PhiAllpointrphiSkip->SetMinimum(0); | |
957 | fOutputphiAllpointSkip->Add(d0PhiAllpointrphiSkip); | |
958 | d0PhiAllpointzSkip = new TH1F(named0phiAllpointzSkip.Data(),d0phiAllpointzTitle.Data(),400,-2000,2000); | |
959 | d0PhiAllpointzSkip->Sumw2(); | |
960 | d0PhiAllpointzSkip->SetMinimum(0); | |
961 | fOutputphiAllpointSkip->Add(d0PhiAllpointzSkip); | |
962 | ||
963 | ||
964 | named0phiPostvtracrphiSkip = "d0phipostvtracrphiSkip_"; | |
965 | named0phiPostvtracrphiSkip += i; | |
966 | named0phiPostvtraczSkip ="d0phipostvtraczSkip_"; | |
967 | named0phiPostvtraczSkip += i; | |
968 | d0PhiPostvtracrphiSkip = new TH1F(named0phiPostvtracrphiSkip.Data(),d0phiPostvtracrphiTitle.Data(),400,-2000,2000); | |
969 | d0PhiPostvtracrphiSkip->Sumw2(); | |
970 | d0PhiPostvtracrphiSkip->SetMinimum(0); | |
971 | fOutputphiPostvtracSkip->Add(d0PhiPostvtracrphiSkip); | |
972 | d0PhiPostvtraczSkip = new TH1F(named0phiPostvtraczSkip.Data(),d0phiPostvtraczTitle.Data(),400,-2000,2000); | |
973 | d0PhiPostvtraczSkip->Sumw2(); | |
974 | d0PhiPostvtraczSkip->SetMinimum(0); | |
975 | fOutputphiPostvtracSkip->Add(d0PhiPostvtraczSkip); | |
976 | ||
977 | ||
978 | named0phiNegtvtracrphiSkip = "d0phinegtvtracrphiSkip_"; | |
979 | named0phiNegtvtracrphiSkip += i; | |
980 | named0phiNegtvtraczSkip ="d0phinegtvtraczSkip_"; | |
981 | named0phiNegtvtraczSkip += i; | |
982 | d0PhiNegtvtracrphiSkip = new TH1F(named0phiNegtvtracrphiSkip.Data(),d0phiNegtvtracrphiTitle.Data(),400,-2000,2000); | |
983 | d0PhiNegtvtracrphiSkip->Sumw2(); | |
984 | d0PhiNegtvtracrphiSkip->SetMinimum(0); | |
985 | fOutputphiNegtvtracSkip->Add(d0PhiNegtvtracrphiSkip); | |
986 | d0PhiNegtvtraczSkip = new TH1F(named0phiNegtvtraczSkip.Data(),d0phiNegtvtraczTitle.Data(),400,-2000,2000); | |
987 | d0PhiNegtvtraczSkip->Sumw2(); | |
988 | d0PhiNegtvtraczSkip->SetMinimum(0); | |
989 | fOutputphiNegtvtracSkip->Add(d0PhiNegtvtraczSkip); | |
b2d79ac3 | 990 | } |
991 | ||
77e570bf | 992 | if(!fNentries) fNentries = new TH1F("hNentries", "number of entries", 26, 0., 40.); |
319532c0 | 993 | if(!fEstimVtx) fEstimVtx = new TH1F("vtxRes","Resolution of vertex",1000,-5000.,5000); |
4f7217d1 | 994 | PostData(1, fOutputitspureSARec); |
995 | PostData(2, fOutputitspureSASkip); | |
996 | PostData(3, fOutputallPointRec); | |
997 | PostData(4, fOutputallPointSkip); | |
998 | PostData(5, fOutputpartPointRec); | |
999 | PostData(6, fOutputpartPointSkip); | |
1000 | PostData(7, fOutputonepointSPDRec); | |
1001 | PostData(8, fOutputonepointSPDSkip); | |
1002 | PostData(9, fOutputpostvTracRec); | |
1003 | PostData(10, fOutputpostvTracSkip); | |
1004 | PostData(11, fOutputnegtvTracRec); | |
1005 | PostData(12, fOutputnegtvTracSkip); | |
1006 | PostData(13, fOutputpullAllpointRec); | |
1007 | PostData(14, fOutputpullAllpointSkip); | |
1008 | PostData(15, fOutputOnlyRefitRec); | |
1009 | PostData(16, fOutputOnlyRefitSkip); | |
1010 | PostData(17, fOutputSinThetaRec); | |
1011 | PostData(18, fOutputSinThetaSkip); | |
1012 | PostData(19, fOutputallPointTrue); | |
1013 | PostData(20, fOutputpostvTracTrue); | |
1014 | PostData(21, fOutputnegtvTracTrue); | |
1015 | PostData(22, fOutputpullAllpointTrue); | |
1016 | PostData(23, fOutputphiAllpointSkip); | |
1017 | PostData(24, fOutputphiPostvtracSkip); | |
1018 | PostData(25, fOutputphiNegtvtracSkip); | |
31a96e36 | 1019 | PostData(26, fOutputparticlePID); |
1020 | PostData(27, fOutputPt); | |
1021 | PostData(28, fNentries); | |
1022 | PostData(29, fEstimVtx); | |
319532c0 | 1023 | |
77e570bf | 1024 | return; |
1025 | } | |
1026 | ||
1027 | //________________________________________________________________________ | |
1028 | void AliAnalysisTaskSEImpParRes::UserExec(Option_t */*option*/) | |
1029 | { | |
1030 | // | |
1031 | // Track selection and filling of d0 histograms | |
1032 | // | |
1033 | AliESDEvent *esd = dynamic_cast<AliESDEvent*>(InputEvent()); | |
1034 | if (!esd) { | |
1035 | AliError("ESD event not found. Nothing done!"); | |
1036 | return; | |
1037 | } | |
1038 | ||
66cefb1c | 1039 | // only events in the requested multiplicity range |
1040 | if(!IsSelectedCentrality(esd)) return; | |
1041 | ||
31a96e36 | 1042 | TString firedTriggerClasses=esd->GetFiredTriggerClasses(); |
1043 | if(!firedTriggerClasses.Contains(fTriggerClass.Data())) return; | |
1044 | ||
1045 | ||
1046 | Bool_t sddIsIn=kTRUE; | |
1047 | if(fCheckSDDIsIn) { | |
1048 | ||
1049 | if(!fTrigConfig) { | |
1050 | AliCDBManager* man = AliCDBManager::Instance(); | |
1051 | if(fOCDBPath.Contains("OCDB")) { // when running in the QAtrain this is not called (OCBD is already set) | |
1052 | man->SetDefaultStorage(fOCDBPath.Data()); | |
1053 | man->SetRun(esd->GetRunNumber()); | |
1054 | } | |
1055 | if(!man) { | |
1056 | AliFatal("CDB not set but needed by AliAnalysisTaskITSTrackingCheck"); | |
1057 | return; | |
1058 | } | |
1059 | AliCDBEntry* eT=(AliCDBEntry*)man->Get("GRP/CTP/Config"); | |
1060 | if(eT) { | |
1061 | fTrigConfig=(AliTriggerConfiguration*)eT->GetObject(); | |
1062 | } | |
1063 | if(!eT || !fTrigConfig) { | |
1064 | AliError("Cannot retrieve CDB entry for GRP/CTP/Config"); | |
1065 | return; | |
1066 | } | |
1067 | } | |
1068 | ||
1069 | sddIsIn=esd->IsDetectorInTriggerCluster("ITSSDD",fTrigConfig); | |
1070 | if(fCheckSDDIsIn==1 && !sddIsIn) return; | |
1071 | if(fCheckSDDIsIn==-1 && sddIsIn) return; | |
1072 | } | |
1073 | ||
319532c0 | 1074 | fNentries->Fill(1); |
0faeb7ba | 1075 | |
1076 | ||
1077 | Int_t nTrks = esd->GetNumberOfTracks(); | |
1078 | Bool_t highMult=(nTrks>500 ? kTRUE : kFALSE); | |
1079 | ||
319532c0 | 1080 | |
1081 | // diamond constraint | |
77e570bf | 1082 | Float_t diamondcovxy[3]; |
1083 | esd->GetDiamondCovXY(diamondcovxy); | |
1084 | Double_t pos[3]={esd->GetDiamondX(),esd->GetDiamondY(),0.}; | |
77e570bf | 1085 | Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.}; |
319532c0 | 1086 | AliESDVertex diamond(pos,cov,1.,1); |
1087 | ||
1088 | Double_t vtxTrue[3]; | |
cbddc2a0 | 1089 | AliStack *stack=0; |
1090 | AliESDVertex *vtxESDTrue=0; | |
319532c0 | 1091 | AliESDVertex *vtxESDSkip=0; |
1092 | AliESDVertex *vtxESDRec=0; | |
1093 | ||
1094 | // event primary vertex | |
1095 | AliVertexerTracks vertexer0(esd->GetMagneticField()); | |
1096 | vertexer0.SetITSMode(); | |
4a037efc | 1097 | vertexer0.SetMinClusters(3); |
0faeb7ba | 1098 | if(highMult) vertexer0.SetITSMode(0.1,0.1,0.5,5,1,3.,100.,1000.,3.,30.,1,1); |
319532c0 | 1099 | if(fUseDiamond) vertexer0.SetVtxStart(&diamond); |
1100 | vtxESDRec = (AliESDVertex*)vertexer0.FindPrimaryVertex(esd); | |
1101 | if(vtxESDRec->GetNContributors()<1) { | |
1102 | delete vtxESDRec; vtxESDRec=NULL; | |
1103 | return; | |
1104 | } | |
1105 | ||
1106 | if (fReadMC) { | |
77e570bf | 1107 | AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()); |
1108 | if (!eventHandler) { | |
1109 | Printf("ERROR: Could not retrieve MC event handler"); | |
1110 | return; | |
1111 | } | |
319532c0 | 1112 | |
77e570bf | 1113 | AliMCEvent* mcEvent = eventHandler->MCEvent(); |
1114 | if (!mcEvent) { | |
1115 | Printf("ERROR: Could not retrieve MC event"); | |
1116 | return; | |
1117 | } | |
319532c0 | 1118 | |
77e570bf | 1119 | stack = mcEvent->Stack(); |
1120 | if (!stack) { | |
1121 | AliDebug(AliLog::kError, "Stack not available"); | |
1122 | return; | |
1123 | } | |
77e570bf | 1124 | |
2bfe5463 | 1125 | //load MC header for ESD;//see $ALICE_ROOT/PWGPP/global/AliAnalysisTaskSEVertexESD.cxx |
cbddc2a0 | 1126 | AliHeader *mcHeader = eventHandler->MCEvent()->Header(); |
1127 | if (!mcHeader) { | |
1128 | AliDebug(AliLog::kError, "Header not available"); | |
1129 | return; | |
1130 | } | |
1131 | ||
319532c0 | 1132 | AliGenEventHeader* genHeader = mcHeader->GenEventHeader(); |
cbddc2a0 | 1133 | TArrayF mcVertex(3); |
1134 | mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.; | |
1135 | genHeader->PrimaryVertex(mcVertex); | |
1136 | vtxTrue[0]=mcVertex[0];vtxTrue[1]=mcVertex[1];vtxTrue[2]=mcVertex[2]; | |
1137 | Double_t sigmaTrue[3]={0., 0., 0.,}; | |
1138 | //mcHeader->GetVertex(vtxTrue);//note the vtxTrue is void here,so must need the next line. | |
1139 | //AliESDVertex *vtxESDTrue = new AliESDVertex(vtxTrue,sigmaTrue); | |
1140 | vtxESDTrue = new AliESDVertex(vtxTrue,sigmaTrue); | |
319532c0 | 1141 | } |
1142 | ||
319532c0 | 1143 | Double_t beampiperadius=3.; |
1144 | AliESDtrack *esdtrack = 0; | |
1145 | Int_t pdgCode=0; | |
1146 | Int_t trkLabel; | |
1147 | TParticle *part =0; | |
1148 | Int_t npointsITS=0,npointsSPD=0; | |
1149 | Int_t ilayer; | |
1150 | Int_t skipped[2]; | |
1151 | Double_t dzRec[2], covdzRec[3], dzRecSkip[2], covdzRecSkip[3],dzTrue[2], covdzTrue[3]; | |
1152 | Double_t pt; | |
1153 | Int_t bin; | |
1154 | ||
77e570bf | 1155 | for (Int_t it=0; it<nTrks; it++) { // loop over tracks |
1156 | // read track | |
319532c0 | 1157 | esdtrack = esd->GetTrack(it); |
77e570bf | 1158 | |
1159 | // ask for ITS refit | |
1160 | if (!(esdtrack->GetStatus()&AliESDtrack::kITSrefit)) { | |
1161 | continue; | |
1162 | } | |
1163 | ||
319532c0 | 1164 | pdgCode=0; |
77e570bf | 1165 | if(fReadMC && stack) { |
319532c0 | 1166 | trkLabel = esdtrack->GetLabel(); |
77e570bf | 1167 | if(trkLabel<0) continue; |
319532c0 | 1168 | part = (TParticle*)stack->Particle(trkLabel); |
77e570bf | 1169 | pdgCode = TMath::Abs(part->GetPdgCode()); |
1170 | //printf("pdgCode===%d\n", pdgCode); | |
1171 | if(fSelectedPdg>0 && pdgCode!=fSelectedPdg) continue; | |
1172 | } | |
1173 | ||
319532c0 | 1174 | npointsITS=0; npointsSPD=0; |
1175 | for (ilayer=0; ilayer<6; ilayer++){ | |
1176 | if (ilayer<2 && esdtrack->HasPointOnITSLayer(ilayer)) npointsSPD++; | |
1177 | if (esdtrack->HasPointOnITSLayer(ilayer)) npointsITS++; | |
77e570bf | 1178 | } |
1179 | ||
1180 | //Get specific primary vertex--Reconstructed primary vertex do not include the track considering. | |
319532c0 | 1181 | AliVertexerTracks vertexer(esd->GetMagneticField()); |
1182 | vertexer.SetITSMode(); | |
4a037efc | 1183 | vertexer.SetMinClusters(3); |
319532c0 | 1184 | if(fUseDiamond) vertexer.SetVtxStart(&diamond); |
77e570bf | 1185 | skipped[0] = (Int_t)esdtrack->GetID(); |
319532c0 | 1186 | vertexer.SetSkipTracks(1,skipped); |
1187 | // create vertex with new! | |
47f68c78 | 1188 | if(!highMult && fSkipTrack) { |
0faeb7ba | 1189 | vtxESDSkip = (AliESDVertex*)vertexer.FindPrimaryVertex(esd); |
1190 | if(vtxESDSkip->GetNContributors()<1) { | |
1191 | delete vtxESDSkip; vtxESDSkip=NULL; | |
1192 | continue; | |
1193 | } | |
1194 | } else { | |
1195 | vtxESDSkip = new AliESDVertex(); // dummy | |
319532c0 | 1196 | } |
77e570bf | 1197 | |
319532c0 | 1198 | //pt= esdtrack->P(); |
1199 | pt = esdtrack->Pt(); | |
1200 | bin = PtBin(pt); | |
77e570bf | 1201 | |
1202 | if(bin==-1) { | |
319532c0 | 1203 | delete vtxESDSkip; vtxESDSkip=NULL; |
77e570bf | 1204 | continue; |
1205 | } | |
1206 | ||
319532c0 | 1207 | |
1208 | // Select primary particle if MC event (for ESD event), Rprod < 1 micron | |
1209 | if(fReadMC){ | |
1210 | if((part->Vx()-vtxTrue[0])*(part->Vx()-vtxTrue[0])+ | |
1211 | (part->Vy()-vtxTrue[1])*(part->Vy()-vtxTrue[1]) | |
1212 | > 0.0001*0.0001) { | |
1213 | delete vtxESDSkip; vtxESDSkip=NULL; | |
1214 | continue; | |
1215 | } | |
1216 | } | |
1217 | ||
1218 | // compute impact patameters | |
1219 | // wrt event vertex | |
77e570bf | 1220 | esdtrack->PropagateToDCA(vtxESDRec, esd->GetMagneticField(), beampiperadius, dzRec, covdzRec); |
319532c0 | 1221 | // wrt event vertex without this track |
7b00d86d | 1222 | if(!highMult && fSkipTrack) { |
0faeb7ba | 1223 | esdtrack->PropagateToDCA(vtxESDSkip, esd->GetMagneticField(), beampiperadius, dzRecSkip, covdzRecSkip); |
7b00d86d | 1224 | } else if(!fSkipTrack) { |
1225 | dzRecSkip[0]=dzRec[0]; | |
1226 | dzRecSkip[1]=dzRec[1]; | |
1227 | covdzRecSkip[0]=covdzRec[0]; | |
1228 | covdzRecSkip[1]=covdzRec[1]; | |
1229 | covdzRecSkip[2]=covdzRec[2]; | |
0faeb7ba | 1230 | } else { |
7b00d86d | 1231 | dzRecSkip[0]=0; |
1232 | dzRecSkip[1]=0; | |
1233 | covdzRecSkip[0]=0; | |
1234 | covdzRecSkip[1]=0; | |
1235 | covdzRecSkip[2]=0; | |
0faeb7ba | 1236 | } |
319532c0 | 1237 | delete vtxESDSkip; vtxESDSkip=NULL; // not needed anymore |
1238 | // wrt MC vertex | |
cbddc2a0 | 1239 | if(fReadMC) esdtrack->PropagateToDCA(vtxESDTrue, esd->GetMagneticField(), beampiperadius, dzTrue, covdzTrue); |
319532c0 | 1240 | |
1241 | if(covdzRec[0]<1.e-13 || covdzRec[2]<1.e-13 || covdzRecSkip[0]<1.e-13 || covdzRecSkip[2]<1.e-13) continue; | |
1242 | ||
1243 | if(fReadMC && (covdzTrue[0]<1.e-13 || covdzTrue[2]<1.e-13)) continue; | |
77e570bf | 1244 | |
1245 | //printf("Pt: %f GeV/c; Impact parameter: rphi %f cm z %f cm\n", pt, dzRec[0], dzRec[1]); | |
1246 | ||
1247 | /* | |
1248 | // RUBEN'S METHOD, NOT FULLY IMPLEMENTED YET | |
1249 | Double_t fIPCenIni[3], xyzDCA[3]; | |
1250 | for (int i=3;i--;) fIPCenIni[i] = 0.; | |
1251 | //Int_t nTracks = nTrks - 1; | |
1252 | esdtrack->GetXYZ(xyzDCA); | |
1253 | //double pTrack = esdtrack->GetP(); | |
1254 | double phiTrack = esdtrack->Phi(); | |
1255 | double cs = TMath::Cos(phiTrack); | |
1256 | double sn = TMath::Sin(phiTrack); | |
1257 | double trDCA = (xyzDCA[0]-fIPCenIni[0]) *sn - (xyzDCA[1]-fIPCenIni[1]) *cs; // track signed DCA to origin | |
1258 | double vtDCA = (vtxESDSkip->GetXv()-fIPCenIni[0])*sn - (vtxESDSkip->GetYv()-fIPCenIni[1])*cs; // vertex signed DCA to origin | |
1259 | ||
1260 | // update the estimator values | |
1261 | //double estIP = rvD*rtD; | |
1262 | double estVtx = vtDCA*( vtDCA- trDCA); | |
1263 | //double estTrc = rtD*(rtD - rvD); | |
1264 | // | |
1265 | //if (nTracks >= fMinTracksForIP) fEstimIP->Fill(phiTrack, estIP); | |
1266 | fEstimVtx->Fill(10000*estVtx); | |
1267 | //if (pTrack<1e-6) pTrack = GetTrackMinP()+1e6; | |
1268 | //fEstimTrc->Fill(1./pTrack,estTrc); | |
1269 | */ | |
1270 | ||
1271 | ||
1272 | //fill the histgram with all particle | |
1273 | //-------------------------------------------1---------------------------------------------- | |
1274 | ||
1275 | /* | |
1276 | TString named0AllrphiRec=" ",named0AllzRec =" ";//named0AllrphiTrue=" ",named0AllzTrue =" "; | |
1277 | //named0AllrphiSkip=" ",named0AllzSkip =" "; | |
1278 | ||
1279 | named0AllrphiRec ="d0allrphiRec_"; | |
1280 | named0AllrphiRec += bin; | |
1281 | named0AllzRec = "d0allzRec_"; | |
1282 | named0AllzRec += bin; | |
1283 | ((TH1F*)(fOutputallRec->FindObject(named0AllrphiRec)))->Fill(10000*dzRec[0]); | |
1284 | ((TH1F*)(fOutputallRec->FindObject(named0AllzRec)))->Fill(10000*dzRec[1]); | |
1285 | */ | |
1286 | ||
1287 | //-------------------------------------------2---------------------------------------------- | |
1288 | //TSting named0AllrphiRec = "d0allrphiRec_" + bin; | |
1289 | //TSting named0AllzRec = "d0allzRec_" + bin; | |
1290 | //((TH1F*)(fOutputallRec->FindObject(named0AllrphiRec.Data())))->Fill(10000.*dzRec[0]); | |
1291 | //((TH1F*)(fOutputallRec->FindObject(named0AllzRec.Data())))->Fill(10000.*dzRec[1]); | |
1292 | ||
1293 | //-------------------------------------------3------------------------------------------------ | |
1294 | ||
1295 | ||
1296 | // ITS standalone | |
ebcbf764 | 1297 | if (esdtrack->GetNcls(1)==0 && |
1298 | (esdtrack->GetStatus()&AliESDtrack::kITSrefit) | |
77e570bf | 1299 | && npointsSPD>0 && npointsITS>=4) { |
1300 | char *named0ITSpureSArphiRec = Form("d0itspureSArphiRec_%d", bin); | |
1301 | char *named0ITSpureSArphiSkip = Form("d0itspureSArphiSkip_%d", bin); | |
1302 | char *named0ITSpureSAzRec = Form("d0itspureSAzRec_%d", bin); | |
1303 | char *named0ITSpureSAzSkip = Form("d0itspureSAzSkip_%d", bin); | |
1304 | ((TH1F*)(fOutputitspureSARec->FindObject(named0ITSpureSArphiRec)))->Fill(10000.*dzRec[0]); | |
1305 | ((TH1F*)(fOutputitspureSARec->FindObject(named0ITSpureSAzRec)))->Fill(10000.*dzRec[1]); | |
1306 | ((TH1F*)(fOutputitspureSASkip->FindObject(named0ITSpureSArphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1307 | ((TH1F*)(fOutputitspureSASkip->FindObject(named0ITSpureSAzSkip)))->Fill(10000.*dzRecSkip[1]); | |
1308 | } | |
1309 | ||
1310 | ||
1311 | // ask for TPC refit | |
319532c0 | 1312 | if (!(esdtrack->GetStatus()&AliESDtrack::kTPCrefit) || |
1313 | esdtrack->GetNcls(1)<70) continue; | |
77e570bf | 1314 | |
1315 | // only ITS and TPC refit | |
1316 | char *named0OnlyrefitrphiRec = Form("d0onlyrefitrphiRec_%d", bin); | |
1317 | char *named0OnlyrefitrphiSkip = Form("d0onlyrefitrphiSkip_%d", bin); | |
1318 | char *named0OnlyrefitzRec = Form("d0onlyrefitzRec_%d", bin); | |
1319 | char *named0OnlyrefitzSkip = Form("d0onlyrefitzSkip_%d", bin); | |
1320 | ((TH1F*)(fOutputOnlyRefitRec->FindObject(named0OnlyrefitrphiRec)))->Fill(10000.*dzRec[0]); | |
1321 | ((TH1F*)(fOutputOnlyRefitRec->FindObject(named0OnlyrefitzRec)))->Fill(10000.*dzRec[1]); | |
1322 | ((TH1F*)(fOutputOnlyRefitSkip->FindObject(named0OnlyrefitrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1323 | ((TH1F*)(fOutputOnlyRefitSkip->FindObject(named0OnlyrefitzSkip)))->Fill(10000.*dzRecSkip[1]); | |
77e570bf | 1324 | |
cbddc2a0 | 1325 | |
77e570bf | 1326 | if(npointsITS>=4 && npointsSPD>0) { |
1327 | char *named0PartpointrphiRec = Form("d0partpointrphiRec_%d", bin); | |
1328 | char *named0PartpointrphiSkip = Form("d0partpointrphiSkip_%d", bin); | |
1329 | char *named0PartpointzRec = Form("d0partpointzRec_%d", bin); | |
1330 | char *named0PartpointzSkip = Form("d0partpointzSkip_%d", bin); | |
1331 | ((TH1F*)(fOutputpartPointRec->FindObject(named0PartpointrphiRec)))->Fill(10000.*dzRec[0]); | |
1332 | ((TH1F*)(fOutputpartPointRec->FindObject(named0PartpointzRec)))->Fill(10000.*dzRec[1]); | |
1333 | ((TH1F*)(fOutputpartPointSkip->FindObject(named0PartpointrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1334 | ((TH1F*)(fOutputpartPointSkip->FindObject(named0PartpointzSkip)))->Fill(10000.*dzRecSkip[1]); | |
1335 | } | |
1336 | ||
1337 | if(npointsSPD>0) { | |
1338 | char *named0OnepointSPDrphiRec = Form("d0onepointSPDrphiRec_%d", bin); | |
1339 | char *named0OnepointSPDrphiSkip = Form("d0onepointSPDrphiSkip_%d", bin); | |
1340 | char *named0OnepointSPDzRec = Form("d0onepointSPDzRec_%d", bin); | |
1341 | char *named0OnepointSPDzSkip = Form("d0onepointSPDzSkip_%d", bin); | |
1342 | ((TH1F*)(fOutputonepointSPDRec->FindObject(named0OnepointSPDrphiRec)))->Fill(10000.*dzRec[0]); | |
1343 | ((TH1F*)(fOutputonepointSPDRec->FindObject(named0OnepointSPDzRec)))->Fill(10000.*dzRec[1]); | |
1344 | ((TH1F*)(fOutputonepointSPDSkip->FindObject(named0OnepointSPDrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1345 | ((TH1F*)(fOutputonepointSPDSkip->FindObject(named0OnepointSPDzSkip)))->Fill(10000.*dzRecSkip[1]); | |
1346 | } | |
1347 | ||
cbddc2a0 | 1348 | // with 6 ITS points (including different selection) |
31a96e36 | 1349 | if(npointsITS==6 || (npointsITS==4 && !sddIsIn)) { |
319532c0 | 1350 | //pt |
cbddc2a0 | 1351 | char *named0Pt = Form("d0pt_%d",bin); |
1352 | ((TH1F*)(fOutputPt->FindObject(named0Pt)))->Fill(pt); | |
319532c0 | 1353 | |
cbddc2a0 | 1354 | // allpoint |
1355 | char *named0AllpointrphiRec = Form("d0allpointrphiRec_%d", bin); | |
1356 | char *named0AllpointrphiSkip = Form("d0allpointrphiSkip_%d", bin); | |
1357 | char *named0AllpointrphiTrue = Form("d0allpointrphiTrue_%d", bin); | |
1358 | char *named0AllpointzRec = Form("d0allpointzRec_%d", bin); | |
1359 | char *named0AllpointzSkip = Form("d0allpointzSkip_%d", bin); | |
1360 | char *named0AllpointzTrue = Form("d0allpointzTrue_%d", bin); | |
1361 | ((TH1F*)(fOutputallPointRec->FindObject(named0AllpointrphiRec)))->Fill(10000.*dzRec[0]); | |
1362 | ((TH1F*)(fOutputallPointRec->FindObject(named0AllpointzRec)))->Fill(10000.*dzRec[1]); | |
1363 | ((TH1F*)(fOutputallPointSkip->FindObject(named0AllpointrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1364 | ((TH1F*)(fOutputallPointSkip->FindObject(named0AllpointzSkip)))->Fill(10000.*dzRecSkip[1]); | |
cde71236 | 1365 | if(fReadMC) { |
1366 | ((TH1F*)(fOutputallPointTrue->FindObject(named0AllpointrphiTrue)))->Fill(10000.*dzTrue[0]); | |
1367 | ((TH1F*)(fOutputallPointTrue->FindObject(named0AllpointzTrue)))->Fill(10000.*dzTrue[1]); | |
1368 | } | |
319532c0 | 1369 | |
cbddc2a0 | 1370 | // pulls |
1371 | char *named0PullAllpointrphiRec = Form("d0pullAllpointrphiRec_%d", bin); | |
1372 | char *named0PullAllpointrphiSkip = Form("d0pullAllpointrphiSkip_%d", bin); | |
1373 | char *named0PullAllpointrphiTrue = Form("d0pullAllpointrphiTrue_%d", bin); | |
1374 | char *named0PullAllpointzRec = Form("d0pullAllpointzRec_%d", bin); | |
1375 | char *named0PullAllpointzSkip = Form("d0pullAllpointzSkip_%d", bin); | |
1376 | char *named0PullAllpointzTrue = Form("d0pullAllpointzTrue_%d", bin); | |
1377 | ((TH1F*)(fOutputpullAllpointRec->FindObject(named0PullAllpointrphiRec)))->Fill(dzRec[0]/TMath::Sqrt(covdzRec[0])); | |
1378 | ((TH1F*)(fOutputpullAllpointRec->FindObject(named0PullAllpointzRec)))->Fill(dzRec[1]/TMath::Sqrt(covdzRec[2])); | |
1379 | ((TH1F*)(fOutputpullAllpointSkip->FindObject(named0PullAllpointrphiSkip)))->Fill(dzRecSkip[0]/TMath::Sqrt(covdzRecSkip[0])); | |
1380 | ((TH1F*)(fOutputpullAllpointSkip->FindObject(named0PullAllpointzSkip)))->Fill(dzRecSkip[1]/TMath::Sqrt(covdzRecSkip[2])); | |
cde71236 | 1381 | if(fReadMC) { |
1382 | ((TH1F*)(fOutputpullAllpointTrue->FindObject(named0PullAllpointrphiTrue)))->Fill(dzTrue[0]/TMath::Sqrt(covdzTrue[0])); | |
1383 | ((TH1F*)(fOutputpullAllpointTrue->FindObject(named0PullAllpointzTrue)))->Fill(dzTrue[1]/TMath::Sqrt(covdzTrue[2])); | |
1384 | } | |
cbddc2a0 | 1385 | //postive and negative track |
319532c0 | 1386 | Int_t charge=esdtrack->Charge(); |
f06878d2 | 1387 | if(charge==1) { |
cbddc2a0 | 1388 | char *named0PostvtracrphiRec = Form("d0postvtracrphiRec_%d", bin); |
1389 | char *named0PostvtracrphiSkip = Form("d0postvtracrphiSkip_%d", bin); | |
1390 | char *named0PostvtracrphiTrue = Form("d0postvtracrphiTrue_%d", bin); | |
1391 | char *named0PostvtraczRec = Form("d0postvtraczRec_%d", bin); | |
1392 | char *named0PostvtraczSkip = Form("d0postvtraczSkip_%d", bin); | |
1393 | char *named0PostvtraczTrue = Form("d0postvtraczTrue_%d", bin); | |
1394 | ((TH1F*)(fOutputpostvTracRec->FindObject(named0PostvtracrphiRec)))->Fill(10000.*dzRec[0]); | |
1395 | ((TH1F*)(fOutputpostvTracRec->FindObject(named0PostvtraczRec)))->Fill(10000.*dzRec[1]); | |
1396 | ((TH1F*)(fOutputpostvTracSkip->FindObject(named0PostvtracrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1397 | ((TH1F*)(fOutputpostvTracSkip->FindObject(named0PostvtraczSkip)))->Fill(10000.*dzRecSkip[1]); | |
cde71236 | 1398 | if(fReadMC) { |
1399 | ((TH1F*)(fOutputpostvTracTrue->FindObject(named0PostvtracrphiTrue)))->Fill(10000.*dzTrue[0]); | |
1400 | ((TH1F*)(fOutputpostvTracTrue->FindObject(named0PostvtraczTrue)))->Fill(10000.*dzTrue[1]); | |
1401 | } | |
cbddc2a0 | 1402 | } |
1403 | ||
f06878d2 | 1404 | if(charge==-1) { |
cbddc2a0 | 1405 | char *named0NegtvtracrphiRec = Form("d0negtvtracrphiRec_%d", bin); |
1406 | char *named0NegtvtracrphiSkip = Form("d0negtvtracrphiSkip_%d", bin); | |
1407 | char *named0NegtvtracrphiTrue = Form("d0negtvtracrphiTrue_%d", bin); | |
1408 | char *named0NegtvtraczRec = Form("d0negtvtraczRec_%d", bin); | |
1409 | char *named0NegtvtraczSkip = Form("d0negtvtraczSkip_%d", bin); | |
1410 | char *named0NegtvtraczTrue = Form("d0negtvtraczTrue_%d", bin); | |
1411 | ((TH1F*)(fOutputnegtvTracRec->FindObject(named0NegtvtracrphiRec)))->Fill(10000.*dzRec[0]); | |
1412 | ((TH1F*)(fOutputnegtvTracRec->FindObject(named0NegtvtraczRec)))->Fill(10000.*dzRec[1]); | |
1413 | ((TH1F*)(fOutputnegtvTracSkip->FindObject(named0NegtvtracrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1414 | ((TH1F*)(fOutputnegtvTracSkip->FindObject(named0NegtvtraczSkip)))->Fill(10000.*dzRecSkip[1]); | |
cde71236 | 1415 | if(fReadMC) { |
1416 | ((TH1F*)(fOutputnegtvTracTrue->FindObject(named0NegtvtracrphiTrue)))->Fill(10000.*dzTrue[0]); | |
1417 | ((TH1F*)(fOutputnegtvTracTrue->FindObject(named0NegtvtraczTrue)))->Fill(10000.*dzTrue[1]); | |
1418 | } | |
1419 | } | |
cbddc2a0 | 1420 | |
1421 | // SinTheta | |
1422 | Double_t theta=esdtrack->Theta(); | |
1423 | Double_t Sintheta=TMath::Sin(theta); | |
319532c0 | 1424 | Double_t pi=TMath::Pi(); |
1425 | Double_t halfpi=0.5*pi; | |
cbddc2a0 | 1426 | Int_t thetabin = SinThetaBin(Sintheta); |
319532c0 | 1427 | if(thetabin<0) continue; |
1428 | if(bin==4 && theta<halfpi){ | |
1429 | char *named0ThetaforwardrphiRec = Form("d0thetaforwardrphiRec_%d", thetabin); | |
1430 | char *named0ThetaforwardzRec = Form("d0thetaforwardzRec_%d", thetabin); | |
1431 | char *named0ThetaforwardrphiSkip = Form("d0thetaforwardrphiSkip_%d", thetabin); | |
1432 | char *named0ThetaforwardzSkip = Form("d0thetaforwardzSkip_%d", thetabin); | |
1433 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0ThetaforwardrphiRec)))->Fill(10000*dzRec[0]); | |
1434 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0ThetaforwardzRec)))->Fill(10000*dzRec[1]); | |
1435 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0ThetaforwardrphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1436 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0ThetaforwardzSkip)))->Fill(10000*dzRecSkip[1]); | |
1437 | } | |
1438 | ||
1439 | if(bin==4 && theta>halfpi){ | |
1440 | char *named0ThetabackwardrphiRec = Form("d0thetabackwardrphiRec_%d", thetabin); | |
1441 | char *named0ThetabackwardzRec = Form("d0thetabackwardzRec_%d", thetabin); | |
1442 | char *named0ThetabackwardrphiSkip = Form("d0thetabackwardrphiSkip_%d", thetabin); | |
1443 | char *named0ThetabackwardzSkip = Form("d0thetabackwardzSkip_%d", thetabin); | |
1444 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0ThetabackwardrphiRec)))->Fill(10000*dzRec[0]); | |
1445 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0ThetabackwardzRec)))->Fill(10000*dzRec[1]); | |
1446 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0ThetabackwardrphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1447 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0ThetabackwardzSkip)))->Fill(10000*dzRecSkip[1]); | |
1448 | } | |
cbddc2a0 | 1449 | |
1450 | if(bin==1) { | |
1451 | char *named0SinthetaonerphiRec = Form("d0sinthetaonerphiRec_%d", thetabin); | |
1452 | char *named0SinthetaonezRec = Form("d0sinthetaonezRec_%d", thetabin); | |
1453 | char *named0SinthetaonerphiSkip = Form("d0sinthetaonerphiSkip_%d", thetabin); | |
1454 | char *named0SinthetaonezSkip = Form("d0sinthetaonezSkip_%d", thetabin); | |
1455 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetaonerphiRec)))->Fill(10000*dzRec[0]); | |
1456 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetaonezRec)))->Fill(10000*dzRec[1]); | |
1457 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetaonerphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1458 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetaonezSkip)))->Fill(10000*dzRecSkip[1]); | |
1459 | } | |
1460 | ||
1461 | if(bin==5) { | |
1462 | char *named0SinthetatworphiRec = Form("d0sinthetatworphiRec_%d", thetabin); | |
1463 | char *named0SinthetatwozRec = Form("d0sinthetatwozRec_%d", thetabin); | |
1464 | char *named0SinthetatworphiSkip = Form("d0sinthetatworphiSkip_%d", thetabin); | |
1465 | char *named0SinthetatwozSkip = Form("d0sinthetatwozSkip_%d", thetabin); | |
1466 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetatworphiRec)))->Fill(10000*dzRec[0]); | |
1467 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetatwozRec)))->Fill(10000*dzRec[1]); | |
1468 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetatworphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1469 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetatwozSkip)))->Fill(10000*dzRecSkip[1]); | |
1470 | } | |
1471 | ||
1472 | if(bin==10) { | |
1473 | char *named0SinthetathreerphiRec = Form("d0sinthetathreerphiRec_%d", thetabin); | |
1474 | char *named0SinthetathreezRec = Form("d0sinthetathreezRec_%d", thetabin); | |
1475 | char *named0SinthetathreerphiSkip = Form("d0sinthetathreerphiSkip_%d", thetabin); | |
1476 | char *named0SinthetathreezSkip = Form("d0sinthetathreezSkip_%d", thetabin); | |
1477 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetathreerphiRec)))->Fill(10000*dzRec[0]); | |
1478 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetathreezRec)))->Fill(10000*dzRec[1]); | |
1479 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetathreerphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1480 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetathreezSkip)))->Fill(10000*dzRecSkip[1]); | |
1481 | } | |
1482 | ||
1483 | if(bin==15) { | |
1484 | char *named0SinthetafourrphiRec = Form("d0sinthetafourrphiRec_%d", thetabin); | |
1485 | char *named0SinthetafourzRec = Form("d0sinthetafourzRec_%d", thetabin); | |
1486 | char *named0SinthetafourrphiSkip = Form("d0sinthetafourrphiSkip_%d", thetabin); | |
1487 | char *named0SinthetafourzSkip = Form("d0sinthetafourzSkip_%d", thetabin); | |
1488 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetafourrphiRec)))->Fill(10000*dzRec[0]); | |
1489 | ((TH1F*)(fOutputSinThetaRec->FindObject(named0SinthetafourzRec)))->Fill(10000*dzRec[1]); | |
1490 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetafourrphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1491 | ((TH1F*)(fOutputSinThetaSkip->FindObject(named0SinthetafourzSkip)))->Fill(10000*dzRecSkip[1]); | |
1492 | } | |
1493 | ||
1494 | //Phi | |
1495 | Double_t phi=esdtrack->Phi(); | |
1496 | //Double_t pi=TMath::Pi(); | |
1497 | Int_t phibin=PhiBin(phi); | |
319532c0 | 1498 | if(phibin<0) continue; |
1499 | if(pt>0.34 && pt<0.5) { | |
cbddc2a0 | 1500 | char *named0PhiallpointrphiSkip =Form("d0phiallpointrphiSkip_%d",phibin); |
1501 | char *named0PhiallpointzSkip = Form("d0phiallpointzSkip_%d",phibin); | |
1502 | char *named0PhipostvtracrphiSkip =Form("d0phipostvtracrphiSkip_%d",phibin); | |
1503 | char *named0PhipostvtraczSkip = Form("d0phipostvtraczSkip_%d",phibin); | |
1504 | char *named0PhinegtvtracrphiSkip =Form("d0phinegtvtracrphiSkip_%d",phibin); | |
1505 | char *named0PhinegtvtraczSkip = Form("d0phinegtvtraczSkip_%d",phibin); | |
1506 | ((TH1F*)(fOutputphiAllpointSkip->FindObject(named0PhiallpointrphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1507 | ((TH1F*)(fOutputphiAllpointSkip->FindObject(named0PhiallpointzSkip)))->Fill(10000*dzRecSkip[1]); | |
238eda67 | 1508 | if(charge==+1) { |
1509 | ((TH1F*)(fOutputphiPostvtracSkip->FindObject(named0PhipostvtracrphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1510 | ((TH1F*)(fOutputphiPostvtracSkip->FindObject(named0PhipostvtraczSkip)))->Fill(10000*dzRecSkip[1]); | |
1511 | } | |
1512 | if(charge==-1) { | |
1513 | ((TH1F*)(fOutputphiNegtvtracSkip->FindObject(named0PhinegtvtracrphiSkip)))->Fill(10000*dzRecSkip[0]); | |
1514 | ((TH1F*)(fOutputphiNegtvtracSkip->FindObject(named0PhinegtvtraczSkip)))->Fill(10000*dzRecSkip[1]); | |
1515 | } | |
cbddc2a0 | 1516 | } |
319532c0 | 1517 | |
319532c0 | 1518 | |
1519 | // Bayesian PID | |
1520 | Double_t prob[AliPID::kSPECIES]; | |
1521 | esdtrack->GetESDpid(prob); | |
1522 | Double_t priors[5] = {0.01, 0.01, 0.85, 0.10, 0.05}; | |
1523 | ||
1524 | //Int_t charge = track->Charge(); | |
1525 | //Int_t esdPid = -1; | |
1526 | ||
1527 | AliPID pid; | |
1528 | pid.SetPriors(priors); | |
1529 | pid.SetProbabilities(prob); | |
1530 | ||
1531 | // identify particle as the most probable | |
1532 | Double_t pelectron = pid.GetProbability(AliPID::kElectron); | |
1533 | Double_t pmuon = pid.GetProbability(AliPID::kMuon); | |
1534 | Double_t ppion = pid.GetProbability(AliPID::kPion); | |
1535 | Double_t pkaon = pid.GetProbability(AliPID::kKaon); | |
1536 | Double_t pproton = pid.GetProbability(AliPID::kProton); | |
1537 | ||
1538 | if (ppion > pelectron && | |
1539 | ppion >pmuon && | |
1540 | ppion > pkaon && | |
1541 | ppion > pproton ) { | |
1542 | //esdPid =-kPDGelectron; | |
1543 | char *named0PionPIDrphiRec = Form("d0pionPIDrphiRec_%d", bin); | |
1544 | char *named0PionPIDzRec = Form("d0pionPIDzRec_%d", bin); | |
1545 | char *named0PionPIDrphiSkip = Form("d0pionPIDrphiSkip_%d", bin); | |
1546 | char *named0PionPIDzSkip = Form("d0pionPIDzSkip_%d", bin); | |
1547 | ((TH1F*)(fOutputparticlePID->FindObject(named0PionPIDrphiRec)))->Fill(10000.*dzRec[0]); | |
1548 | ((TH1F*)(fOutputparticlePID->FindObject(named0PionPIDzRec)))->Fill(10000.*dzRec[1]); | |
1549 | ((TH1F*)(fOutputparticlePID->FindObject(named0PionPIDrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1550 | ((TH1F*)(fOutputparticlePID->FindObject(named0PionPIDzSkip)))->Fill(10000.*dzRecSkip[1]); | |
1551 | } | |
1552 | ||
1553 | ||
1554 | if (pkaon > pelectron && | |
1555 | pkaon >pmuon && | |
1556 | pkaon > ppion && | |
1557 | pkaon > pproton ) { | |
1558 | //esdPid =-kPDGelectron; | |
1559 | char *named0KaonPIDrphiRec = Form("d0kaonPIDrphiRec_%d", bin); | |
1560 | char *named0KaonPIDzRec = Form("d0kaonPIDzRec_%d", bin); | |
1561 | char *named0KaonPIDrphiSkip = Form("d0kaonPIDrphiSkip_%d", bin); | |
1562 | char *named0KaonPIDzSkip = Form("d0kaonPIDzSkip_%d", bin); | |
1563 | ((TH1F*)(fOutputparticlePID->FindObject(named0KaonPIDrphiRec)))->Fill(10000.*dzRec[0]); | |
1564 | ((TH1F*)(fOutputparticlePID->FindObject(named0KaonPIDzRec)))->Fill(10000.*dzRec[1]); | |
1565 | ((TH1F*)(fOutputparticlePID->FindObject(named0KaonPIDrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1566 | ((TH1F*)(fOutputparticlePID->FindObject(named0KaonPIDzSkip)))->Fill(10000.*dzRecSkip[1]); | |
1567 | } | |
1568 | ||
1569 | ||
1570 | if (pproton > pelectron && | |
1571 | pproton >pmuon && | |
1572 | pproton > ppion && | |
1573 | pproton > pkaon ) { | |
1574 | //esdPid =-kPDGelectron; | |
1575 | //if(p<0.5 && fReadMC){fEstimVtx->Fill(pdgCode);} | |
1576 | char *named0ProtonPIDrphiRec = Form("d0protonPIDrphiRec_%d", bin); | |
1577 | char *named0ProtonPIDzRec = Form("d0protonPIDzRec_%d", bin); | |
1578 | char *named0ProtonPIDrphiSkip = Form("d0protonPIDrphiSkip_%d", bin); | |
1579 | char *named0ProtonPIDzSkip = Form("d0protonPIDzSkip_%d", bin); | |
1580 | ((TH1F*)(fOutputparticlePID->FindObject(named0ProtonPIDrphiRec)))->Fill(10000.*dzRec[0]); | |
1581 | ((TH1F*)(fOutputparticlePID->FindObject(named0ProtonPIDzRec)))->Fill(10000.*dzRec[1]); | |
1582 | ((TH1F*)(fOutputparticlePID->FindObject(named0ProtonPIDrphiSkip)))->Fill(10000.*dzRecSkip[0]); | |
1583 | ((TH1F*)(fOutputparticlePID->FindObject(named0ProtonPIDzSkip)))->Fill(10000.*dzRecSkip[1]); | |
1584 | } | |
1585 | ||
b2d79ac3 | 1586 | } |
319532c0 | 1587 | |
1588 | ||
77e570bf | 1589 | } // end loop of tracks |
1590 | ||
b6292968 | 1591 | delete vtxESDRec; vtxESDRec=NULL; |
1592 | delete vtxESDTrue; vtxESDTrue=NULL; | |
77e570bf | 1593 | PostData(1, fOutputitspureSARec); |
1594 | PostData(2, fOutputitspureSASkip); | |
1595 | PostData(3, fOutputallPointRec); | |
1596 | PostData(4, fOutputallPointSkip); | |
1597 | PostData(5, fOutputpartPointRec); | |
1598 | PostData(6, fOutputpartPointSkip); | |
1599 | PostData(7, fOutputonepointSPDRec); | |
1600 | PostData(8, fOutputonepointSPDSkip); | |
1601 | PostData(9, fOutputpostvTracRec); | |
1602 | PostData(10, fOutputpostvTracSkip); | |
1603 | PostData(11, fOutputnegtvTracRec); | |
1604 | PostData(12, fOutputnegtvTracSkip); | |
1605 | PostData(13, fOutputpullAllpointRec); | |
1606 | PostData(14, fOutputpullAllpointSkip); | |
1607 | PostData(15, fOutputOnlyRefitRec); | |
1608 | PostData(16, fOutputOnlyRefitSkip); | |
cbddc2a0 | 1609 | PostData(17, fOutputSinThetaRec); |
1610 | PostData(18, fOutputSinThetaSkip); | |
1611 | PostData(19, fOutputallPointTrue); | |
1612 | PostData(20, fOutputpostvTracTrue); | |
1613 | PostData(21, fOutputnegtvTracTrue); | |
1614 | PostData(22, fOutputpullAllpointTrue); | |
1615 | PostData(23, fOutputphiAllpointSkip); | |
1616 | PostData(24, fOutputphiPostvtracSkip); | |
1617 | PostData(25, fOutputphiNegtvtracSkip); | |
31a96e36 | 1618 | PostData(26, fOutputparticlePID); |
1619 | PostData(27, fOutputPt); | |
1620 | PostData(28, fNentries); | |
1621 | PostData(29, fEstimVtx); | |
319532c0 | 1622 | |
77e570bf | 1623 | return; |
1624 | } | |
1625 | ||
1626 | //________________________________________________________________________ | |
1627 | Int_t AliAnalysisTaskSEImpParRes::PtBin(Double_t pt) const { | |
1628 | // | |
1629 | // return the number of the pt bin | |
1630 | // | |
1631 | ||
cbddc2a0 | 1632 | if (pt>0.22 && pt<0.23) return 1; |
1633 | if (pt>0.26 && pt<0.27) return 2; | |
0f607695 | 1634 | if (pt>0.345 && pt<0.355) return 3; |
cbddc2a0 | 1635 | if (pt>0.45 && pt<0.46) return 4; |
1636 | if (pt>0.55 && pt<0.56) return 5; | |
1637 | if (pt>0.65 && pt<0.66) return 6; | |
1638 | if (pt>0.75 && pt<0.76) return 7; | |
1639 | if (pt>0.85 && pt<0.865) return 8; | |
1640 | if (pt>1.05 && pt<1.07) return 9; | |
77e570bf | 1641 | if (pt>1.25 && pt<1.30) return 10; |
1642 | if (pt>1.4 && pt<1.55) return 11; | |
1643 | if (pt>1.6 && pt<1.8) return 12; | |
1644 | if (pt>1.8 && pt<2.0) return 13; | |
1645 | if (pt>2.1 && pt<2.3) return 14; | |
1646 | if (pt>2.34 && pt<2.64) return 15; | |
1647 | if (pt>2.65 && pt<3.0) return 16; | |
1648 | if (pt>3.1 && pt<4.) return 17; | |
1649 | if (pt>4.1 && pt<5.2) return 18; | |
1650 | if (pt>5.3 && pt<6.8) return 19; | |
1651 | if (pt>7.0 && pt<8.8) return 20; | |
b2d79ac3 | 1652 | if (pt>9. && pt<11.) return 21; |
1653 | if (pt>11.1 && pt<14.) return 22; | |
1654 | if (pt>14.1 && pt<17.) return 23; | |
1655 | if (pt>17.2 && pt<21.8) return 24; | |
1656 | if (pt>22.1 && pt<29.) return 25; | |
1657 | if (pt>29.05 && pt<35.) return 26; | |
77e570bf | 1658 | /* |
1659 | if (pt>0.22 && pt<0.23) return 1 ; | |
1660 | if (pt>0.26 && pt<0.27) return 2 ; | |
1661 | if (pt>0.35 && pt<0.36) return 3 ; | |
1662 | if (pt>0.45 && pt<0.46) return 4 ; | |
1663 | if (pt>0.55 && pt<0.56) return 5 ; | |
1664 | if (pt>0.65 && pt<0.66) return 6 ; | |
1665 | if (pt>0.75 && pt<0.76) return 7 ; | |
1666 | if (pt>0.85 && pt<0.86) return 8 ; | |
1667 | if (pt>1.05 && pt<1.06) return 9 ; | |
1668 | if (pt>1.25 && pt<1.27) return 10; | |
1669 | if (pt>1.45 && pt<1.47) return 11; | |
1670 | if (pt>1.65 && pt<1.67) return 12; | |
1671 | if (pt>1.85 && pt<1.87) return 13; | |
1672 | if (pt>2.15 && pt<2.17) return 14; | |
1673 | if (pt>2.45 && pt<2.48) return 15; | |
1674 | if (pt>2.65 && pt<2.67) return 16; | |
1675 | if (pt>2.85 && pt<2.87) return 17; | |
1676 | if (pt>3.25 && pt<3.27) return 18; | |
1677 | if (pt>3.75 && pt<3.8) return 19; | |
1678 | if (pt>4.15 && pt<4.20) return 20; | |
1679 | if (pt>4.95 && pt<5.15) return 21; | |
1680 | if (pt>5.35 && pt<5.55) return 22; | |
1681 | if (pt>6.0 && pt<6.8) return 23; | |
1682 | if (pt>8.5 && pt<10.5) return 24; | |
1683 | if (pt>12. && pt<19.) return 25; | |
1684 | if (pt>21. && pt<32.) return 26; | |
1685 | */ | |
1686 | return -1; | |
1687 | } | |
1688 | ||
b2d79ac3 | 1689 | //________________________________________________________________________ |
1690 | Double_t AliAnalysisTaskSEImpParRes::Getd0HistRange(Int_t i) const { | |
1691 | // | |
1692 | // Return the range of the d0 histograms for each pt bin | |
1693 | // | |
1694 | if (i==1) return 2500.; | |
1695 | if (i==2) return 1800.; | |
1696 | if (i==3) return 1750.; | |
1697 | if (i==4) return 1200.; | |
1698 | if (i==5) return 1000.; | |
1699 | if (i==6) return 900.; | |
1700 | if (i==7) return 850.; | |
1701 | if (i==8) return 700.; | |
1702 | if (i==9) return 650.; | |
1703 | if (i==10) return 600.; | |
1704 | if (i==11) return 550.; | |
1705 | if (i==12) return 500.; | |
1706 | if (i==13) return 450.; | |
1707 | if (i==14) return 400.; | |
1708 | if (i==15) return 390.; | |
1709 | if (i==16) return 380.; | |
1710 | if (i==17) return 380.; | |
1711 | if (i==18) return 350.; | |
1712 | if (i==19) return 320.; | |
1713 | if (i==20) return 300.; | |
1714 | if (i==21) return 290.; | |
1715 | if (i==22) return 270.; | |
1716 | if (i==23) return 250.; | |
1717 | if (i==24) return 270.; | |
1718 | if (i==25) return 279.; | |
1719 | if (i==26) return 270.; | |
1720 | ||
1721 | return 2000.; | |
1722 | } | |
1723 | ||
1724 | //________________________________________________________________________ | |
1725 | Int_t AliAnalysisTaskSEImpParRes::SinThetaBin(Double_t sintheta) const { | |
1726 | // | |
1727 | // Return the number of the sinTheta bin | |
1728 | // | |
1729 | if(sintheta>0.7 && sintheta<0.73) return 1; | |
1730 | if(sintheta>0.73 && sintheta<0.76) return 2; | |
1731 | if(sintheta>0.76 && sintheta<0.79) return 3; | |
1732 | if(sintheta>0.79 && sintheta<0.82) return 4; | |
1733 | if(sintheta>0.82 && sintheta<0.85) return 5; | |
1734 | if(sintheta>0.85 && sintheta<0.88) return 6; | |
1735 | if(sintheta>0.88 && sintheta<0.91) return 7; | |
1736 | if(sintheta>0.91 && sintheta<0.94) return 8; | |
1737 | if(sintheta>0.94 && sintheta<0.97) return 9; | |
1738 | if(sintheta>0.97 && sintheta<1.0) return 10; | |
1739 | return -1; | |
1740 | } | |
1741 | ||
cbddc2a0 | 1742 | //___________________________________________________________________________ |
1743 | Int_t AliAnalysisTaskSEImpParRes::PhiBin(Double_t phi) const { | |
1744 | Double_t pi=TMath::Pi(); | |
1745 | if(phi>2.*pi || phi<0.) return -1; | |
5a4911b5 | 1746 | if(phi<0.1*pi) return 1; |
1747 | if(phi<0.2*pi) return 2; | |
1748 | if(phi<0.3*pi) return 3; | |
1749 | if(phi<0.4*pi) return 4; | |
1750 | if(phi<0.5*pi) return 5; | |
1751 | if(phi<0.6*pi) return 6; | |
1752 | if(phi<0.7*pi) return 7; | |
1753 | if(phi<0.8*pi) return 8; | |
1754 | if(phi<0.9*pi) return 9; | |
1755 | if(phi<1.0*pi) return 10; | |
1756 | if(phi<1.1*pi) return 11; | |
1757 | if(phi<1.2*pi) return 12; | |
1758 | if(phi<1.3*pi) return 13; | |
1759 | if(phi<1.4*pi) return 14; | |
1760 | if(phi<1.5*pi) return 15; | |
1761 | if(phi<1.6*pi) return 16; | |
1762 | if(phi<1.7*pi) return 17; | |
1763 | if(phi<1.8*pi) return 18; | |
1764 | if(phi<1.9*pi) return 19; | |
1765 | if(phi<2.0*pi) return 20; | |
cbddc2a0 | 1766 | return -1; |
1767 | } | |
cbddc2a0 | 1768 | //___________________________________________________________________________ |
77e570bf | 1769 | void AliAnalysisTaskSEImpParRes::Terminate(Option_t */*option*/) { |
1770 | // | |
1771 | // Terminate analysis | |
1772 | // | |
1773 | ||
1774 | if (fDebug>1) printf("AnalysisTaskSEImpParRes: Terminate() \n"); | |
1775 | ||
77e570bf | 1776 | return; |
1777 | } | |
319532c0 | 1778 | //__________________________________________________________________________ |
1779 | Int_t AliAnalysisTaskSEImpParRes::ClusterTypeOnITSLayer(AliESDtrack *track, | |
1780 | Int_t layer) const { | |
cbddc2a0 | 1781 | // |
1782 | // Returns cluster type on ITS layer. Returns -1 if no cluster on this layer | |
1783 | // | |
319532c0 | 1784 | Int_t ctype=-1; |
cbddc2a0 | 1785 | |
1786 | if(layer<0 || layer>5) return ctype; | |
1787 | if(!track->HasPointOnITSLayer(layer)) return ctype; | |
319532c0 | 1788 | |
cbddc2a0 | 1789 | const AliTrackPointArray *array = track->GetTrackPointArray(); |
319532c0 | 1790 | if(!array) { |
a4666767 | 1791 | // printf("No tracks points avaialble: check ESDfriends\n"); |
319532c0 | 1792 | return ctype; |
1793 | } | |
cbddc2a0 | 1794 | AliTrackPoint point; |
1795 | Int_t ipt,volId,modId,layerId; | |
319532c0 | 1796 | for(ipt=0; ipt<array->GetNPoints(); ipt++) { |
1797 | array->GetPoint(point,ipt); | |
1798 | volId = point.GetVolumeID(); | |
1799 | if(volId<=0) continue; | |
1800 | layerId = AliGeomManager::VolUIDToLayer(volId,modId); | |
1801 | if(layerId==layer+1 && !point.IsExtra()) { | |
1802 | ctype = point.GetClusterType(); | |
1803 | break; | |
1804 | } | |
cbddc2a0 | 1805 | } |
319532c0 | 1806 | return ctype; |
1807 | } | |
66cefb1c | 1808 | //--------------------------------------------------------------------------- |
1809 | Bool_t AliAnalysisTaskSEImpParRes::IsSelectedCentrality(AliESDEvent *esd) const | |
1810 | { | |
1811 | // | |
1812 | // check if events is in the required multiplicity range | |
1813 | // | |
1814 | ||
1815 | const AliMultiplicity *alimult = esd->GetMultiplicity(); | |
1816 | Int_t ntrklets=1; | |
1817 | Int_t nclsSPDouter=0; | |
1818 | if(alimult) { | |
1819 | ntrklets = alimult->GetNumberOfTracklets(); | |
1820 | nclsSPDouter = alimult->GetNumberOfITSClusters(1); | |
1821 | } | |
1822 | ||
1823 | if(nclsSPDouter<fMinMult || nclsSPDouter>fMaxMult) return kFALSE; | |
1824 | ||
1825 | ||
1826 | return kTRUE; | |
1827 | } |