]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AliAnalysisTaskLukeAOD.cxx
add one histo missing
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AliAnalysisTaskLukeAOD.cxx
CommitLineData
12ca6c45 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
8a7cb9cc 16/* $Id: AliAnalysisTaskLukeAOD.cxx 46301 2011-01-06 14:25:27Z agheata $ */
12ca6c45 17
8a7cb9cc 18/* AliAnalysisTaskLukeAOD.cxx
12ca6c45 19 *
20 * Template task producing a P_t spectrum and pseudorapidity distribution.
21 *
22 * Instructions for adding histograms can be found below, starting with NEW HISTO
23 *
24 * Based on tutorial example from offline pages
25 * Edited by Arvinder Palaha
bbfb6fac 26 * Edited by Luke Hanratty for AODS
12ca6c45 27 */
8a7cb9cc 28#include "AliAnalysisTaskLukeAOD.h"
12ca6c45 29
30#include "Riostream.h"
31#include "TChain.h"
32#include "TTree.h"
33#include "TH1F.h"
34#include "TH2F.h"
35#include "TCanvas.h"
36#include "TList.h"
37#include "TPDGCode.h"
38
39#include "AliAnalysisTaskSE.h"
40#include "AliAnalysisManager.h"
41#include "AliStack.h"
42#include "AliESDtrackCuts.h"
43#include "AliESDEvent.h"
44#include "AliESDInputHandler.h"
45#include "AliAODEvent.h"
46#include "AliMCEvent.h"
47#include "AliMCVertex.h"
48
49#include "AliAODEvent.h"
50#include "AliAODv0.h"
51#include "AliAODcascade.h"
52
53#include "AliPID.h"
54#include "AliPIDResponse.h"
55#include "AliAODPid.h"
56#include "AliCentrality.h"
57
58#include "AliAODMCHeader.h"
59#include "AliAODMCParticle.h"
60
61#include "AliInputEventHandler.h"
62
63
64
8a7cb9cc 65ClassImp(AliAnalysisTaskLukeAOD)
12ca6c45 66
67//________________________________________________________________________
8a7cb9cc 68AliAnalysisTaskLukeAOD::AliAnalysisTaskLukeAOD() // All data members should be initialised here
12ca6c45 69:AliAnalysisTaskSE(),
70fOutput(0),
71fPIDResponse(0),
72
73fHistPt(0),
74fHistEta(0),
75fHistLog(0),
76fHistNV0(0),
77fHistZVertex(0),
78fHistMCZVertex(0),
79fHistCentrality(0),
80
81fHistBBK0Pos(0),
82fHistBBK0Neg(0),
83fHistBBLaPos(0),
84fHistBBLaNeg(0),
85fHistBBLbPos(0),
86fHistBBLbNeg(0),
484c6e75 87fHistArmPodK0(0),
88fHistArmPodLa(0),
89fHistArmPodLb(0),
12ca6c45 90
91fHistBB3SigProton(0),
92fHistMK0Pt(0),
93fHistMLaPt(0),
94fHistMLbPt(0),
95fHistMcPMK0Pt(0),
96fHistMcPMLaPt(0),
97fHistMcPMLbPt(0),
98
99fHistMcFMLaPt(0),
100
101fHistMK0PtCent0005(0),
102fHistMLaPtCent0005(0),
103fHistMLbPtCent0005(0),
104fHistMcPMK0PtCent0005(0),
105fHistMcPMLaPtCent0005(0),
106fHistMcPMLbPtCent0005(0),
107fHistZVertexCent0005(0),
108fHistMCZVertexCent0005(0),
109
110fHistMK0PtCent0510(0),
111fHistMLaPtCent0510(0),
112fHistMLbPtCent0510(0),
113fHistMcPMK0PtCent0510(0),
114fHistMcPMLaPtCent0510(0),
115fHistMcPMLbPtCent0510(0),
116fHistZVertexCent0510(0),
117fHistMCZVertexCent0510(0),
118
119fHistMK0PtCent1020(0),
120fHistMLaPtCent1020(0),
121fHistMLbPtCent1020(0),
122fHistMcPMK0PtCent1020(0),
123fHistMcPMLaPtCent1020(0),
124fHistMcPMLbPtCent1020(0),
125fHistZVertexCent1020(0),
126fHistMCZVertexCent1020(0),
127
128fHistMK0PtCent2040(0),
129fHistMLaPtCent2040(0),
130fHistMLbPtCent2040(0),
131fHistMcPMK0PtCent2040(0),
132fHistMcPMLaPtCent2040(0),
133fHistMcPMLbPtCent2040(0),
134fHistZVertexCent2040(0),
135fHistMCZVertexCent2040(0),
136
137fHistMK0PtCent4060(0),
138fHistMLaPtCent4060(0),
139fHistMLbPtCent4060(0),
140fHistMcPMK0PtCent4060(0),
141fHistMcPMLaPtCent4060(0),
142fHistMcPMLbPtCent4060(0),
143fHistZVertexCent4060(0),
144fHistMCZVertexCent4060(0),
145
146fHistMK0PtCent6090(0),
147fHistMLaPtCent6090(0),
148fHistMLbPtCent6090(0),
149fHistMcPMK0PtCent6090(0),
150fHistMcPMLaPtCent6090(0),
151fHistMcPMLbPtCent6090(0),
152fHistZVertexCent6090(0),
153fHistMCZVertexCent6090(0),
154
155fHistMK0PtCent0090(0),
156fHistMLaPtCent0090(0),
157fHistMLbPtCent0090(0),
158fHistMcPMK0PtCent0090(0),
159fHistMcPMLaPtCent0090(0),
160fHistMcPMLbPtCent0090(0),
161fHistZVertexCent0090(0),
162fHistMCZVertexCent0090(0),
163
164fHistCosPaLaPt(0),
165fHistCosPaLbPt(0),
166fHistCosPaK0Pt(0),
167fHistMcCosPaAllLaPt(0),
168fHistMcCosPaAllLbPt(0),
169fHistMcCosPaAllK0Pt(0),
170fHistMcCosPaFoundLaPt(0),
171fHistMcCosPaFoundLbPt(0),
172fHistMcCosPaAFoundK0Pt(0),
173
174fHistcTauLaPt(0),
175fHistcTauLbPt(0),
176fHistcTauK0Pt(0),
177fHistMccTauAllLaPt(0),
178fHistMccTauAllLbPt(0),
179fHistMccTauAllK0Pt(0),
180fHistMccTauFoundLaPt(0),
181fHistMccTauFoundLbPt(0),
182fHistMccTauAFoundK0Pt(0),
183
184fHistDcaLaPt(0),
185fHistDcaLbPt(0),
186fHistDcaK0Pt(0),
187fHistMcDcaAllLaPt(0),
188fHistMcDcaAllLbPt(0),
189fHistMcDcaAllK0Pt(0),
190fHistMcDcaFoundLaPt(0),
191fHistMcDcaFoundLbPt(0),
192fHistMcDcaAFoundK0Pt(0),
193
194fHistNSigmaLaPt(0),
195fHistNSigmaLbPt(0),
196fHistNSigmaK0Pt(0),
197fHistMcNSigmaAllLaPt(0),
198fHistMcNSigmaAllLbPt(0),
199fHistMcNSigmaAllK0Pt(0),
200fHistMcNSigmaFoundLaPt(0),
201fHistMcNSigmaFoundLbPt(0),
202fHistMcNSigmaAFoundK0Pt(0),
203
204fHistEtaLaPt(0),
205fHistEtaLbPt(0),
206fHistEtaK0Pt(0),
207fHistMcEtaAllLaPt(0),
208fHistMcEtaAllLbPt(0),
209fHistMcEtaAllK0Pt(0),
210fHistMcEtaFoundLaPt(0),
211fHistMcEtaFoundLbPt(0),
212fHistMcEtaAFoundK0Pt(0),
213
214fHistRapLaPt(0),
215fHistRapLbPt(0),
216fHistRapK0Pt(0),
217fHistMcRapAllLaPt(0),
218fHistMcRapAllLbPt(0),
219fHistMcRapAllK0Pt(0),
220fHistMcRapFoundLaPt(0),
221fHistMcRapFoundLbPt(0),
222fHistMcRapAFoundK0Pt(0)
223
224// The last in the above list should not have a comma after it
225{
226 // Dummy constructor ALWAYS needed for I/O.
227}
228
229//________________________________________________________________________
8a7cb9cc 230AliAnalysisTaskLukeAOD::AliAnalysisTaskLukeAOD(const char *name) // All data members should be initialised here
12ca6c45 231:AliAnalysisTaskSE(name),
232fOutput(0),
233fPIDResponse(0),
234
235fHistPt(0),
236fHistEta(0),
237fHistLog(0),
238fHistNV0(0),
239fHistZVertex(0),
240fHistMCZVertex(0),
241fHistCentrality(0),
242
243fHistBBK0Pos(0),
244fHistBBK0Neg(0),
245fHistBBLaPos(0),
246fHistBBLaNeg(0),
247fHistBBLbPos(0),
248fHistBBLbNeg(0),
484c6e75 249fHistArmPodK0(0),
250fHistArmPodLa(0),
251fHistArmPodLb(0),
12ca6c45 252
253fHistBB3SigProton(0),
254fHistMK0Pt(0),
255fHistMLaPt(0),
256fHistMLbPt(0),
257fHistMcPMK0Pt(0),
258fHistMcPMLaPt(0),
259fHistMcPMLbPt(0),
260
261fHistMcFMLaPt(0),
262
263fHistMK0PtCent0005(0),
264fHistMLaPtCent0005(0),
265fHistMLbPtCent0005(0),
266fHistMcPMK0PtCent0005(0),
267fHistMcPMLaPtCent0005(0),
268fHistMcPMLbPtCent0005(0),
269fHistZVertexCent0005(0),
270fHistMCZVertexCent0005(0),
271
272fHistMK0PtCent0510(0),
273fHistMLaPtCent0510(0),
274fHistMLbPtCent0510(0),
275fHistMcPMK0PtCent0510(0),
276fHistMcPMLaPtCent0510(0),
277fHistMcPMLbPtCent0510(0),
278fHistZVertexCent0510(0),
279fHistMCZVertexCent0510(0),
280
281fHistMK0PtCent1020(0),
282fHistMLaPtCent1020(0),
283fHistMLbPtCent1020(0),
284fHistMcPMK0PtCent1020(0),
285fHistMcPMLaPtCent1020(0),
286fHistMcPMLbPtCent1020(0),
287fHistZVertexCent1020(0),
288fHistMCZVertexCent1020(0),
289
290fHistMK0PtCent2040(0),
291fHistMLaPtCent2040(0),
292fHistMLbPtCent2040(0),
293fHistMcPMK0PtCent2040(0),
294fHistMcPMLaPtCent2040(0),
295fHistMcPMLbPtCent2040(0),
296fHistZVertexCent2040(0),
297fHistMCZVertexCent2040(0),
298
299fHistMK0PtCent4060(0),
300fHistMLaPtCent4060(0),
301fHistMLbPtCent4060(0),
302fHistMcPMK0PtCent4060(0),
303fHistMcPMLaPtCent4060(0),
304fHistMcPMLbPtCent4060(0),
305fHistZVertexCent4060(0),
306fHistMCZVertexCent4060(0),
307
308fHistMK0PtCent6090(0),
309fHistMLaPtCent6090(0),
310fHistMLbPtCent6090(0),
311fHistMcPMK0PtCent6090(0),
312fHistMcPMLaPtCent6090(0),
313fHistMcPMLbPtCent6090(0),
314fHistZVertexCent6090(0),
315fHistMCZVertexCent6090(0),
316
317fHistMK0PtCent0090(0),
318fHistMLaPtCent0090(0),
319fHistMLbPtCent0090(0),
320fHistMcPMK0PtCent0090(0),
321fHistMcPMLaPtCent0090(0),
322fHistMcPMLbPtCent0090(0),
323fHistZVertexCent0090(0),
324fHistMCZVertexCent0090(0),
325
326fHistCosPaLaPt(0),
327fHistCosPaLbPt(0),
328fHistCosPaK0Pt(0),
329fHistMcCosPaAllLaPt(0),
330fHistMcCosPaAllLbPt(0),
331fHistMcCosPaAllK0Pt(0),
332fHistMcCosPaFoundLaPt(0),
333fHistMcCosPaFoundLbPt(0),
334fHistMcCosPaAFoundK0Pt(0),
335
336fHistcTauLaPt(0),
337fHistcTauLbPt(0),
338fHistcTauK0Pt(0),
339fHistMccTauAllLaPt(0),
340fHistMccTauAllLbPt(0),
341fHistMccTauAllK0Pt(0),
342fHistMccTauFoundLaPt(0),
343fHistMccTauFoundLbPt(0),
344fHistMccTauAFoundK0Pt(0),
345
346fHistDcaLaPt(0),
347fHistDcaLbPt(0),
348fHistDcaK0Pt(0),
349fHistMcDcaAllLaPt(0),
350fHistMcDcaAllLbPt(0),
351fHistMcDcaAllK0Pt(0),
352fHistMcDcaFoundLaPt(0),
353fHistMcDcaFoundLbPt(0),
354fHistMcDcaAFoundK0Pt(0),
355
356fHistNSigmaLaPt(0),
357fHistNSigmaLbPt(0),
358fHistNSigmaK0Pt(0),
359fHistMcNSigmaAllLaPt(0),
360fHistMcNSigmaAllLbPt(0),
361fHistMcNSigmaAllK0Pt(0),
362fHistMcNSigmaFoundLaPt(0),
363fHistMcNSigmaFoundLbPt(0),
364fHistMcNSigmaAFoundK0Pt(0),
365
366fHistEtaLaPt(0),
367fHistEtaLbPt(0),
368fHistEtaK0Pt(0),
369fHistMcEtaAllLaPt(0),
370fHistMcEtaAllLbPt(0),
371fHistMcEtaAllK0Pt(0),
372fHistMcEtaFoundLaPt(0),
373fHistMcEtaFoundLbPt(0),
374fHistMcEtaAFoundK0Pt(0),
375
376fHistRapLaPt(0),
377fHistRapLbPt(0),
378fHistRapK0Pt(0),
379fHistMcRapAllLaPt(0),
380fHistMcRapAllLbPt(0),
381fHistMcRapAllK0Pt(0),
382fHistMcRapFoundLaPt(0),
383fHistMcRapFoundLbPt(0),
384fHistMcRapAFoundK0Pt(0)
385
386// The last in the above list should not have a comma after it
387{
388 // Constructor
389 // Define input and output slots here (never in the dummy constructor)
390 // Input slot #0 works with a TChain - it is connected to the default input container
391 // Output slot #1 writes into a TH1 container
392 DefineOutput(1, TList::Class()); // for output list
393}
394
395//________________________________________________________________________
8a7cb9cc 396AliAnalysisTaskLukeAOD::~AliAnalysisTaskLukeAOD()
12ca6c45 397{
398 // Destructor. Clean-up the output list, but not the histograms that are put inside
399 // (the list is owner and will clean-up these histograms). Protect in PROOF case.
400 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
401 delete fOutput;
402 }
403}
404
405//________________________________________________________________________
8a7cb9cc 406void AliAnalysisTaskLukeAOD::UserCreateOutputObjects()
12ca6c45 407{
408 // Create histograms
409 // Called once (on the worker node)
410
411 fOutput = new TList();
412 fOutput->SetOwner(); // IMPORTANT!
413
414 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
415 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
416 fPIDResponse = inputHandler->GetPIDResponse();
417 maskIsSelected = inputHandler->IsEventSelected();
418
419 // Create histograms
420 Int_t ptbins = 15;
421 Float_t ptlow = 0.1, ptup = 3.1;
422 fHistPt = new TH1F("fHistPt", "P_{T} distribution for reconstructed", ptbins, ptlow, ptup);
423 fHistPt->GetXaxis()->SetTitle("P_{T} (GeV/c)");
424 fHistPt->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
425 fHistPt->SetMarkerStyle(kFullCircle);
426
427 Int_t etabins = 40;
428 Float_t etalow = -2.0, etaup = 2.0;
429 fHistEta = new TH1F("fHistEta","#eta distribution for reconstructed",etabins, etalow, etaup);
430 fHistEta->GetXaxis()->SetTitle("#eta");
431 fHistEta->GetYaxis()->SetTitle("counts");
432
433 fHistLog = new TH1F("fHistLog","Log Variables",100, -0.5, 99.5);
434 fHistNV0 = new TH1F("fHistNV0","Number of V0s per event",100, 0, 5000);
435 fHistZVertex = new TH1F("fHistZVertex","Z coordinate of primary vertex",60, -15, 15);
436 fHistMCZVertex = new TH1F("fHistMCZVertex","Z coordinate of primary vertex in MC truth",60, -15, 15);
437 fHistCentrality = new TH1F("fHistCentrality", "Centrality of Events; Centrality Percentile (%); N",110,-5,105);
438
439 fHistBBK0Pos = new TH2F("fHistBBK0Pos","PID of the positive daughter of K0 candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
440 fHistBBK0Neg = new TH2F("fHistBBK0Neg","PID of the negative daughter of K0 candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
441 fHistBBLaPos = new TH2F("fHistBBLaPos","PID of the positive daughter of La candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
442 fHistBBLaNeg = new TH2F("fHistBBLaNeg","PID of the negative daughter of La candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
443 fHistBBLbPos = new TH2F("fHistBBLbPos","PID of the positive daughter of Lb candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
444 fHistBBLbNeg = new TH2F("fHistBBLbNeg","PID of the negative daughter of Lb candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
484c6e75 445 fHistArmPodK0 = new TH2F("fHistArmPodK0","Armenteros plot for K0 candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
446 fHistArmPodLa = new TH2F("fHistArmPodLa","Armenteros plot for La candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
447 fHistArmPodLb = new TH2F("fHistArmPodLb","Armenteros plot for Lb candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
448
12ca6c45 449 fHistBB3SigProton = new TH2F("fHistBB3SigProton","-dE/dX against Momentum for Protons @3sigma from TPC; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
450 fHistMK0Pt = new TH2F("fHistMK0Pt","K0 Mass versus Pt; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
451 fHistMLaPt = new TH2F("fHistMLaPt","Lambda Mass versus Pt; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
452 fHistMLbPt = new TH2F("fHistMLbPt","AntiLambda Mass versus Pt; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
453 fHistMcPMK0Pt = new TH2F("fHistMcPMK0Pt","Monte Carlo primary K0 Mass versus Pt; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
454 fHistMcPMLaPt = new TH2F("fHistMcPMLaPt","Monte Carlo primary (& sigma0) Lambda Mass versus Pt; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
455 fHistMcPMLbPt = new TH2F("fHistMcPMLbPt","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
456
457 fHistMcFMLaPt = new TH2F("fHistMcFMLaPt","Monte Carlo Reconstructed Lambda Mass versus Pt for feeddown lambda; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
458
459 fHistMK0PtCent0005 = new TH2F("fHistMK0PtCent0005","K0 Mass versus Pt for Centrality 0-5%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
460 fHistMLaPtCent0005 = new TH2F("fHistMLaPtCent0005","Lambda Mass versus Pt for Centrality 0-5%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
461 fHistMLbPtCent0005 = new TH2F("fHistMLbPtCent0005","AntiLambda Mass versus Pt for Centrality 0-5%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
462 fHistMcPMK0PtCent0005 = new TH2F("fHistMcPMK0PtCent0005","Monte Carlo primary K0 Mass versus Pt for Centrality 0-5%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
463 fHistMcPMLaPtCent0005 = new TH2F("fHistMcPMLaPtCent0005","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 0-5%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
464 fHistMcPMLbPtCent0005 = new TH2F("fHistMcPMLbPtCent0005","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 0-5%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
465 fHistZVertexCent0005 = new TH1F("fHistZVertexCent0005","Z coordinate of primary vertex for Centrality 0-5%",60, -15, 15);
466 fHistMCZVertexCent0005 = new TH1F("fHistMCZVertexCent0005","Z coordinate of primary vertex in MC truth for Centrality 0-5%",60, -15, 15);
467
468 fHistMK0PtCent0510 = new TH2F("fHistMK0PtCent0510","K0 Mass versus Pt for Centrality 5-10%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
469 fHistMLaPtCent0510 = new TH2F("fHistMLaPtCent0510","Lambda Mass versus Pt for Centrality 5-10%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
470 fHistMLbPtCent0510 = new TH2F("fHistMLbPtCent0510","AntiLambda Mass versus Pt for Centrality 5-10%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
471 fHistMcPMK0PtCent0510 = new TH2F("fHistMcPMK0PtCent0510","Monte Carlo primary K0 Mass versus Pt for Centrality 5-10%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
472 fHistMcPMLaPtCent0510 = new TH2F("fHistMcPMLaPtCent0510","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 5-10%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
473 fHistMcPMLbPtCent0510 = new TH2F("fHistMcPMLbPtCent0510","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 5-10%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
474 fHistZVertexCent0510 = new TH1F("fHistZVertexCent0510","Z coordinate of primary vertex for Centrality 5-10%",60, -15, 15);
475 fHistMCZVertexCent0510 = new TH1F("fHistMCZVertexCent0510","Z coordinate of primary vertex in MC truth for Centrality 5-10%",60, -15, 15);
476
477 fHistMK0PtCent1020 = new TH2F("fHistMK0PtCent1020","K0 Mass versus Pt for Centrality 10-20%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
478 fHistMLaPtCent1020 = new TH2F("fHistMLaPtCent1020","Lambda Mass versus Pt for Centrality 10-20%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
479 fHistMLbPtCent1020 = new TH2F("fHistMLbPtCent1020","AntiLambda Mass versus Pt for Centrality 10-20%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
480 fHistMcPMK0PtCent1020 = new TH2F("fHistMcPMK0PtCent1020","Monte Carlo primary K0 Mass versus Pt for Centrality 10-20%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
481 fHistMcPMLaPtCent1020 = new TH2F("fHistMcPMLaPtCent1020","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 10-20%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
482 fHistMcPMLbPtCent1020 = new TH2F("fHistMcPMLbPtCent1020","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 10-20%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
483 fHistZVertexCent1020 = new TH1F("fHistZVertexCent1020","Z coordinate of primary vertex for Centrality 10-20%",60, -15, 15);
484 fHistMCZVertexCent1020 = new TH1F("fHistMCZVertexCent1020","Z coordinate of primary vertex in MC truth for Centrality 10-20%",60, -15, 15);
485
486 fHistMK0PtCent2040 = new TH2F("fHistMK0PtCent2040","K0 Mass versus Pt for Centrality 20-40%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
487 fHistMLaPtCent2040 = new TH2F("fHistMLaPtCent2040","Lambda Mass versus Pt for Centrality 20-40%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
488 fHistMLbPtCent2040 = new TH2F("fHistMLbPtCent2040","AntiLambda Mass versus Pt for Centrality 20-40%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
489 fHistMcPMK0PtCent2040 = new TH2F("fHistMcPMK0PtCent2040","Monte Carlo primary K0 Mass versus Pt for Centrality 20-40%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
490 fHistMcPMLaPtCent2040 = new TH2F("fHistMcPMLaPtCent2040","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 20-40%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
491 fHistMcPMLbPtCent2040 = new TH2F("fHistMcPMLbPtCent2040","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 20-40%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
492 fHistZVertexCent2040 = new TH1F("fHistZVertexCent2040","Z coordinate of primary vertex for Centrality 20-40%",60, -15, 15);
493 fHistMCZVertexCent2040 = new TH1F("fHistMCZVertexCent2040","Z coordinate of primary vertex in MC truth for Centrality 20-40%",60, -15, 15);
494
495 fHistMK0PtCent4060 = new TH2F("fHistMK0PtCent4060","K0 Mass versus Pt for Centrality 40-60%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
496 fHistMLaPtCent4060 = new TH2F("fHistMLaPtCent4060","Lambda Mass versus Pt for Centrality 40-60%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
497 fHistMLbPtCent4060 = new TH2F("fHistMLbPtCent4060","AntiLambda Mass versus Pt for Centrality 40-60%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
498 fHistMcPMK0PtCent4060 = new TH2F("fHistMcPMK0PtCent4060","Monte Carlo primary K0 Mass versus Pt for Centrality 40-60%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
499 fHistMcPMLaPtCent4060 = new TH2F("fHistMcPMLaPtCent4060","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 40-60%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
500 fHistMcPMLbPtCent4060 = new TH2F("fHistMcPMLbPtCent4060","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 40-60%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
501 fHistZVertexCent4060 = new TH1F("fHistZVertexCent4060","Z coordinate of primary vertex for Centrality 40-60%",60, -15, 15);
502 fHistMCZVertexCent4060 = new TH1F("fHistMCZVertexCent4060","Z coordinate of primary vertex in MC truth for Centrality 40-60%",60, -15, 15);
503
504 fHistMK0PtCent6090 = new TH2F("fHistMK0PtCent6090","K0 Mass versus Pt for Centrality 60-90%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
505 fHistMLaPtCent6090 = new TH2F("fHistMLaPtCent6090","Lambda Mass versus Pt for Centrality 60-90%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
506 fHistMLbPtCent6090 = new TH2F("fHistMLbPtCent6090","AntiLambda Mass versus Pt for Centrality 60-90%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
507 fHistMcPMK0PtCent6090 = new TH2F("fHistMcPMK0PtCent6090","Monte Carlo primary K0 Mass versus Pt for Centrality 60-90%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
508 fHistMcPMLaPtCent6090 = new TH2F("fHistMcPMLaPtCent6090","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 60-90%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
509 fHistMcPMLbPtCent6090 = new TH2F("fHistMcPMLbPtCent6090","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 60-90%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
510 fHistZVertexCent6090 = new TH1F("fHistZVertexCent6090","Z coordinate of primary vertex for Centrality 60-90%",60, -15, 15);
511 fHistMCZVertexCent6090 = new TH1F("fHistMCZVertexCent6090","Z coordinate of primary vertex in MC truth for Centrality 60-90%",60, -15, 15);
512
513 fHistMK0PtCent0090 = new TH2F("fHistMK0PtCent0090","K0 Mass versus Pt for Centrality 0-90%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
514 fHistMLaPtCent0090 = new TH2F("fHistMLaPtCent0090","Lambda Mass versus Pt for Centrality 0-90%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
515 fHistMLbPtCent0090 = new TH2F("fHistMLbPtCent0090","AntiLambda Mass versus Pt for Centrality 0-90%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
516 fHistMcPMK0PtCent0090 = new TH2F("fHistMcPMK0PtCent0090","Monte Carlo primary K0 Mass versus Pt for Centrality 0-90%; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
517 fHistMcPMLaPtCent0090 = new TH2F("fHistMcPMLaPtCent0090","Monte Carlo primary (& sigma0) Lambda Mass versus Pt for Centrality 0-90%; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
518 fHistMcPMLbPtCent0090 = new TH2F("fHistMcPMLbPtCent0090","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt for Centrality 0-90%; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
519 fHistZVertexCent0090 = new TH1F("fHistZVertexCent0090","Z coordinate of primary vertex for Centrality 0-90%",60, -15, 15);
520 fHistMCZVertexCent0090 = new TH1F("fHistMCZVertexCent0090","Z coordinate of primary vertex in MC truth for Centrality 0-90%",60, -15, 15);
521
522
523 fHistCosPaLaPt = new TH2F("fHistCosPaLaPt"," Reconstructed Mass vs CosPa for Lambda Candidates; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
524 fHistCosPaLbPt = new TH2F("fHistCosPaLbPt"," Reconstructed Mass vs CosPa for AntiLambda Candidates; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
525 fHistCosPaK0Pt = new TH2F("fHistCosPaK0Pt"," Reconstructed Mass vs CosPa for K0Short Candidates; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
526 fHistMcCosPaAllLaPt = new TH2F("fHistMcCosPaAllLaPt"," Reconstructed Mass vs CosPa for all MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
527 fHistMcCosPaAllLbPt = new TH2F("fHistMcCosPaAllLbPt"," Reconstructed Mass vs CosPa for all MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
528 fHistMcCosPaAllK0Pt = new TH2F("fHistMcCosPaAllK0Pt"," Reconstructed Mass vs CosPa for all MC primary K0Short; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
529 fHistMcCosPaFoundLaPt = new TH2F("fHistMcCosPaFoundLaPt"," Reconstructed Mass vs CosPa for reconstructed MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
530 fHistMcCosPaFoundLbPt = new TH2F("fHistMcCosPaFoundLbPt"," Reconstructed Mass vs CosPa for reconstructed MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
531 fHistMcCosPaAFoundK0Pt = new TH2F("fHistMcCosPaAFoundK0Pt"," Reconstructed Mass vs CosPa for reconstructed MC primary K0Short; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
532
533 fHistcTauLaPt = new TH2F("fHistcTauLaPt"," Reconstructed Mass vs cTau for Lambda Candidates; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
534 fHistcTauLbPt = new TH2F("fHistcTauLbPt"," Reconstructed Mass vs cTau for AntiLambda Candidates; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
535 fHistcTauK0Pt = new TH2F("fHistcTauK0Pt"," Reconstructed Mass vs cTau for K0Short Candidates; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
536 fHistMccTauAllLaPt = new TH2F("fHistMccTauAllLaPt"," Reconstructed Mass vs cTau for all MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
537 fHistMccTauAllLbPt = new TH2F("fHistMccTauAllLbPt"," Reconstructed Mass vs cTau for all MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
538 fHistMccTauAllK0Pt = new TH2F("fHistMccTauAllK0Pt"," Reconstructed Mass vs cTau for all MC primary K0Short; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
539 fHistMccTauFoundLaPt = new TH2F("fHistMccTauFoundLaPt"," Reconstructed Mass vs cTau for reconstructed MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
540 fHistMccTauFoundLbPt = new TH2F("fHistMccTauFoundLbPt"," Reconstructed Mass vs cTau for reconstructed MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
541 fHistMccTauAFoundK0Pt = new TH2F("fHistMccTauAFoundK0Pt"," Reconstructed Mass vs cTau for reconstructed MC primary K0Short; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
542
543 fHistDcaLaPt = new TH2F("fHistDcaLaPt"," Reconstructed Mass vs Dca for Lambda Candidates; M(p#pi^{-}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
544 fHistDcaLbPt = new TH2F("fHistDcaLbPt"," Reconstructed Mass vs Dca for AntiLambda Candidates; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
545 fHistDcaK0Pt = new TH2F("fHistDcaK0Pt"," Reconstructed Mass vs Dca for K0Short Candidates; K0 Mass (GeV/c^2)",200,0,1.5,140,0.414,0.582);
546 fHistMcDcaAllLaPt = new TH2F("fHistMcDcaAllLaPt"," Reconstructed Mass vs Dca for all MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
547 fHistMcDcaAllLbPt = new TH2F("fHistMcDcaAllLbPt"," Reconstructed Mass vs Dca for all MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
548 fHistMcDcaAllK0Pt = new TH2F("fHistMcDcaAllK0Pt"," Reconstructed Mass vs Dca for all MC primary K0Short; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
549 fHistMcDcaFoundLaPt = new TH2F("fHistMcDcaFoundLaPt"," Reconstructed Mass vs Dca for reconstructed MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
550 fHistMcDcaFoundLbPt = new TH2F("fHistMcDcaFoundLbPt"," Reconstructed Mass vs Dca for reconstructed MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
551 fHistMcDcaAFoundK0Pt = new TH2F("fHistMcDcaAFoundK0Pt"," Reconstructed Mass vs Dca for reconstructed MC primary K0Short; K0 Mass (GeV/c^2)",200,0,1.5,140,0.414,0.582);
552
553 fHistNSigmaLaPt = new TH2F("fHistNSigmaLaPt"," Reconstructed Mass vs NSigma for Lambda Candidates; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
554 fHistNSigmaLbPt = new TH2F("fHistNSigmaLbPt"," Reconstructed Mass vs NSigma for AntiLambda Candidates; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
555 fHistNSigmaK0Pt = new TH2F("fHistNSigmaK0Pt"," Reconstructed Mass vs NSigma for K0Short Candidates; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
556 fHistMcNSigmaAllLaPt = new TH2F("fHistMcNSigmaAllLaPt"," Reconstructed Mass vs NSigma for all MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
557 fHistMcNSigmaAllLbPt = new TH2F("fHistMcNSigmaAllLbPt"," Reconstructed Mass vs NSigma for all MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
558 fHistMcNSigmaAllK0Pt = new TH2F("fHistMcNSigmaAllK0Pt"," Reconstructed Mass vs NSigma for all MC primary K0Short; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
559 fHistMcNSigmaFoundLaPt = new TH2F("fHistMcNSigmaFoundLaPt"," Reconstructed Mass vs NSigma for reconstructed MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
560 fHistMcNSigmaFoundLbPt = new TH2F("fHistMcNSigmaFoundLbPt"," Reconstructed Mass vs NSigma for reconstructed MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
561 fHistMcNSigmaAFoundK0Pt = new TH2F("fHistMcNSigmaAFoundK0Pt"," Reconstructed Mass vs NSigma for reconstructed MC primary K0Short; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
562
563 fHistEtaLaPt = new TH2F("fHistEtaLaPt"," Reconstructed Mass vs Eta for Lambda Candidates; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
564 fHistEtaLbPt = new TH2F("fHistEtaLbPt"," Reconstructed Mass vs Eta for AntiLambda Candidates; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
565 fHistEtaK0Pt = new TH2F("fHistEtaK0Pt"," Reconstructed Mass vs Eta for K0Short Candidates; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
566 fHistMcEtaAllLaPt = new TH2F("fHistMcEtaAllLaPt"," Reconstructed Mass vs Eta for all MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
567 fHistMcEtaAllLbPt = new TH2F("fHistMcEtaAllLbPt"," Reconstructed Mass vs Eta for all MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
568 fHistMcEtaAllK0Pt = new TH2F("fHistMcEtaAllK0Pt"," Reconstructed Mass vs Eta for all MC primary K0Short; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
569 fHistMcEtaFoundLaPt = new TH2F("fHistMcEtaFoundLaPt"," Reconstructed Mass vs Eta for reconstructed MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
570 fHistMcEtaFoundLbPt = new TH2F("fHistMcEtaFoundLbPt"," Reconstructed Mass vs Eta for reconstructed MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
571 fHistMcEtaAFoundK0Pt = new TH2F("fHistMcEtaAFoundK0Pt"," Reconstructed Mass vs Eta for reconstructed MC primary K0Short; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
572
573 fHistRapLaPt = new TH2F("fHistRapLaPt"," Reconstructed Mass vs Rap for Lambda Candidates; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
574 fHistRapLbPt = new TH2F("fHistRapLbPt"," Reconstructed Mass vs Rap for AntiLambda Candidates; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
575 fHistRapK0Pt = new TH2F("fHistRapK0Pt"," Reconstructed Mass vs Rap for K0Short Candidates; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
576 fHistMcRapAllLaPt = new TH2F("fHistMcRapAllLaPt"," Reconstructed Mass vs Rap for all MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
577 fHistMcRapAllLbPt = new TH2F("fHistMcRapAllLbPt"," Reconstructed Mass vs Rap for all MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
578 fHistMcRapAllK0Pt = new TH2F("fHistMcRapAllK0Pt"," Reconstructed Mass vs Rap for all MC primary K0Short; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
579 fHistMcRapFoundLaPt = new TH2F("fHistMcRapFoundLaPt"," Reconstructed Mass vs Rap for reconstructed MC primary Lambda; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
580 fHistMcRapFoundLbPt = new TH2F("fHistMcRapFoundLbPt"," Reconstructed Mass vs Rap for reconstructed MC primary AntiLambda; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
581 fHistMcRapAFoundK0Pt = new TH2F("fHistMcRapAFoundK0Pt"," Reconstructed Mass vs Rap for reconstructed MC primary K0Short; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
582
583
584
585 // NEW HISTO should be defined here, with a sensible name,
586
587 fOutput->Add(fHistPt);
588 fOutput->Add(fHistEta);
589 fOutput->Add(fHistLog);
590 fOutput->Add(fHistNV0);
591 fOutput->Add(fHistZVertex);
592 fOutput->Add(fHistMCZVertex);
593 fOutput->Add(fHistCentrality);
594
595 fOutput->Add(fHistBBK0Pos);
596 fOutput->Add(fHistBBK0Neg);
597 fOutput->Add(fHistBBLaPos);
598 fOutput->Add(fHistBBLaNeg);
599 fOutput->Add(fHistBBLbPos);
600 fOutput->Add(fHistBBLbNeg);
484c6e75 601 fOutput->Add(fHistArmPodK0);
602 fOutput->Add(fHistArmPodLa);
603 fOutput->Add(fHistArmPodLb);
12ca6c45 604
605 fOutput->Add(fHistBB3SigProton);
606 fOutput->Add(fHistMK0Pt);
607 fOutput->Add(fHistMLaPt);
608 fOutput->Add(fHistMLbPt);
609 fOutput->Add(fHistMcPMK0Pt);
610 fOutput->Add(fHistMcPMLaPt);
611 fOutput->Add(fHistMcPMLbPt);
612
613 fOutput->Add(fHistMcFMLaPt);
614
615 fOutput->Add(fHistMK0PtCent0005);
616 fOutput->Add(fHistMLaPtCent0005);
617 fOutput->Add(fHistMLbPtCent0005);
618 fOutput->Add(fHistMcPMK0PtCent0005);
619 fOutput->Add(fHistMcPMLaPtCent0005);
620 fOutput->Add(fHistMcPMLbPtCent0005);
621 fOutput->Add(fHistZVertexCent0005);
622 fOutput->Add(fHistMCZVertexCent0005);
623
624 fOutput->Add(fHistMK0PtCent0510);
625 fOutput->Add(fHistMLaPtCent0510);
626 fOutput->Add(fHistMLbPtCent0510);
627 fOutput->Add(fHistMcPMK0PtCent0510);
628 fOutput->Add(fHistMcPMLaPtCent0510);
629 fOutput->Add(fHistMcPMLbPtCent0510);
630 fOutput->Add(fHistZVertexCent0510);
631 fOutput->Add(fHistMCZVertexCent0510);
632
633 fOutput->Add(fHistMK0PtCent1020);
634 fOutput->Add(fHistMLaPtCent1020);
635 fOutput->Add(fHistMLbPtCent1020);
636 fOutput->Add(fHistMcPMK0PtCent1020);
637 fOutput->Add(fHistMcPMLaPtCent1020);
638 fOutput->Add(fHistMcPMLbPtCent1020);
639 fOutput->Add(fHistZVertexCent1020);
640 fOutput->Add(fHistMCZVertexCent1020);
641
642 fOutput->Add(fHistMK0PtCent2040);
643 fOutput->Add(fHistMLaPtCent2040);
644 fOutput->Add(fHistMLbPtCent2040);
645 fOutput->Add(fHistMcPMK0PtCent2040);
646 fOutput->Add(fHistMcPMLaPtCent2040);
647 fOutput->Add(fHistMcPMLbPtCent2040);
648 fOutput->Add(fHistZVertexCent2040);
649 fOutput->Add(fHistMCZVertexCent2040);
650
651 fOutput->Add(fHistMK0PtCent4060);
652 fOutput->Add(fHistMLaPtCent4060);
653 fOutput->Add(fHistMLbPtCent4060);
654 fOutput->Add(fHistMcPMK0PtCent4060);
655 fOutput->Add(fHistMcPMLaPtCent4060);
656 fOutput->Add(fHistMcPMLbPtCent4060);
657 fOutput->Add(fHistZVertexCent4060);
658 fOutput->Add(fHistMCZVertexCent4060);
659
660 fOutput->Add(fHistMK0PtCent6090);
661 fOutput->Add(fHistMLaPtCent6090);
662 fOutput->Add(fHistMLbPtCent6090);
663 fOutput->Add(fHistMcPMK0PtCent6090);
664 fOutput->Add(fHistMcPMLaPtCent6090);
665 fOutput->Add(fHistMcPMLbPtCent6090);
666 fOutput->Add(fHistZVertexCent6090);
667 fOutput->Add(fHistMCZVertexCent6090);
668
669 fOutput->Add(fHistMK0PtCent0090);
670 fOutput->Add(fHistMLaPtCent0090);
671 fOutput->Add(fHistMLbPtCent0090);
672 fOutput->Add(fHistMcPMK0PtCent0090);
673 fOutput->Add(fHistMcPMLaPtCent0090);
674 fOutput->Add(fHistMcPMLbPtCent0090);
675 fOutput->Add(fHistZVertexCent0090);
676 fOutput->Add(fHistMCZVertexCent0090);
677
678 fOutput->Add(fHistCosPaLaPt);
679 fOutput->Add(fHistCosPaLbPt);
680 fOutput->Add(fHistCosPaK0Pt);
681 fOutput->Add(fHistMcCosPaAllLaPt);
682 fOutput->Add(fHistMcCosPaAllLbPt);
683 fOutput->Add(fHistMcCosPaAllK0Pt);
684 fOutput->Add(fHistMcCosPaFoundLaPt);
685 fOutput->Add(fHistMcCosPaFoundLbPt);
686 fOutput->Add(fHistMcCosPaAFoundK0Pt);
687
688 fOutput->Add(fHistcTauLaPt);
689 fOutput->Add(fHistcTauLbPt);
690 fOutput->Add(fHistcTauK0Pt);
691 fOutput->Add(fHistMccTauAllLaPt);
692 fOutput->Add(fHistMccTauAllLbPt);
693 fOutput->Add(fHistMccTauAllK0Pt);
694 fOutput->Add(fHistMccTauFoundLaPt);
695 fOutput->Add(fHistMccTauFoundLbPt);
696 fOutput->Add(fHistMccTauAFoundK0Pt);
697
698 fOutput->Add(fHistDcaLaPt);
699 fOutput->Add(fHistDcaLbPt);
700 fOutput->Add(fHistDcaK0Pt);
701 fOutput->Add(fHistMcDcaAllLaPt);
702 fOutput->Add(fHistMcDcaAllLbPt);
703 fOutput->Add(fHistMcDcaAllK0Pt);
704 fOutput->Add(fHistMcDcaFoundLaPt);
705 fOutput->Add(fHistMcDcaFoundLbPt);
706 fOutput->Add(fHistMcDcaAFoundK0Pt);
707
708 fOutput->Add(fHistNSigmaLaPt);
709 fOutput->Add(fHistNSigmaLbPt);
710 fOutput->Add(fHistNSigmaK0Pt);
711 fOutput->Add(fHistMcNSigmaAllLaPt);
712 fOutput->Add(fHistMcNSigmaAllLbPt);
713 fOutput->Add(fHistMcNSigmaAllK0Pt);
714 fOutput->Add(fHistMcNSigmaFoundLaPt);
715 fOutput->Add(fHistMcNSigmaFoundLbPt);
716 fOutput->Add(fHistMcNSigmaAFoundK0Pt);
717
718 fOutput->Add(fHistEtaLaPt);
719 fOutput->Add(fHistEtaLbPt);
720 fOutput->Add(fHistEtaK0Pt);
721 fOutput->Add(fHistMcEtaAllLaPt);
722 fOutput->Add(fHistMcEtaAllLbPt);
723 fOutput->Add(fHistMcEtaAllK0Pt);
724 fOutput->Add(fHistMcEtaFoundLaPt);
725 fOutput->Add(fHistMcEtaFoundLbPt);
726 fOutput->Add(fHistMcEtaAFoundK0Pt);
727
728 fOutput->Add(fHistRapLaPt);
729 fOutput->Add(fHistRapLbPt);
730 fOutput->Add(fHistRapK0Pt);
731 fOutput->Add(fHistMcRapAllLaPt);
732 fOutput->Add(fHistMcRapAllLbPt);
733 fOutput->Add(fHistMcRapAllK0Pt);
734 fOutput->Add(fHistMcRapFoundLaPt);
735 fOutput->Add(fHistMcRapFoundLbPt);
736 fOutput->Add(fHistMcRapAFoundK0Pt);
737
738 // NEW HISTO added to fOutput here
739 PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
740}
741
742//________________________________________________________________________
bbfb6fac 743
12ca6c45 744static Bool_t AcceptTrack(const AliAODTrack *t, double cutMinNClustersTPC, double cutRatio)
745{
746 if (!t->IsOn(AliAODTrack::kTPCrefit)) return kFALSE;
747 //if (t->GetKinkIndex(0)>0) return kFALSE;
748
bbfb6fac 749 Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1);
12ca6c45 750 if (nCrossedRowsTPC < cutMinNClustersTPC) return kFALSE;
bbfb6fac 751 Int_t findable=t->GetTPCNclsF();
12ca6c45 752 if (findable <= 0) return kFALSE;
bbfb6fac 753 if (nCrossedRowsTPC/findable < cutRatio) return kFALSE;
12ca6c45 754
755 return kTRUE;
756}
757
758//________________________________________________________________________
12ca6c45 759static Bool_t AcceptV0_general(const AliAODv0 *v1, const AliAODEvent *aod, double cutCosPa, double cutNImpact, double cutDCA, double cutEta, double cutMinNClustersTPC, double cutRatio)
760{
761
762 if (v1->GetOnFlyStatus()) return kFALSE;
763
12ca6c45 764 int nnum = 1, pnum = 0;
765 const AliAODTrack *ntracktest=(AliAODTrack *)v1->GetDaughter(nnum);
766 if(ntracktest->Charge() > 0){nnum = 0; pnum = 1;}
767
768 const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(nnum);
769 if (!AcceptTrack(ntrack1, cutMinNClustersTPC, cutRatio)) return kFALSE;
770
771 const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(pnum);
772 if (!AcceptTrack(ptrack1, cutMinNClustersTPC, cutRatio)) return kFALSE;
773
12ca6c45 774 Float_t impact=v1->DcaNegToPrimVertex();
775 if (TMath::Abs(impact)<0.1) return kFALSE;
776 if (TMath::Abs(impact)<cutNImpact && cutNImpact != -999) return kFALSE;
777 impact=v1->DcaPosToPrimVertex();
778 if (TMath::Abs(impact)<0.1) return kFALSE;
779 if (TMath::Abs(impact)<cutNImpact && cutNImpact != -999) return kFALSE;
780
12ca6c45 781 Double_t dca=v1->DcaV0Daughters();
782 if (TMath::Abs(dca)>cutDCA && cutDCA != -999) return kFALSE;
783
12ca6c45 784 Double_t cpa=v1->CosPointingAngle(aod->GetPrimaryVertex());
785 if (cpa<cutCosPa && cutCosPa != -999) return kFALSE;
786
12ca6c45 787 Double_t etaN = v1->PseudoRapNeg();
788 Double_t etaP = v1->PseudoRapPos();
789 if ((TMath::Abs(etaN)>cutEta || TMath::Abs(etaP)>cutEta) && cutEta != -999) return kFALSE;
790
791 return kTRUE;
792}
793
794//________________________________________________________________________
12ca6c45 795static Bool_t AcceptV0_particle(const AliAODv0 *v1, int type, double cutcTau, double cutRapidity, Double_t decayL)
796{
bbfb6fac 797
12ca6c45 798 Double_t cTau = 0;
799 if(type == 1)
800 {cTau = decayL*(v1->MassLambda())/(v1->P());}
801 if(type == 2)
802 {cTau = decayL*(v1->MassAntiLambda())/(v1->P());}
803 if(type == 0)
804 {cTau = decayL*(v1->MassK0Short())/(v1->P());}
805
806 if (cTau < cutcTau && cTau != -999 ) return kFALSE;
807
12ca6c45 808 Double_t rap = 0;
809 if(type == 1 || type == 2)
810 {rap = v1->RapLambda();}
811 if(type == 0)
812 {rap = v1->RapK0Short();}
813 if (TMath::Abs(rap)>cutRapidity && cutRapidity != -999) return kFALSE;
814
815 return kTRUE;
816}
817
818//________________________________________________________________________
bbfb6fac 819static Bool_t AcceptV0_lowpt(const AliAODv0 *v1, AliPIDResponse *PIDResponse,int type, double cutBetheBloch, Double_t decayL, bool isMonteCarlo)
12ca6c45 820{
821
bbfb6fac 822
12ca6c45 823 Double_t cTau = 0;
824 if(type == 1)
825 {cTau = decayL*(v1->MassLambda())/(v1->P());}
826 if(type == 2)
827 {cTau = decayL*(v1->MassAntiLambda())/(v1->P());}
828 if(type == 0)
829 {cTau = decayL*(v1->MassK0Short())/(v1->P());}
830
484c6e75 831 if (cTau > (3*7.89) && (type ==1 || type ==2)) return kFALSE;
832 if (cTau > (3*2.68) && (type ==0)) return kFALSE;
12ca6c45 833
12ca6c45 834 int nnum = 1, pnum = 0;
835 const AliAODTrack *ntracktest=(AliAODTrack *)v1->GetDaughter(nnum);
836 if(ntracktest->Charge() > 0){nnum = 0; pnum = 1;}
837
838 const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(nnum);
839 const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(pnum);
840
841 Double_t nsig_p = 0;
842 Double_t nsig_n = 0;
843
844 const AliAODPid *pid_p=ptrack1->GetDetPid();
845 const AliAODPid *pid_n=ntrack1->GetDetPid();
846
847 if (pid_p)
848 {
849 if(type == 1)
484c6e75 850 {
851 nsig_p=PIDResponse->NumberOfSigmasTPC(ptrack1,AliPID::kProton);
852 if (TMath::Abs(nsig_p) > cutBetheBloch && cutBetheBloch >0 && !isMonteCarlo && ptrack1->P() <= 1) return kFALSE;
853 }
12ca6c45 854
484c6e75 855 if(type == 2)
856 {
857 nsig_p=PIDResponse->NumberOfSigmasTPC(ptrack1,AliPID::kProton);
858 if (TMath::Abs(nsig_p) <= cutBetheBloch && cutBetheBloch >0 && !isMonteCarlo && ptrack1->P() <= 1) return kFALSE;
859 }
860
12ca6c45 861 }
862
863 if (pid_n)
864 {
865 if(type == 2)
484c6e75 866 {
867 nsig_n=PIDResponse->NumberOfSigmasTPC(ntrack1,AliPID::kProton);
868 if (TMath::Abs(nsig_n) > cutBetheBloch && cutBetheBloch >0 && !isMonteCarlo && ntrack1->P() <= 1) return kFALSE;
869 }
12ca6c45 870
484c6e75 871 if(type == 1)
872 {
873 nsig_n=PIDResponse->NumberOfSigmasTPC(ntrack1,AliPID::kProton);
874 if (TMath::Abs(nsig_n) <= cutBetheBloch && cutBetheBloch >0 && !isMonteCarlo && ntrack1->P() <= 1) return kFALSE;
875 }
876
877
12ca6c45 878 }
879
880 return kTRUE;
881}
882
883
884//________________________________________________________________________
8a7cb9cc 885void AliAnalysisTaskLukeAOD::UserExec(Option_t *)
12ca6c45 886{
887 // Main loop
888 // Called for each event
889
890 fHistLog->Fill(1);
891
892 // parameters used for most cuts, to minimise editing
484c6e75 893 double cutCosPa(0.998), cutcTau(-999);
894 double cutNImpact(-999), cutDCA(-999);
bbfb6fac 895 double cutBetheBloch(3); // NOTE - BB cut only applies to data, must be accounted for when constructing corrected yields
12ca6c45 896 double cutMinNClustersTPC(70), cutRatio(0.8);
484c6e75 897 bool isMonteCarlo(false);
898 int isMCtype(0); //1 = Pure Hijing only, 0 = Anything, -1 = Injected only
11d8f775 899 double cutEta(0.8), cutRapidity(0.5), cutArmenteros(0.2);
12ca6c45 900
901 // Create pointer to reconstructed event
902 AliAODEvent *aod=(AliAODEvent *)InputEvent();
903 if (!aod)
904 {
905 Printf("ERROR: aod not available");
906 fHistLog->Fill(98);
907 return;
908 }
909
bbfb6fac 910
12ca6c45 911 //Bool_t isSelected = (maskIsSelected && AliVEvent::kMB);
912 /*if (!isSelected)
913 {
914 Printf("ERROR: failed physics selection");
915 fHistLog->Fill(88);
916 return;
917 }*/
918
12ca6c45 919 AliCentrality* centrality = aod->GetCentrality();
920 Double_t centPercentile = centrality->GetCentralityPercentile("V0M");
921 fHistCentrality->Fill(centPercentile);
922
923 /********MC Loop************************************/
924
bbfb6fac 925 int isInjected = -1;
926
12ca6c45 927 if(isMonteCarlo)
928 {
929
930 // Create pointer to reconstructed event
931 TList *list = aod->GetList();
932 TClonesArray *stack = 0x0;
933 stack = (TClonesArray*)list->FindObject(AliAODMCParticle::StdBranchName());
934 if (!stack) {
935 Printf("ERROR: stack not available");
936 fHistLog->Fill(84);
937 }
938 else{
939
940 AliAODMCHeader *mcHdr=(AliAODMCHeader*)list->FindObject(AliAODMCHeader::StdBranchName());
941
12ca6c45 942 Double_t mcXv=0., mcYv=0., mcZv=0.;
943 mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ();
944 if (TMath::Abs(mcZv) > 10.)
945 {
946 fHistLog->Fill(76);
947 }
948 else{
12ca6c45 949 fHistMCZVertex->Fill(mcZv);
950
951 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
952 {fHistMCZVertexCent0005->Fill(mcZv);}
953 if(centPercentile > 5.0 && centPercentile <= 10.0)
954 {fHistMCZVertexCent0510->Fill(mcZv);}
955 if(centPercentile > 10.0 && centPercentile <= 20.0)
956 {fHistMCZVertexCent1020->Fill(mcZv);}
957 if(centPercentile > 20.0 && centPercentile <= 40.0)
958 {fHistMCZVertexCent2040->Fill(mcZv);}
959 if(centPercentile > 40.0 && centPercentile <= 60.0)
960 {fHistMCZVertexCent4060->Fill(mcZv);}
961 if(centPercentile > 60.0 && centPercentile <= 90.0)
962 {fHistMCZVertexCent6090->Fill(mcZv);}
963 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
964 {fHistMCZVertexCent0090->Fill(mcZv);}
965
966
967 Int_t ntrk=stack->GetEntriesFast(), ntrk0=ntrk;
968
969 for(int iMCtrack = 0; iMCtrack<ntrk0; iMCtrack++)
970
971 {
bbfb6fac 972
12ca6c45 973 //booleans to check if track is La, Lb, K0 and primary
974 bool lambdaMC = false;
975 bool antilambdaMC = false;
976 bool kshortMC = false;
977 bool isprimaryMC = false;
978
979 AliAODMCParticle *mcPart =(AliAODMCParticle*)stack->UncheckedAt(iMCtrack);
980
bbfb6fac 981 if ((mcPart->GetStatus() == 21) || (mcPart->GetPdgCode() == 443 && mcPart->GetMother() == -1))
982 {
983 isInjected = iMCtrack;
984 }
985
986 if(isInjected >= 0 && isMCtype == 1)
987 {continue;}
988 if(isInjected < 0 && isMCtype == -1)
989 {continue;}
990
12ca6c45 991 Int_t code=mcPart->GetPdgCode();
992 if (code != kK0Short && code != kLambda0 && code != kLambda0Bar )
993 {continue;}
994
995 if(code == kLambda0)
996 {
997 lambdaMC = true;
998 }
999 else if(code == kK0Short)
1000 {
1001 kshortMC = true;
1002 }
1003 else if(code == kLambda0Bar)
1004 {
1005 antilambdaMC = true;
1006 }
1007
1008
1009 Int_t motherLabel = mcPart->GetMother();
1010 AliAODMCParticle *mcMother = (AliAODMCParticle *)stack->UncheckedAt(motherLabel);
1011 Int_t motherType = -1;
1012 if(motherLabel >= 0)
1013 {motherType = mcMother->GetPdgCode();}
1014
bbfb6fac 1015 // this block of code is used to include primary Sigma0 decays as primary lambda/antilambda
12ca6c45 1016 bool sigma0MC = false;
bbfb6fac 1017 if(motherType == 3212 || motherType == -3212)// || motherType == 3322 || motherType == -3322 || motherType == 3312 || motherType == -3312)
12ca6c45 1018 {
1019 if(mcMother->IsPhysicalPrimary())
1020 {sigma0MC = true;}
1021 }
1022
1023 Double_t dz=mcZv - mcPart->Zv(), dy=mcYv - mcPart->Yv(), dx=mcXv - mcPart->Xv();
1024 Double_t mcDecayLength = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
1025 Double_t mccTau = mcDecayLength*(mcPart->M())/(mcPart->P());
1026 Double_t mcCosPA = (dx*mcPart->Px()+dy*mcPart->Py()+dz*mcPart->Pz())/(mcDecayLength*mcPart->P());
1027
1028 if(mcPart->IsPhysicalPrimary() || sigma0MC)
1029 {
1030 isprimaryMC = true;
1031 if(lambdaMC)
1032 {
1033 if(TMath::Abs(mcPart->Y())<=cutRapidity)
1034 {
1035 fHistMcPMLaPt->Fill(mcPart->Pt(),mcPart->M());
1036
1037 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1038 {fHistMcPMLaPtCent0005->Fill(mcPart->Pt(),mcPart->M());}
1039 if(centPercentile > 5.0 && centPercentile <= 10.0)
1040 {fHistMcPMLaPtCent0510->Fill(mcPart->Pt(),mcPart->M());}
1041 if(centPercentile > 10.0 && centPercentile <= 20.0)
1042 {fHistMcPMLaPtCent1020->Fill(mcPart->Pt(),mcPart->M());}
1043 if(centPercentile > 20.0 && centPercentile <= 40.0)
1044 {fHistMcPMLaPtCent2040->Fill(mcPart->Pt(),mcPart->M());}
1045 if(centPercentile > 40.0 && centPercentile <= 60.0)
1046 {fHistMcPMLaPtCent4060->Fill(mcPart->Pt(),mcPart->M());}
1047 if(centPercentile > 60.0 && centPercentile <= 90.0)
1048 {fHistMcPMLaPtCent6090->Fill(mcPart->Pt(),mcPart->M());}
1049 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1050 {fHistMcPMLaPtCent0090->Fill(mcPart->Pt(),mcPart->M());}
1051
1052 fHistMcCosPaAllLaPt->Fill(mcCosPA,mcPart->M());
1053 fHistMccTauAllLaPt->Fill(mccTau,mcPart->M());
1054 fHistMcDcaAllLaPt->Fill(mcDecayLength,mcPart->M());
1055 fHistMcNSigmaAllLaPt->Fill(1.0,mcPart->M());
1056 fHistMcEtaAllLaPt->Fill(mcPart->Eta(),mcPart->M());
1057 fHistMcRapAllLaPt->Fill(mcPart->Y(),mcPart->M());
1058 }
1059 }
1060 if(antilambdaMC)
1061 {
1062 if(TMath::Abs(mcPart->Y())<=cutRapidity)
1063 {
1064 fHistMcPMLbPt->Fill(mcPart->Pt(),mcPart->M());
1065
1066 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1067 {fHistMcPMLbPtCent0005->Fill(mcPart->Pt(),mcPart->M());}
1068 if(centPercentile > 5.0 && centPercentile <= 10.0)
1069 {fHistMcPMLbPtCent0510->Fill(mcPart->Pt(),mcPart->M());}
1070 if(centPercentile > 10.0 && centPercentile <= 20.0)
1071 {fHistMcPMLbPtCent1020->Fill(mcPart->Pt(),mcPart->M());}
1072 if(centPercentile > 20.0 && centPercentile <= 40.0)
1073 {fHistMcPMLbPtCent2040->Fill(mcPart->Pt(),mcPart->M());}
1074 if(centPercentile > 40.0 && centPercentile <= 60.0)
1075 {fHistMcPMLbPtCent4060->Fill(mcPart->Pt(),mcPart->M());}
1076 if(centPercentile > 60.0 && centPercentile <= 90.0)
1077 {fHistMcPMLbPtCent6090->Fill(mcPart->Pt(),mcPart->M());}
1078 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1079 {fHistMcPMLbPtCent0090->Fill(mcPart->Pt(),mcPart->M());}
1080
1081 fHistMcCosPaAllLbPt->Fill(mcCosPA,mcPart->M());
1082 fHistMccTauAllLbPt->Fill(mccTau,mcPart->M());
1083 fHistMcDcaAllLbPt->Fill(mcDecayLength,mcPart->M());
1084 fHistMcNSigmaAllLbPt->Fill(1.0,mcPart->M());
1085 fHistMcEtaAllLbPt->Fill(mcPart->Eta(),mcPart->M());
1086 fHistMcRapAllLbPt->Fill(mcPart->Y(),mcPart->M());
1087
1088 }
1089 }
1090 if(kshortMC)
1091 {
1092 if(TMath::Abs(mcPart->Y())<=cutRapidity)
1093 {
1094 fHistMcPMK0Pt->Fill(mcPart->Pt(),mcPart->M());
1095
1096 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1097 {fHistMcPMK0PtCent0005->Fill(mcPart->Pt(),mcPart->M());}
1098 if(centPercentile > 5.0 && centPercentile <= 10.0)
1099 {fHistMcPMK0PtCent0510->Fill(mcPart->Pt(),mcPart->M());}
1100 if(centPercentile > 10.0 && centPercentile <= 20.0)
1101 {fHistMcPMK0PtCent1020->Fill(mcPart->Pt(),mcPart->M());}
1102 if(centPercentile > 20.0 && centPercentile <= 40.0)
1103 {fHistMcPMK0PtCent2040->Fill(mcPart->Pt(),mcPart->M());}
1104 if(centPercentile > 40.0 && centPercentile <= 60.0)
1105 {fHistMcPMK0PtCent4060->Fill(mcPart->Pt(),mcPart->M());}
1106 if(centPercentile > 60.0 && centPercentile <= 90.0)
1107 {fHistMcPMK0PtCent6090->Fill(mcPart->Pt(),mcPart->M());}
1108 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1109 {fHistMcPMK0PtCent0090->Fill(mcPart->Pt(),mcPart->M());}
1110
1111 fHistMcCosPaAllK0Pt->Fill(mcCosPA,mcPart->M());
1112 fHistMccTauAllK0Pt->Fill(mccTau,mcPart->M());
1113 fHistMcDcaAllK0Pt->Fill(mcDecayLength,mcPart->M());
1114 fHistMcNSigmaAllK0Pt->Fill(1.0,mcPart->M());
1115 fHistMcEtaAllK0Pt->Fill(mcPart->Eta(),mcPart->M());
1116 fHistMcRapAllK0Pt->Fill(mcPart->Y(),mcPart->M());
1117
1118 }
1119 }
1120 }
1121
1122
1123
1124 }
1125
1126 }
1127 }
1128 }
1129
1130 /********End of MC************************************/
1131
1132 // Find vertex, check if its good
1133 const AliAODVertex *vtx=aod->GetPrimaryVertex();
1134
1135 if (!vtx)
1136 {
1137 fHistLog->Fill(97);
1138 return;
1139 }
1140
1141
1142 if (vtx->GetNContributors()<3)
1143 {
1144 fHistLog->Fill(vtx->GetNContributors()+20);
1145 fHistLog->Fill(97);
1146 return;
1147 }
1148
12ca6c45 1149 Double_t zv=vtx->GetZ(), xv=vtx->GetX(), yv=vtx->GetY();
1150
1151 if (TMath::Abs(zv) > 10.)
1152 {
1153 fHistLog->Fill(96);
1154 return;
1155 }
1156
1157 fHistZVertex->Fill(zv);
1158
12ca6c45 1159 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1160 {fHistZVertexCent0005->Fill(zv);}
1161 if(centPercentile > 5.0 && centPercentile <= 10.0)
1162 {fHistZVertexCent0510->Fill(zv);}
1163 if(centPercentile > 10.0 && centPercentile <= 20.0)
1164 {fHistZVertexCent1020->Fill(zv);}
1165 if(centPercentile > 20.0 && centPercentile <= 40.0)
1166 {fHistZVertexCent2040->Fill(zv);}
1167 if(centPercentile > 40.0 && centPercentile <= 60.0)
1168 {fHistZVertexCent4060->Fill(zv);}
1169 if(centPercentile > 60.0 && centPercentile <= 90.0)
1170 {fHistZVertexCent6090->Fill(zv);}
1171 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1172 {fHistZVertexCent0090->Fill(zv);}
1173
1174 /********V0 loop for reconstructed event************************************/
1175
1176 Int_t nv0s = aod->GetNumberOfV0s();
1177 fHistNV0->Fill(nv0s);
1178
1179 for(Int_t i = 0; i < nv0s; i++)
1180 {
1181 fHistLog->Fill(7);
1182 AliAODv0 *v0=aod->GetV0(i); // pointer to reconstructed v0
1183 if(!v0)
1184 {
1185 //Printf("No V0 ");
1186 fHistLog->Fill(94);
1187 continue;
1188 }
1189
12ca6c45 1190 Bool_t lambdaCandidate = kTRUE;
1191 Bool_t antilambdaCandidate = kTRUE;
1192 Bool_t k0Candidate = kTRUE;
1193
12ca6c45 1194 if (v0->MassLambda() < 1.08 || v0->MassLambda() > 1.2)
1195 {lambdaCandidate = kFALSE;}
1196 if (v0->MassAntiLambda() < 1.08 || v0->MassAntiLambda() > 1.2)
1197 {antilambdaCandidate = kFALSE;}
1198 if (v0->MassK0Short() < 0.414 || v0->MassK0Short() > 0.582)
1199 {k0Candidate = kFALSE;}
1200
12ca6c45 1201 if(lambdaCandidate == kFALSE && antilambdaCandidate == kFALSE && k0Candidate == kFALSE)
1202 {continue;}
1203
12ca6c45 1204 Double_t cosPA=v0->CosPointingAngle(aod->GetPrimaryVertex());
1205 Double_t xyz[3];
1206 v0->GetSecondaryVtx(xyz);
1207 Double_t decayL = TMath::Sqrt((xyz[0]-xv)*(xyz[0]-xv)+(xyz[1]-yv)*(xyz[1]-yv)+(xyz[2]-zv)*(xyz[2]-zv));
1208 Double_t dca=v0->DcaV0Daughters();
1209 Double_t eta=v0->PseudoRapV0();
1210
12ca6c45 1211 if(!AcceptV0_general(v0,aod,cutCosPa,cutNImpact,cutDCA,cutEta,cutMinNClustersTPC, cutRatio))
1212 {
1213 fHistLog->Fill(86);
1214 continue;
1215 }
1216
12ca6c45 1217 int nnum = 1, pnum = 0;
1218 const AliAODTrack *ntracktest=(AliAODTrack *)v0->GetDaughter(nnum);
1219 if(ntracktest->Charge() > 0){nnum = 0; pnum = 1;}
1220
1221 const AliAODTrack *ntrack1=(AliAODTrack *)v0->GetDaughter(nnum);
1222 const AliAODTrack *ptrack1=(AliAODTrack *)v0->GetDaughter(pnum);
1223 if(ntrack1->Charge()>0)
1224 {
1225 fHistLog->Fill(55);
1226 }
1227 if(ntrack1->Charge()==0)
1228 {
1229 fHistLog->Fill(50);
1230 }
1231 if(ntrack1->Charge()<0)
1232 {
1233 fHistLog->Fill(45);
1234 }
12ca6c45 1235 const AliAODPid *pid_p1=ptrack1->GetDetPid();
1236 const AliAODPid *pid_n1=ntrack1->GetDetPid();
bbfb6fac 1237
1238
1239 /*if(peterCuts)
1240 {
1241 const AliAODTrack *ptrack1=(AliAODTrack *)v0->GetDaughter(0);
1242 if(ntrack1->Pt() < 0.160 || ptrack1->Pt() < 0.160) continue;
1243
1244 Double_t r2=xyz[0]*xyz[0] + xyz[1]*xyz[1];
1245 Double_t radius = TMath::Sqrt(r2);
1246 if(radius <= 0.9 || radius >= 100) continue;
1247
1248 }*/
1249
12ca6c45 1250 if(!AcceptV0_particle(v0,1,cutcTau, cutRapidity, decayL))
1251 { lambdaCandidate = kFALSE; }
1252 if(!AcceptV0_particle(v0,2,cutcTau, cutRapidity, decayL))
1253 { antilambdaCandidate = kFALSE; }
1254 if(!AcceptV0_particle(v0,0,cutcTau, cutRapidity, decayL))
1255 { k0Candidate = kFALSE; }
1256
12ca6c45 1257 if(TMath::Sqrt(v0->Pt2V0())<2)
1258 {
bbfb6fac 1259 if(!AcceptV0_lowpt(v0,fPIDResponse,1,cutBetheBloch,decayL,isMonteCarlo))
12ca6c45 1260 { lambdaCandidate = kFALSE; }
bbfb6fac 1261 if(!AcceptV0_lowpt(v0,fPIDResponse,2,cutBetheBloch,decayL,isMonteCarlo))
12ca6c45 1262 { antilambdaCandidate = kFALSE; }
bbfb6fac 1263 if(!AcceptV0_lowpt(v0,fPIDResponse,0,cutBetheBloch,decayL,isMonteCarlo))
12ca6c45 1264 { k0Candidate = kFALSE; }
1265 }
1266
12ca6c45 1267 if(lambdaCandidate == kFALSE && antilambdaCandidate == kFALSE && k0Candidate == kFALSE)
1268 {continue;}
1269
bbfb6fac 1270 fHistLog->Fill(7);
1271 fHistPt->Fill(TMath::Sqrt(v0->Pt2V0()));
1272 fHistEta->Fill(v0->PseudoRapV0());
1273
12ca6c45 1274 bool feeddown = false;
1275
12ca6c45 1276 if(isMonteCarlo)
1277 {
12ca6c45 1278 bool passedTests = false;
12ca6c45 1279 TList *list = aod->GetList();
1280 TClonesArray *stack = 0x0;
1281 stack = (TClonesArray*)list->FindObject(AliAODMCParticle::StdBranchName());
1282 if (!stack)
1283 {
1284 Printf("ERROR: stack not available");
1285 fHistLog->Fill(84);
1286 }
1287 else
1288
bbfb6fac 1289 {
12ca6c45 1290 Int_t negAssLabel = TMath::Abs(ntrack1->GetLabel());
1291 if(negAssLabel>=0 && negAssLabel < stack->GetEntriesFast())
1292 {
1293 AliAODMCParticle *mcNegPart =(AliAODMCParticle*)stack->UncheckedAt(negAssLabel);
1294 Int_t v0Label = mcNegPart->GetMother();
1295 if(v0Label >= 0 && v0Label < stack->GetEntriesFast())
1296 {
1297 AliAODMCParticle *mcv0 = (AliAODMCParticle *)stack->UncheckedAt(v0Label);
1298 passedTests = true;
bbfb6fac 1299
1300 if ((v0Label >= isInjected && isInjected >= 0 && isMCtype == 1) || (v0Label < isInjected && isInjected >= 0 && isMCtype == -1))
1301 {
1302 lambdaCandidate = false;
1303 k0Candidate = false;
1304 antilambdaCandidate = false;
1305 }
1306
12ca6c45 1307 if(mcv0->GetPdgCode() != kLambda0)
1308 {
1309 lambdaCandidate = false;
1310 }
1311 if(mcv0->GetPdgCode() != kK0Short)
1312 {
1313 k0Candidate = false;
1314 }
1315 if(mcv0->GetPdgCode() != kLambda0Bar)
1316 {
1317 antilambdaCandidate = false;
1318 }
1319
1320 Int_t motherLabel = mcv0->GetMother();
1321 Int_t motherType = -1;
1322 bool sigma0MC2 = false;
1323
12ca6c45 1324 if(motherLabel >= 0 && v0Label < stack->GetEntriesFast() )
1325 {
1326 AliAODMCParticle *mcMother = (AliAODMCParticle *)stack->UncheckedAt(motherLabel);
1327 motherType = mcMother->GetPdgCode();
1328
1329 // this block of code is used to include primary Sigma0 decays as primary lambda/antilambda
1330
bbfb6fac 1331 if ((motherLabel >= isInjected && isInjected >= 0 && isMCtype == 1) || (motherLabel < isInjected && isInjected >= 0 && isMCtype == -1))
1332 {
1333 lambdaCandidate = false;
1334 k0Candidate = false;
1335 antilambdaCandidate = false;
1336 }
12ca6c45 1337 if(motherType == 3212 || motherType == -3212)
1338 {
1339 if(mcMother->IsPhysicalPrimary())
1340 {sigma0MC2 = true;}
1341 }
12ca6c45 1342 if(motherType == 3322 || motherType == -3322 || motherType == 3312 || motherType == -3312 )
1343 {
1344 if(mcMother->IsPhysicalPrimary())
1345 {feeddown = true;}
1346 }
1347 }
1348
12ca6c45 1349 if(!sigma0MC2 && !mcv0->IsPhysicalPrimary() && !feeddown)
1350 {
1351 lambdaCandidate = false;
1352 k0Candidate = false;
1353 antilambdaCandidate = false;
1354 }
1355 }
1356 }
1357 }
1358
12ca6c45 1359 if(passedTests == false)
1360 {
1361 lambdaCandidate = false;
1362 k0Candidate = false;
1363 antilambdaCandidate = false;
1364 }
1365
1366 }
1367
484c6e75 1368 double ArmenterosAlpha = v0->Alpha();
1369 double ArmenterosPt = v0->QtProng();
1370
1371 if(lambdaCandidate && centPercentile >= 0.0001 && centPercentile <= 90.0 &&!feeddown )
1372 { fHistArmPodLa->Fill(ArmenterosAlpha,ArmenterosPt); }
1373 if( antilambdaCandidate && centPercentile >= 0.0001 && centPercentile <= 90.0 &&!feeddown )
1374 { fHistArmPodLb->Fill(ArmenterosAlpha,ArmenterosPt); }
1375 if(k0Candidate && centPercentile >= 0.0001 && centPercentile <= 90.0 &&!feeddown )
1376 { fHistArmPodK0->Fill(ArmenterosAlpha,ArmenterosPt); }
12ca6c45 1377
c36344c8 1378 if( ArmenterosPt < TMath::Abs(cutArmenteros*ArmenterosAlpha) && cutArmenteros !=-999 )
484c6e75 1379 {k0Candidate = false;}
12ca6c45 1380
1381 if(lambdaCandidate)
1382 {
1383
1384 if(!feeddown)
1385 {
1386 fHistMLaPt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());
1387 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1388 {fHistMLaPtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1389 if(centPercentile > 5.0 && centPercentile <= 10.0)
1390 {fHistMLaPtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1391 if(centPercentile > 10.0 && centPercentile <= 20.0)
1392 {fHistMLaPtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1393 if(centPercentile > 20.0 && centPercentile <= 40.0)
1394 {fHistMLaPtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1395 if(centPercentile > 40.0 && centPercentile <= 60.0)
1396 {fHistMLaPtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1397 if(centPercentile > 60.0 && centPercentile <= 90.0)
1398 {fHistMLaPtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1399 }
1400
1401 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1402 {
1403 if(!feeddown)
1404 {
1405 fHistMLaPtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());
1406 fHistBBLaPos->Fill(pid_p1->GetTPCmomentum(),pid_p1->GetTPCsignal());
1407 fHistBBLaNeg->Fill(pid_n1->GetTPCmomentum(),pid_n1->GetTPCsignal());
1408 }
1409 if(feeddown)
1410 {fHistMcFMLaPt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1411 }
1412 if(!feeddown)
1413 {
1414 fHistCosPaLaPt->Fill(cosPA,v0->MassLambda());
1415 fHistcTauLaPt->Fill(decayL*(TMath::Sqrt(v0->Pt2V0()))/(v0->P()),v0->MassLambda());
1416 fHistDcaLaPt->Fill(dca,v0->MassLambda());
1417 fHistNSigmaLaPt->Fill(1.0,v0->MassLambda());
1418 fHistEtaLaPt->Fill(eta,v0->MassLambda());
1419 fHistRapLaPt->Fill(v0->RapLambda(),v0->MassLambda());
1420
1421
1422 if(isMonteCarlo)
1423 {
1424 fHistMcCosPaFoundLaPt->Fill(1.0,v0->MassLambda());
1425 fHistMccTauFoundLaPt->Fill(1.0,v0->MassLambda());
1426 fHistMcDcaFoundLaPt->Fill(1.0,v0->MassLambda());
1427 fHistMcNSigmaFoundLaPt->Fill(1.0,v0->MassLambda());
1428 fHistMcEtaFoundLaPt->Fill(1.0,v0->MassLambda());
1429 fHistMcRapFoundLaPt->Fill(1.0,v0->MassLambda());
1430 }
1431 }
1432
1433 }
1434 if(antilambdaCandidate)
1435 {
1436 if(!feeddown)
1437 {
1438 fHistMLbPt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());
1439
1440 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1441 {fHistMLbPtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1442 if(centPercentile > 5.0 && centPercentile <= 10.0)
1443 {fHistMLbPtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1444 if(centPercentile > 10.0 && centPercentile <= 20.0)
1445 {fHistMLbPtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1446 if(centPercentile > 20.0 && centPercentile <= 40.0)
1447 {fHistMLbPtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1448 if(centPercentile > 40.0 && centPercentile <= 60.0)
1449 {fHistMLbPtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1450 if(centPercentile > 60.0 && centPercentile <= 90.0)
1451 {fHistMLbPtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1452
1453 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1454 {
1455 fHistMLbPtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());
1456 fHistBBLbPos->Fill(pid_p1->GetTPCmomentum(),pid_p1->GetTPCsignal());
1457 fHistBBLbNeg->Fill(pid_n1->GetTPCmomentum(),pid_n1->GetTPCsignal());
1458 }
1459
1460
1461 fHistCosPaLbPt->Fill(cosPA,v0->MassAntiLambda());
1462 fHistcTauLbPt->Fill(decayL*(v0->MassAntiLambda())/(v0->P()),v0->MassAntiLambda());
1463 fHistDcaLbPt->Fill(dca,v0->MassAntiLambda());
1464 fHistNSigmaLbPt->Fill(1.0,v0->MassAntiLambda());
1465 fHistEtaLbPt->Fill(eta,v0->MassAntiLambda());
1466 fHistRapLbPt->Fill(v0->RapLambda(),v0->MassAntiLambda());
1467
1468 if(isMonteCarlo)
1469 {
1470 fHistMcCosPaFoundLbPt->Fill(1.0,v0->MassAntiLambda());
1471 fHistMccTauFoundLbPt->Fill(1.0,v0->MassAntiLambda());
1472 fHistMcDcaFoundLbPt->Fill(1.0,v0->MassAntiLambda());
1473 fHistMcNSigmaFoundLbPt->Fill(1.0,v0->MassAntiLambda());
1474 fHistMcEtaFoundLbPt->Fill(1.0,v0->MassAntiLambda());
1475 fHistMcRapFoundLbPt->Fill(1.0,v0->MassAntiLambda());
1476 }
1477 }
1478 }
1479 if(k0Candidate)
1480 {
1481 if(!feeddown)
1482 {
1483 fHistMK0Pt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());
1484
1485 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1486 {fHistMK0PtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1487 if(centPercentile > 5.0 && centPercentile <= 10.0)
1488 {fHistMK0PtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1489 if(centPercentile > 10.0 && centPercentile <= 20.0)
1490 {fHistMK0PtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1491 if(centPercentile > 20.0 && centPercentile <= 40.0)
1492 {fHistMK0PtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1493 if(centPercentile > 40.0 && centPercentile <= 60.0)
1494 {fHistMK0PtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1495 if(centPercentile > 60.0 && centPercentile <= 90.0)
1496 {fHistMK0PtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1497
1498 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1499 {
1500 fHistMK0PtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());
1501 fHistBBK0Pos->Fill(pid_p1->GetTPCmomentum(),pid_p1->GetTPCsignal());
1502 fHistBBK0Neg->Fill(pid_n1->GetTPCmomentum(),pid_n1->GetTPCsignal());
1503 }
1504
1505
1506 fHistCosPaK0Pt->Fill(cosPA,v0->MassK0Short());
1507 fHistcTauK0Pt->Fill(decayL*(v0->MassK0Short())/(v0->P()),v0->MassK0Short());
1508 fHistDcaK0Pt->Fill(dca,v0->MassK0Short());
1509 fHistNSigmaK0Pt->Fill(1.0,v0->MassK0Short());
1510 fHistEtaK0Pt->Fill(eta,v0->MassK0Short());
1511 fHistRapK0Pt->Fill(v0->RapK0Short(),v0->MassK0Short());
1512
1513 if(isMonteCarlo)
1514 {
1515 fHistMcCosPaAFoundK0Pt->Fill(1.0,v0->MassK0Short());
1516 fHistMccTauAFoundK0Pt->Fill(1.0,v0->MassK0Short());
1517 fHistMcDcaAFoundK0Pt->Fill(1.0,v0->MassK0Short());
1518 fHistMcNSigmaAFoundK0Pt->Fill(1.0,v0->MassK0Short());
1519 fHistMcEtaAFoundK0Pt->Fill(1.0,v0->MassK0Short());
1520 fHistMcRapAFoundK0Pt->Fill(1.0,v0->MassK0Short());
1521 }
1522 }
1523 }
1524 }
1525
bbfb6fac 1526 /********End of V0 loop for reconstructed event*****************************/
12ca6c45 1527
1528
1529
1530
1531 fHistLog->Fill(9);
1532 // NEW HISTO should be filled before this point, as PostData puts the
1533 // information for this iteration of the UserExec in the container
1534 PostData(1, fOutput);
1535}
1536
1537
1538//________________________________________________________________________
8a7cb9cc 1539void AliAnalysisTaskLukeAOD::Terminate(Option_t *)
12ca6c45 1540{
1541 // Draw result to screen, or perform fitting, normalizations
1542 // Called once at the end of the query
1543
1544 fOutput = dynamic_cast<TList*> (GetOutputData(1));
1545 if(!fOutput) { Printf("ERROR: could not retrieve TList fOutput"); return; }
1546
1547 fHistPt = dynamic_cast<TH1F*> (fOutput->FindObject("fHistPt"));
1548 if (!fHistPt) { Printf("ERROR: could not retrieve fHistPt"); return;}
1549 fHistEta = dynamic_cast<TH1F*> (fOutput->FindObject("fHistEta"));
1550 if (!fHistEta) { Printf("ERROR: could not retrieve fHistEta"); return;}
1551
1552 // Get the physics selection histograms with the selection statistics
1553 //AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
1554 //AliESDInputHandler *inputH = dynamic_cast<AliESDInputHandler*>(mgr->GetInputEventHandler());
1555 //TH2F *histStat = (TH2F*)inputH->GetStatistics();
1556
1557
1558 // NEW HISTO should be retrieved from the TList container in the above way,
1559 // so it is available to draw on a canvas such as below
1560
8a7cb9cc 1561 TCanvas *c = new TCanvas("AliAnalysisTaskLukeAOD","P_{T} & #eta",10,10,1020,510);
12ca6c45 1562 c->Divide(2,1);
1563 c->cd(1)->SetLogy();
1564 fHistPt->DrawCopy("E");
1565 c->cd(2);
1566 fHistEta->DrawCopy("E");
1567}