]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AliAnalysisTaskLukeAOD.cxx
An effective FD corretion
[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
60dfeffb 69:AliAnalysisTaskSE(),fIsMonteCarlo(false), fcutCosPa(0.998),fcutcTauMin(-999), fcutNcTauMax(3.0), fcutBetheBloch(3.0), fcutMinNClustersTPC(70), fcutRatio(0.8), fcutEta(0.8), fcutRapidity(0.5), fcutArmenteros(0.2),
12ca6c45 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),
87
88fHistBB3SigProton(0),
89fHistMK0Pt(0),
90fHistMLaPt(0),
91fHistMLbPt(0),
92fHistMcPMK0Pt(0),
93fHistMcPMLaPt(0),
94fHistMcPMLbPt(0),
95
96fHistMcFMLaPt(0),
97
98fHistMK0PtCent0005(0),
99fHistMLaPtCent0005(0),
100fHistMLbPtCent0005(0),
101fHistMcPMK0PtCent0005(0),
102fHistMcPMLaPtCent0005(0),
103fHistMcPMLbPtCent0005(0),
5a4be586 104fHistMcAsMK0PtCent0005(0),
105fHistMcAsMLaPtCent0005(0),
106fHistMcAsMLbPtCent0005(0),
12ca6c45 107fHistZVertexCent0005(0),
108fHistMCZVertexCent0005(0),
109
110fHistMK0PtCent0510(0),
111fHistMLaPtCent0510(0),
112fHistMLbPtCent0510(0),
113fHistMcPMK0PtCent0510(0),
114fHistMcPMLaPtCent0510(0),
115fHistMcPMLbPtCent0510(0),
5a4be586 116fHistMcAsMK0PtCent0510(0),
117fHistMcAsMLaPtCent0510(0),
118fHistMcAsMLbPtCent0510(0),
12ca6c45 119fHistZVertexCent0510(0),
120fHistMCZVertexCent0510(0),
121
122fHistMK0PtCent1020(0),
123fHistMLaPtCent1020(0),
124fHistMLbPtCent1020(0),
125fHistMcPMK0PtCent1020(0),
126fHistMcPMLaPtCent1020(0),
127fHistMcPMLbPtCent1020(0),
5a4be586 128fHistMcAsMK0PtCent1020(0),
129fHistMcAsMLaPtCent1020(0),
130fHistMcAsMLbPtCent1020(0),
12ca6c45 131fHistZVertexCent1020(0),
132fHistMCZVertexCent1020(0),
133
134fHistMK0PtCent2040(0),
135fHistMLaPtCent2040(0),
136fHistMLbPtCent2040(0),
137fHistMcPMK0PtCent2040(0),
138fHistMcPMLaPtCent2040(0),
139fHistMcPMLbPtCent2040(0),
5a4be586 140fHistMcAsMK0PtCent2040(0),
141fHistMcAsMLaPtCent2040(0),
142fHistMcAsMLbPtCent2040(0),
12ca6c45 143fHistZVertexCent2040(0),
144fHistMCZVertexCent2040(0),
145
146fHistMK0PtCent4060(0),
147fHistMLaPtCent4060(0),
148fHistMLbPtCent4060(0),
149fHistMcPMK0PtCent4060(0),
150fHistMcPMLaPtCent4060(0),
151fHistMcPMLbPtCent4060(0),
5a4be586 152fHistMcAsMK0PtCent4060(0),
153fHistMcAsMLaPtCent4060(0),
154fHistMcAsMLbPtCent4060(0),
12ca6c45 155fHistZVertexCent4060(0),
156fHistMCZVertexCent4060(0),
157
158fHistMK0PtCent6090(0),
159fHistMLaPtCent6090(0),
160fHistMLbPtCent6090(0),
161fHistMcPMK0PtCent6090(0),
162fHistMcPMLaPtCent6090(0),
163fHistMcPMLbPtCent6090(0),
5a4be586 164fHistMcAsMK0PtCent6090(0),
165fHistMcAsMLaPtCent6090(0),
166fHistMcAsMLbPtCent6090(0),
12ca6c45 167fHistZVertexCent6090(0),
168fHistMCZVertexCent6090(0),
169
170fHistMK0PtCent0090(0),
171fHistMLaPtCent0090(0),
172fHistMLbPtCent0090(0),
173fHistMcPMK0PtCent0090(0),
174fHistMcPMLaPtCent0090(0),
175fHistMcPMLbPtCent0090(0),
5a4be586 176fHistMcAsMK0PtCent0090(0),
177fHistMcAsMLaPtCent0090(0),
178fHistMcAsMLbPtCent0090(0),
12ca6c45 179fHistZVertexCent0090(0),
180fHistMCZVertexCent0090(0),
181
5a4be586 182fHistCosPaMLa(0),
183fHistCosPaMLb(0),
184fHistCosPaMK0(0),
185fHistMcGenCosPaMLa(0),
186fHistMcGenCosPaMLb(0),
187fHistMcGenCosPaMK0(0),
188fHistMcAsReconCosPaMLa(0),
189fHistMcAsReconCosPaMLb(0),
190fHistMcAsReconCosPaMK0(0),
191fHistMcAsTruthCosPaMLa(0),
192fHistMcAsTruthCosPaMLb(0),
193fHistMcAsTruthCosPaMK0(0),
194
195fHistcTauMLa(0),
196fHistcTauMLb(0),
197fHistcTauMK0(0),
198fHistMcGencTauMLa(0),
199fHistMcGencTauMLb(0),
200fHistMcGencTauMK0(0),
201fHistMcAsReconcTauMLa(0),
202fHistMcAsReconcTauMLb(0),
203fHistMcAsReconcTauMK0(0),
204fHistMcAsTruthcTauMLa(0),
205fHistMcAsTruthcTauMLb(0),
206fHistMcAsTruthcTauMK0(0),
207
208fHistDcaMLa(0),
209fHistDcaMLb(0),
210fHistDcaMK0(0),
211fHistMcGenDcaMLa(0),
212fHistMcGenDcaMLb(0),
213fHistMcGenDcaMK0(0),
214fHistMcAsReconDcaMLa(0),
215fHistMcAsReconDcaMLb(0),
216fHistMcAsReconDcaMK0(0),
217fHistMcAsTruthDcaMLa(0),
218fHistMcAsTruthDcaMLb(0),
219fHistMcAsTruthDcaMK0(0),
220
221fHistNSigmaMLa(0),
222fHistNSigmaMLb(0),
223fHistNSigmaMK0(0),
224fHistMcGenNSigmaMLa(0),
225fHistMcGenNSigmaMLb(0),
226fHistMcGenNSigmaMK0(0),
227fHistMcAsReconNSigmaMLa(0),
228fHistMcAsReconNSigmaMLb(0),
229fHistMcAsReconNSigmaMK0(0),
230fHistMcAsTruthNSigmaMLa(0),
231fHistMcAsTruthNSigmaMLb(0),
232fHistMcAsTruthNSigmaMK0(0),
233
234fHistEtaMLa(0),
235fHistEtaMLb(0),
236fHistEtaMK0(0),
237fHistMcGenEtaMLa(0),
238fHistMcGenEtaMLb(0),
239fHistMcGenEtaMK0(0),
240fHistMcAsReconEtaMLa(0),
241fHistMcAsReconEtaMLb(0),
242fHistMcAsReconEtaMK0(0),
243fHistMcAsTruthEtaMLa(0),
244fHistMcAsTruthEtaMLb(0),
245fHistMcAsTruthEtaMK0(0),
246
247fHistRapMLa(0),
248fHistRapMLb(0),
249fHistRapMK0(0),
250fHistMcGenRapMLa(0),
251fHistMcGenRapMLb(0),
252fHistMcGenRapMK0(0),
253fHistMcAsReconRapMLa(0),
254fHistMcAsReconRapMLb(0),
255fHistMcAsReconRapMK0(0),
256fHistMcAsTruthRapMLa(0),
257fHistMcAsTruthRapMLb(0),
258fHistMcAsTruthRapMK0(0),
259
260fHistArmPodK0(0),
261fHistArmPodLa(0),
262fHistArmPodLb(0),
263fHistMcGenArmPodK0(0),
264fHistMcGenArmPodLa(0),
265fHistMcGenArmPodLb(0),
266fHistMcAsReconArmPodK0(0),
267fHistMcAsReconArmPodLa(0),
268fHistMcAsReconArmPodLb(0),
269fHistMcAsTruthArmPodK0(0),
270fHistMcAsTruthArmPodLa(0),
271fHistMcAsTruthArmPodLb(0)
12ca6c45 272
273// The last in the above list should not have a comma after it
274{
275 // Dummy constructor ALWAYS needed for I/O.
276}
277
278//________________________________________________________________________
8a7cb9cc 279AliAnalysisTaskLukeAOD::AliAnalysisTaskLukeAOD(const char *name) // All data members should be initialised here
60dfeffb 280:AliAnalysisTaskSE(name), fIsMonteCarlo(false), fcutCosPa(0.998),fcutcTauMin(-999), fcutNcTauMax(3.0), fcutBetheBloch(3.0), fcutMinNClustersTPC(70), fcutRatio(0.8), fcutEta(0.8), fcutRapidity(0.5), fcutArmenteros(0.2),
12ca6c45 281fOutput(0),
282fPIDResponse(0),
283
284fHistPt(0),
285fHistEta(0),
286fHistLog(0),
287fHistNV0(0),
288fHistZVertex(0),
289fHistMCZVertex(0),
290fHistCentrality(0),
291
292fHistBBK0Pos(0),
293fHistBBK0Neg(0),
294fHistBBLaPos(0),
295fHistBBLaNeg(0),
296fHistBBLbPos(0),
297fHistBBLbNeg(0),
298
299fHistBB3SigProton(0),
300fHistMK0Pt(0),
301fHistMLaPt(0),
302fHistMLbPt(0),
303fHistMcPMK0Pt(0),
304fHistMcPMLaPt(0),
305fHistMcPMLbPt(0),
306
307fHistMcFMLaPt(0),
308
309fHistMK0PtCent0005(0),
310fHistMLaPtCent0005(0),
311fHistMLbPtCent0005(0),
312fHistMcPMK0PtCent0005(0),
313fHistMcPMLaPtCent0005(0),
314fHistMcPMLbPtCent0005(0),
5a4be586 315fHistMcAsMK0PtCent0005(0),
316fHistMcAsMLaPtCent0005(0),
317fHistMcAsMLbPtCent0005(0),
12ca6c45 318fHistZVertexCent0005(0),
319fHistMCZVertexCent0005(0),
320
321fHistMK0PtCent0510(0),
322fHistMLaPtCent0510(0),
323fHistMLbPtCent0510(0),
324fHistMcPMK0PtCent0510(0),
325fHistMcPMLaPtCent0510(0),
326fHistMcPMLbPtCent0510(0),
5a4be586 327fHistMcAsMK0PtCent0510(0),
328fHistMcAsMLaPtCent0510(0),
329fHistMcAsMLbPtCent0510(0),
12ca6c45 330fHistZVertexCent0510(0),
331fHistMCZVertexCent0510(0),
332
333fHistMK0PtCent1020(0),
334fHistMLaPtCent1020(0),
335fHistMLbPtCent1020(0),
336fHistMcPMK0PtCent1020(0),
337fHistMcPMLaPtCent1020(0),
338fHistMcPMLbPtCent1020(0),
5a4be586 339fHistMcAsMK0PtCent1020(0),
340fHistMcAsMLaPtCent1020(0),
341fHistMcAsMLbPtCent1020(0),
12ca6c45 342fHistZVertexCent1020(0),
343fHistMCZVertexCent1020(0),
344
345fHistMK0PtCent2040(0),
346fHistMLaPtCent2040(0),
347fHistMLbPtCent2040(0),
348fHistMcPMK0PtCent2040(0),
349fHistMcPMLaPtCent2040(0),
350fHistMcPMLbPtCent2040(0),
5a4be586 351fHistMcAsMK0PtCent2040(0),
352fHistMcAsMLaPtCent2040(0),
353fHistMcAsMLbPtCent2040(0),
12ca6c45 354fHistZVertexCent2040(0),
355fHistMCZVertexCent2040(0),
356
357fHistMK0PtCent4060(0),
358fHistMLaPtCent4060(0),
359fHistMLbPtCent4060(0),
360fHistMcPMK0PtCent4060(0),
361fHistMcPMLaPtCent4060(0),
362fHistMcPMLbPtCent4060(0),
5a4be586 363fHistMcAsMK0PtCent4060(0),
364fHistMcAsMLaPtCent4060(0),
365fHistMcAsMLbPtCent4060(0),
12ca6c45 366fHistZVertexCent4060(0),
367fHistMCZVertexCent4060(0),
368
369fHistMK0PtCent6090(0),
370fHistMLaPtCent6090(0),
371fHistMLbPtCent6090(0),
372fHistMcPMK0PtCent6090(0),
373fHistMcPMLaPtCent6090(0),
374fHistMcPMLbPtCent6090(0),
5a4be586 375fHistMcAsMK0PtCent6090(0),
376fHistMcAsMLaPtCent6090(0),
377fHistMcAsMLbPtCent6090(0),
12ca6c45 378fHistZVertexCent6090(0),
379fHistMCZVertexCent6090(0),
380
381fHistMK0PtCent0090(0),
382fHistMLaPtCent0090(0),
383fHistMLbPtCent0090(0),
384fHistMcPMK0PtCent0090(0),
385fHistMcPMLaPtCent0090(0),
386fHistMcPMLbPtCent0090(0),
5a4be586 387fHistMcAsMK0PtCent0090(0),
388fHistMcAsMLaPtCent0090(0),
389fHistMcAsMLbPtCent0090(0),
12ca6c45 390fHistZVertexCent0090(0),
391fHistMCZVertexCent0090(0),
392
5a4be586 393fHistCosPaMLa(0),
394fHistCosPaMLb(0),
395fHistCosPaMK0(0),
396fHistMcGenCosPaMLa(0),
397fHistMcGenCosPaMLb(0),
398fHistMcGenCosPaMK0(0),
399fHistMcAsReconCosPaMLa(0),
400fHistMcAsReconCosPaMLb(0),
401fHistMcAsReconCosPaMK0(0),
402fHistMcAsTruthCosPaMLa(0),
403fHistMcAsTruthCosPaMLb(0),
404fHistMcAsTruthCosPaMK0(0),
405
406fHistcTauMLa(0),
407fHistcTauMLb(0),
408fHistcTauMK0(0),
409fHistMcGencTauMLa(0),
410fHistMcGencTauMLb(0),
411fHistMcGencTauMK0(0),
412fHistMcAsReconcTauMLa(0),
413fHistMcAsReconcTauMLb(0),
414fHistMcAsReconcTauMK0(0),
415fHistMcAsTruthcTauMLa(0),
416fHistMcAsTruthcTauMLb(0),
417fHistMcAsTruthcTauMK0(0),
418
419fHistDcaMLa(0),
420fHistDcaMLb(0),
421fHistDcaMK0(0),
422fHistMcGenDcaMLa(0),
423fHistMcGenDcaMLb(0),
424fHistMcGenDcaMK0(0),
425fHistMcAsReconDcaMLa(0),
426fHistMcAsReconDcaMLb(0),
427fHistMcAsReconDcaMK0(0),
428fHistMcAsTruthDcaMLa(0),
429fHistMcAsTruthDcaMLb(0),
430fHistMcAsTruthDcaMK0(0),
431
432fHistNSigmaMLa(0),
433fHistNSigmaMLb(0),
434fHistNSigmaMK0(0),
435fHistMcGenNSigmaMLa(0),
436fHistMcGenNSigmaMLb(0),
437fHistMcGenNSigmaMK0(0),
438fHistMcAsReconNSigmaMLa(0),
439fHistMcAsReconNSigmaMLb(0),
440fHistMcAsReconNSigmaMK0(0),
441fHistMcAsTruthNSigmaMLa(0),
442fHistMcAsTruthNSigmaMLb(0),
443fHistMcAsTruthNSigmaMK0(0),
444
445fHistEtaMLa(0),
446fHistEtaMLb(0),
447fHistEtaMK0(0),
448fHistMcGenEtaMLa(0),
449fHistMcGenEtaMLb(0),
450fHistMcGenEtaMK0(0),
451fHistMcAsReconEtaMLa(0),
452fHistMcAsReconEtaMLb(0),
453fHistMcAsReconEtaMK0(0),
454fHistMcAsTruthEtaMLa(0),
455fHistMcAsTruthEtaMLb(0),
456fHistMcAsTruthEtaMK0(0),
457
458fHistRapMLa(0),
459fHistRapMLb(0),
460fHistRapMK0(0),
461fHistMcGenRapMLa(0),
462fHistMcGenRapMLb(0),
463fHistMcGenRapMK0(0),
464fHistMcAsReconRapMLa(0),
465fHistMcAsReconRapMLb(0),
466fHistMcAsReconRapMK0(0),
467fHistMcAsTruthRapMLa(0),
468fHistMcAsTruthRapMLb(0),
469fHistMcAsTruthRapMK0(0),
470
471fHistArmPodK0(0),
472fHistArmPodLa(0),
473fHistArmPodLb(0),
474fHistMcGenArmPodK0(0),
475fHistMcGenArmPodLa(0),
476fHistMcGenArmPodLb(0),
477fHistMcAsReconArmPodK0(0),
478fHistMcAsReconArmPodLa(0),
479fHistMcAsReconArmPodLb(0),
480fHistMcAsTruthArmPodK0(0),
481fHistMcAsTruthArmPodLa(0),
482fHistMcAsTruthArmPodLb(0)
12ca6c45 483
484// The last in the above list should not have a comma after it
485{
486 // Constructor
487 // Define input and output slots here (never in the dummy constructor)
488 // Input slot #0 works with a TChain - it is connected to the default input container
489 // Output slot #1 writes into a TH1 container
490 DefineOutput(1, TList::Class()); // for output list
491}
492
493//________________________________________________________________________
8a7cb9cc 494AliAnalysisTaskLukeAOD::~AliAnalysisTaskLukeAOD()
12ca6c45 495{
496 // Destructor. Clean-up the output list, but not the histograms that are put inside
497 // (the list is owner and will clean-up these histograms). Protect in PROOF case.
498 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
499 delete fOutput;
500 }
501}
502
503//________________________________________________________________________
8a7cb9cc 504void AliAnalysisTaskLukeAOD::UserCreateOutputObjects()
12ca6c45 505{
506 // Create histograms
507 // Called once (on the worker node)
508
509 fOutput = new TList();
510 fOutput->SetOwner(); // IMPORTANT!
511
512 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
513 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
514 fPIDResponse = inputHandler->GetPIDResponse();
ab49d93a 515 //Bool_t maskIsSelected = inputHandler->IsEventSelected();
12ca6c45 516
517 // Create histograms
518 Int_t ptbins = 15;
519 Float_t ptlow = 0.1, ptup = 3.1;
520 fHistPt = new TH1F("fHistPt", "P_{T} distribution for reconstructed", ptbins, ptlow, ptup);
521 fHistPt->GetXaxis()->SetTitle("P_{T} (GeV/c)");
522 fHistPt->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
523 fHistPt->SetMarkerStyle(kFullCircle);
524
525 Int_t etabins = 40;
526 Float_t etalow = -2.0, etaup = 2.0;
527 fHistEta = new TH1F("fHistEta","#eta distribution for reconstructed",etabins, etalow, etaup);
528 fHistEta->GetXaxis()->SetTitle("#eta");
529 fHistEta->GetYaxis()->SetTitle("counts");
530
531 fHistLog = new TH1F("fHistLog","Log Variables",100, -0.5, 99.5);
532 fHistNV0 = new TH1F("fHistNV0","Number of V0s per event",100, 0, 5000);
533 fHistZVertex = new TH1F("fHistZVertex","Z coordinate of primary vertex",60, -15, 15);
534 fHistMCZVertex = new TH1F("fHistMCZVertex","Z coordinate of primary vertex in MC truth",60, -15, 15);
535 fHistCentrality = new TH1F("fHistCentrality", "Centrality of Events; Centrality Percentile (%); N",110,-5,105);
536
537 fHistBBK0Pos = new TH2F("fHistBBK0Pos","PID of the positive daughter of K0 candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
538 fHistBBK0Neg = new TH2F("fHistBBK0Neg","PID of the negative daughter of K0 candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
539 fHistBBLaPos = new TH2F("fHistBBLaPos","PID of the positive daughter of La candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
540 fHistBBLaNeg = new TH2F("fHistBBLaNeg","PID of the negative daughter of La candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
541 fHistBBLbPos = new TH2F("fHistBBLbPos","PID of the positive daughter of Lb candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
542 fHistBBLbNeg = new TH2F("fHistBBLbNeg","PID of the negative daughter of Lb candidates; P (GeV); -dE/dx (keV/cm ?)",1000,0,10,1000,0,200);
5a4be586 543
12ca6c45 544 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);
545 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);
546 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);
547 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);
548 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);
549 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);
550 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);
551
552 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);
553
554 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);
555 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);
556 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);
557 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);
558 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);
559 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);
5a4be586 560 fHistMcAsMK0PtCent0005 = new TH2F("fHistMcAsMK0PtCent0005","Monte Carlo associated 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);
561 fHistMcAsMLaPtCent0005 = new TH2F("fHistMcAsMLaPtCent0005","Monte Carlo associated (& 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);
562 fHistMcAsMLbPtCent0005 = new TH2F("fHistMcAsMLbPtCent0005","Monte Carlo associated (& 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);
12ca6c45 563 fHistZVertexCent0005 = new TH1F("fHistZVertexCent0005","Z coordinate of primary vertex for Centrality 0-5%",60, -15, 15);
564 fHistMCZVertexCent0005 = new TH1F("fHistMCZVertexCent0005","Z coordinate of primary vertex in MC truth for Centrality 0-5%",60, -15, 15);
565
566 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);
567 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);
568 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);
569 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);
570 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);
571 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);
5a4be586 572 fHistMcAsMK0PtCent0510 = new TH2F("fHistMcAsMK0PtCent0510","Monte Carlo associated 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);
573 fHistMcAsMLaPtCent0510 = new TH2F("fHistMcAsMLaPtCent0510","Monte Carlo associated (& 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);
574 fHistMcAsMLbPtCent0510 = new TH2F("fHistMcAsMLbPtCent0510","Monte Carlo associated (& 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);
12ca6c45 575 fHistZVertexCent0510 = new TH1F("fHistZVertexCent0510","Z coordinate of primary vertex for Centrality 5-10%",60, -15, 15);
576 fHistMCZVertexCent0510 = new TH1F("fHistMCZVertexCent0510","Z coordinate of primary vertex in MC truth for Centrality 5-10%",60, -15, 15);
577
578 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);
579 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);
580 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);
581 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);
582 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);
583 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);
5a4be586 584 fHistMcAsMK0PtCent1020 = new TH2F("fHistMcAsMK0PtCent1020","Monte Carlo associated 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);
585 fHistMcAsMLaPtCent1020 = new TH2F("fHistMcAsMLaPtCent1020","Monte Carlo associated (& 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);
586 fHistMcAsMLbPtCent1020 = new TH2F("fHistMcAsMLbPtCent1020","Monte Carlo associated (& 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);
12ca6c45 587 fHistZVertexCent1020 = new TH1F("fHistZVertexCent1020","Z coordinate of primary vertex for Centrality 10-20%",60, -15, 15);
588 fHistMCZVertexCent1020 = new TH1F("fHistMCZVertexCent1020","Z coordinate of primary vertex in MC truth for Centrality 10-20%",60, -15, 15);
589
590 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);
591 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);
592 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);
593 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);
594 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);
595 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);
5a4be586 596 fHistMcAsMK0PtCent2040 = new TH2F("fHistMcAsMK0PtCent2040","Monte Carlo associated 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);
597 fHistMcAsMLaPtCent2040 = new TH2F("fHistMcAsMLaPtCent2040","Monte Carlo associated (& 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);
598 fHistMcAsMLbPtCent2040 = new TH2F("fHistMcAsMLbPtCent2040","Monte Carlo associated (& 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);
12ca6c45 599 fHistZVertexCent2040 = new TH1F("fHistZVertexCent2040","Z coordinate of primary vertex for Centrality 20-40%",60, -15, 15);
600 fHistMCZVertexCent2040 = new TH1F("fHistMCZVertexCent2040","Z coordinate of primary vertex in MC truth for Centrality 20-40%",60, -15, 15);
601
602 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);
603 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);
604 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);
605 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);
606 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);
607 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);
5a4be586 608 fHistMcAsMK0PtCent4060 = new TH2F("fHistMcAsMK0PtCent4060","Monte Carlo associated 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);
609 fHistMcAsMLaPtCent4060 = new TH2F("fHistMcAsMLaPtCent4060","Monte Carlo associated (& 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);
610 fHistMcAsMLbPtCent4060 = new TH2F("fHistMcAsMLbPtCent4060","Monte Carlo associated (& 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);
12ca6c45 611 fHistZVertexCent4060 = new TH1F("fHistZVertexCent4060","Z coordinate of primary vertex for Centrality 40-60%",60, -15, 15);
612 fHistMCZVertexCent4060 = new TH1F("fHistMCZVertexCent4060","Z coordinate of primary vertex in MC truth for Centrality 40-60%",60, -15, 15);
613
614 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);
615 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);
616 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);
617 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);
618 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);
619 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);
5a4be586 620 fHistMcAsMK0PtCent6090 = new TH2F("fHistMcAsMK0PtCent6090","Monte Carlo associated 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);
621 fHistMcAsMLaPtCent6090 = new TH2F("fHistMcAsMLaPtCent6090","Monte Carlo associated (& 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);
622 fHistMcAsMLbPtCent6090 = new TH2F("fHistMcAsMLbPtCent6090","Monte Carlo associated (& 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);
12ca6c45 623 fHistZVertexCent6090 = new TH1F("fHistZVertexCent6090","Z coordinate of primary vertex for Centrality 60-90%",60, -15, 15);
624 fHistMCZVertexCent6090 = new TH1F("fHistMCZVertexCent6090","Z coordinate of primary vertex in MC truth for Centrality 60-90%",60, -15, 15);
625
626 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);
627 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);
628 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);
629 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);
630 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);
631 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);
5a4be586 632 fHistMcAsMK0PtCent0090 = new TH2F("fHistMcAsMK0PtCent0090","Monte Carlo associated 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);
633 fHistMcAsMLaPtCent0090 = new TH2F("fHistMcAsMLaPtCent0090","Monte Carlo associated (& 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);
634 fHistMcAsMLbPtCent0090 = new TH2F("fHistMcAsMLbPtCent0090","Monte Carlo associated (& 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);
12ca6c45 635 fHistZVertexCent0090 = new TH1F("fHistZVertexCent0090","Z coordinate of primary vertex for Centrality 0-90%",60, -15, 15);
636 fHistMCZVertexCent0090 = new TH1F("fHistMCZVertexCent0090","Z coordinate of primary vertex in MC truth for Centrality 0-90%",60, -15, 15);
637
638
5a4be586 639 fHistCosPaMLa = new TH2F("fHistCosPaMLa"," Reconstructed Mass vs CosPa for Lambda Candidates;CosPA; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
640 fHistCosPaMLb = new TH2F("fHistCosPaMLb"," Reconstructed Mass vs CosPa for AntiLambda Candidates;CosPA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
641 fHistCosPaMK0 = new TH2F("fHistCosPaMK0"," Reconstructed Mass vs CosPa for K0Short Candidates;CosPA; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
642 fHistMcGenCosPaMLa = new TH2F("fHistMcGenCosPaMLa"," Reconstructed Mass vs MC-Truth CosPa for all MC primary Lambda;CosPA; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
643 fHistMcGenCosPaMLb = new TH2F("fHistMcGenCosPaMLb"," Reconstructed Mass vs MC-Truth CosPa for all MC primary AntiLambda;CosPA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
644 fHistMcGenCosPaMK0 = new TH2F("fHistMcGenCosPaMK0"," Reconstructed Mass vs MC-Truth CosPa for all MC primary K0Short;CosPA; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
645 fHistMcAsReconCosPaMLa = new TH2F("fHistMcAsReconCosPaMLa"," Reconstructed Mass vs CosPa for reconstructed MC primary Lambda;CosPA; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
646 fHistMcAsReconCosPaMLb = new TH2F("fHistMcAsReconCosPaMLb"," Reconstructed Mass vs CosPa for reconstructed MC primary AntiLambda;CosPA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
647 fHistMcAsReconCosPaMK0 = new TH2F("fHistMcAsReconCosPaMK0"," Reconstructed Mass vs CosPa for reconstructed MC primary K0Short;CosPA; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
648 fHistMcAsTruthCosPaMLa = new TH2F("fHistMcAsTruthCosPaMLa"," Reconstructed Mass vs MC-Truth CosPa for reconstructed MC primary Lambda;CosPA; M(p#pi^{-}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
649 fHistMcAsTruthCosPaMLb = new TH2F("fHistMcAsTruthCosPaMLb"," Reconstructed Mass vs MC-Truth CosPa for reconstructed MC primary AntiLambda;CosPA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0.99,1.001,96,1.08,1.2);
650 fHistMcAsTruthCosPaMK0 = new TH2F("fHistMcAsTruthCosPaMK0"," Reconstructed Mass vs MC-Truth CosPa for reconstructed MC primary K0Short;CosPA; K0 Mass (GeV/c^2)",200,0.99,1.001,140,0.414,0.582);
651
652 fHistcTauMLa = new TH2F("fHistcTauMLa"," Reconstructed Mass vs cTau for Lambda Candidates; cTau; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
653 fHistcTauMLb = new TH2F("fHistcTauMLb"," Reconstructed Mass vs cTau for AntiLambda Candidates; cTau; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
654 fHistcTauMK0 = new TH2F("fHistcTauMK0"," Reconstructed Mass vs cTau for K0Short Candidates; cTau; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
655 fHistMcGencTauMLa = new TH2F("fHistMcGencTauMLa"," Reconstructed Mass vs MC-Truth cTau for all MC primary Lambda; cTau; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
656 fHistMcGencTauMLb = new TH2F("fHistMcGencTauMLb"," Reconstructed Mass vs MC-Truth cTau for all MC primary AntiLambda; cTau; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
657 fHistMcGencTauMK0 = new TH2F("fHistMcGencTauMK0"," Reconstructed Mass vs MC-Truth cTau for all MC primary K0Short; cTau; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
658 fHistMcAsReconcTauMLa = new TH2F("fHistMcAsReconcTauMLa"," Reconstructed Mass vs cTau for reconstructed MC primary Lambda; cTau; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
659 fHistMcAsReconcTauMLb = new TH2F("fHistMcAsReconcTauMLb"," Reconstructed Mass vs cTau for reconstructed MC primary AntiLambda; cTau; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
660 fHistMcAsReconcTauMK0 = new TH2F("fHistMcAsReconcTauMK0"," Reconstructed Mass vs cTau for reconstructed MC primary K0Short; cTau; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
661 fHistMcAsTruthcTauMLa = new TH2F("fHistMcAsTruthcTauMLa"," Reconstructed Mass vs MC-Truth cTau for reconstructed MC primary Lambda; cTau; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
662 fHistMcAsTruthcTauMLb = new TH2F("fHistMcAsTruthcTauMLb"," Reconstructed Mass vs MC-Truth cTau for reconstructed MC primary AntiLambda; cTau; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
663 fHistMcAsTruthcTauMK0 = new TH2F("fHistMcAsTruthcTauMK0"," Reconstructed Mass vs MC-Truth cTau for reconstructed MC primary K0Short; cTau; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
664
665 fHistDcaMLa = new TH2F("fHistDcaMLa"," Reconstructed Mass vs Dca for Lambda Candidates; DCA; M(p#pi^{-}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
666 fHistDcaMLb = new TH2F("fHistDcaMLb"," Reconstructed Mass vs Dca for AntiLambda Candidates; DCA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
667 fHistDcaMK0 = new TH2F("fHistDcaMK0"," Reconstructed Mass vs Dca for K0Short Candidates; DCA; K0 Mass (GeV/c^2)",200,0,1.5,140,0.414,0.582);
668 fHistMcGenDcaMLa = new TH2F("fHistMcGenDcaMLa"," Reconstructed Mass vs MC-Truth Dca for all MC primary Lambda; DCA; M(p#pi^{-}) (GeV/c^2)",200,0,50,96,1.08,1.2);
669 fHistMcGenDcaMLb = new TH2F("fHistMcGenDcaMLb"," Reconstructed Mass vs MC-Truth Dca for all MC primary AntiLambda; DCA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,50,96,1.08,1.2);
670 fHistMcGenDcaMK0 = new TH2F("fHistMcGenDcaMK0"," Reconstructed Mass vs MC-Truth Dca for all MC primary K0Short; DCA; K0 Mass (GeV/c^2)",200,0,50,140,0.414,0.582);
671 fHistMcAsReconDcaMLa = new TH2F("fHistMcAsReconDcaMLa"," Reconstructed Mass vs Dca for reconstructed MC primary Lambda; DCA; M(p#pi^{-}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
672 fHistMcAsReconDcaMLb = new TH2F("fHistMcAsReconDcaMLb"," Reconstructed Mass vs Dca for reconstructed MC primary AntiLambda; DCA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
673 fHistMcAsReconDcaMK0 = new TH2F("fHistMcAsReconDcaMK0"," Reconstructed Mass vs Dca for reconstructed MC primary K0Short; DCA; K0 Mass (GeV/c^2)",200,0,1.5,140,0.414,0.582);
674 fHistMcAsTruthDcaMLa = new TH2F("fHistMcAsTruthDcaMLa"," Reconstructed Mass vs MC-Truth Dca for reconstructed MC primary Lambda; DCA; M(p#pi^{-}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
675 fHistMcAsTruthDcaMLb = new TH2F("fHistMcAsTruthDcaMLb"," Reconstructed Mass vs MC-Truth Dca for reconstructed MC primary AntiLambda; DCA; M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,1.5,96,1.08,1.2);
676 fHistMcAsTruthDcaMK0 = new TH2F("fHistMcAsTruthDcaMK0"," Reconstructed Mass vs MC-Truth Dca for reconstructed MC primary K0Short; DCA; K0 Mass (GeV/c^2)",200,0,1.5,140,0.414,0.582);
677
678 fHistNSigmaMLa = new TH2F("fHistNSigmaMLa"," Reconstructed Mass vs NSigma for Lambda Candidates; NSigma; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
679 fHistNSigmaMLb = new TH2F("fHistNSigmaMLb"," Reconstructed Mass vs NSigma for AntiLambda Candidates; NSigma; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
680 fHistNSigmaMK0 = new TH2F("fHistNSigmaMK0"," Reconstructed Mass vs NSigma for K0Short Candidates; NSigma; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
681 fHistMcGenNSigmaMLa = new TH2F("fHistMcGenNSigmaMLa"," Reconstructed Mass vs MC-Truth NSigma for all MC primary Lambda; NSigma; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
682 fHistMcGenNSigmaMLb = new TH2F("fHistMcGenNSigmaMLb"," Reconstructed Mass vs MC-Truth NSigma for all MC primary AntiLambda; NSigma; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
683 fHistMcGenNSigmaMK0 = new TH2F("fHistMcGenNSigmaMK0"," Reconstructed Mass vs MC-Truth NSigma for all MC primary K0Short; NSigma; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
684 fHistMcAsReconNSigmaMLa = new TH2F("fHistMcAsReconNSigmaMLa"," Reconstructed Mass vs NSigma for reconstructed MC primary Lambda; NSigma; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
685 fHistMcAsReconNSigmaMLb = new TH2F("fHistMcAsReconNSigmaMLb"," Reconstructed Mass vs NSigma for reconstructed MC primary AntiLambda; NSigma; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
686 fHistMcAsReconNSigmaMK0 = new TH2F("fHistMcAsReconNSigmaMK0"," Reconstructed Mass vs NSigma for reconstructed MC primary K0Short; NSigma; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
687 fHistMcAsTruthNSigmaMLa = new TH2F("fHistMcAsTruthNSigmaMLa"," Reconstructed Mass vs MC-Truth NSigma for reconstructed MC primary Lambda; NSigma; M(p#pi^{-}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
688 fHistMcAsTruthNSigmaMLb = new TH2F("fHistMcAsTruthNSigmaMLb"," Reconstructed Mass vs MC-Truth NSigma for reconstructed MC primary AntiLambda; NSigma; M(#bar{p}#pi^{+}) (GeV/c^2)",50,-5,5,96,1.08,1.2);
689 fHistMcAsTruthNSigmaMK0 = new TH2F("fHistMcAsTruthNSigmaMK0"," Reconstructed Mass vs MC-Truth NSigma for reconstructed MC primary K0Short; NSigma; K0 Mass (GeV/c^2)",50,-5,5,140,0.414,0.582);
690
691 fHistEtaMLa = new TH2F("fHistEtaMLa"," Reconstructed Mass vs Eta for Lambda Candidates; Eta; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
692 fHistEtaMLb = new TH2F("fHistEtaMLb"," Reconstructed Mass vs Eta for AntiLambda Candidates; Eta; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
693 fHistEtaMK0 = new TH2F("fHistEtaMK0"," Reconstructed Mass vs Eta for K0Short Candidates; Eta; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
694 fHistMcGenEtaMLa = new TH2F("fHistMcGenEtaMLa"," Reconstructed Mass vs MC-Truth Eta for all MC primary Lambda; Eta; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
695 fHistMcGenEtaMLb = new TH2F("fHistMcGenEtaMLb"," Reconstructed Mass vs MC-Truth Eta for all MC primary AntiLambda; Eta; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
696 fHistMcGenEtaMK0 = new TH2F("fHistMcGenEtaMK0"," Reconstructed Mass vs MC-Truth Eta for all MC primary K0Short; Eta; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
697 fHistMcAsReconEtaMLa = new TH2F("fHistMcAsReconEtaMLa"," Reconstructed Mass vs Eta for reconstructed MC primary Lambda; Eta; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
698 fHistMcAsReconEtaMLb = new TH2F("fHistMcAsReconEtaMLb"," Reconstructed Mass vs Eta for reconstructed MC primary AntiLambda; Eta; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
699 fHistMcAsReconEtaMK0 = new TH2F("fHistMcAsReconEtaMK0"," Reconstructed Mass vs Eta for reconstructed MC primary K0Short; Eta; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
700 fHistMcAsTruthEtaMLa = new TH2F("fHistMcAsTruthEtaMLa"," Reconstructed Mass vs MC-Truth Eta for reconstructed MC primary Lambda; Eta; M(p#pi^{-}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
701 fHistMcAsTruthEtaMLb = new TH2F("fHistMcAsTruthEtaMLb"," Reconstructed Mass vs MC-Truth Eta for reconstructed MC primary AntiLambda; Eta; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-3,3,96,1.08,1.2);
702 fHistMcAsTruthEtaMK0 = new TH2F("fHistMcAsTruthEtaMK0"," Reconstructed Mass vs MC-Truth Eta for reconstructed MC primary K0Short; Eta; K0 Mass (GeV/c^2)",200,-3,3,140,0.414,0.582);
703
704 fHistRapMLa = new TH2F("fHistRapMLa"," Reconstructed Mass vs Rap for Lambda Candidates; Rapidity; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
705 fHistRapMLb = new TH2F("fHistRapMLb"," Reconstructed Mass vs Rap for AntiLambda Candidates; Rapidity; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
706 fHistRapMK0 = new TH2F("fHistRapMK0"," Reconstructed Mass vs Rap for K0Short Candidates; Rapidity; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
707 fHistMcGenRapMLa = new TH2F("fHistMcGenRapMLa"," Reconstructed Mass vs MC-Truth Rap for all MC primary Lambda; Rapidity; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
708 fHistMcGenRapMLb = new TH2F("fHistMcGenRapMLb"," Reconstructed Mass vs MC-Truth Rap for all MC primary AntiLambda; Rapidity; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
709 fHistMcGenRapMK0 = new TH2F("fHistMcGenRapMK0"," Reconstructed Mass vs MC-Truth Rap for all MC primary K0Short; Rapidity; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
710 fHistMcAsReconRapMLa = new TH2F("fHistMcAsReconRapMLa"," Reconstructed Mass vs Rap for reconstructed MC primary Lambda; Rapidity; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
711 fHistMcAsReconRapMLb = new TH2F("fHistMcAsReconRapMLb"," Reconstructed Mass vs Rap for reconstructed MC primary AntiLambda; Rapidity; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
712 fHistMcAsReconRapMK0 = new TH2F("fHistMcAsReconRapMK0"," Reconstructed Mass vs Rap for reconstructed MC primary K0Short; Rapidity; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
713 fHistMcAsTruthRapMLa = new TH2F("fHistMcAsTruthRapMLa"," Reconstructed Mass vs MC-Truth Rap for reconstructed MC primary Lambda; Rapidity; M(p#pi^{-}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
714 fHistMcAsTruthRapMLb = new TH2F("fHistMcAsTruthRapMLb"," Reconstructed Mass vs MC-Truth Rap for reconstructed MC primary AntiLambda; Rapidity; M(#bar{p}#pi^{+}) (GeV/c^2)",200,-1,1,96,1.08,1.2);
715 fHistMcAsTruthRapMK0 = new TH2F("fHistMcAsTruthRapMK0"," Reconstructed Mass vs MC-Truth Rap for reconstructed MC primary K0Short; Rapidity; K0 Mass (GeV/c^2)",200,-1,1,140,0.414,0.582);
716
717 fHistArmPodK0 = new TH2F("fHistArmPodK0","Armenteros plot for K0 candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
718 fHistArmPodLa = new TH2F("fHistArmPodLa","Armenteros plot for La candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
719 fHistArmPodLb = new TH2F("fHistArmPodLb","Armenteros plot for Lb candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
720 fHistMcGenArmPodK0 = new TH2F("fHistMcGenArmPodK0","Armenteros plot for MC Generated K0 candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
721 fHistMcGenArmPodLa = new TH2F("fHistMcGenArmPodLa","Armenteros plot for MC Generated La candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
722 fHistMcGenArmPodLb = new TH2F("fHistMcGenArmPodLb","Armenteros plot for MC Generated Lb candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
723 fHistMcAsReconArmPodK0 = new TH2F("fHistMcAsReconArmPodK0","Armenteros plot for MC Associated K0 candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
724 fHistMcAsReconArmPodLa = new TH2F("fHistMcAsReconArmPodLa","Armenteros plot for MC Associated La candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
725 fHistMcAsReconArmPodLb = new TH2F("fHistMcAsReconArmPodLb","Armenteros plot for MC Associated Lb candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
726 fHistMcAsTruthArmPodK0 = new TH2F("fHistMcAsTruthArmPodK0","True Armenteros plot for MC Associated K0 candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
727 fHistMcAsTruthArmPodLa = new TH2F("fHistMcAsTruthArmPodLa","True Armenteros plot for MC Associated La candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
728 fHistMcAsTruthArmPodLb = new TH2F("fHistMcAsTruthArmPodLb","True Armenteros plot for MC Associated Lb candidates; Alpha; PtArm",100,-1,1,50,0,0.5);
12ca6c45 729
730
731
732 // NEW HISTO should be defined here, with a sensible name,
733
734 fOutput->Add(fHistPt);
735 fOutput->Add(fHistEta);
736 fOutput->Add(fHistLog);
737 fOutput->Add(fHistNV0);
738 fOutput->Add(fHistZVertex);
739 fOutput->Add(fHistMCZVertex);
740 fOutput->Add(fHistCentrality);
741
742 fOutput->Add(fHistBBK0Pos);
743 fOutput->Add(fHistBBK0Neg);
744 fOutput->Add(fHistBBLaPos);
745 fOutput->Add(fHistBBLaNeg);
746 fOutput->Add(fHistBBLbPos);
747 fOutput->Add(fHistBBLbNeg);
748
749 fOutput->Add(fHistBB3SigProton);
750 fOutput->Add(fHistMK0Pt);
751 fOutput->Add(fHistMLaPt);
752 fOutput->Add(fHistMLbPt);
753 fOutput->Add(fHistMcPMK0Pt);
754 fOutput->Add(fHistMcPMLaPt);
755 fOutput->Add(fHistMcPMLbPt);
756
757 fOutput->Add(fHistMcFMLaPt);
758
759 fOutput->Add(fHistMK0PtCent0005);
760 fOutput->Add(fHistMLaPtCent0005);
761 fOutput->Add(fHistMLbPtCent0005);
762 fOutput->Add(fHistMcPMK0PtCent0005);
763 fOutput->Add(fHistMcPMLaPtCent0005);
764 fOutput->Add(fHistMcPMLbPtCent0005);
5a4be586 765 fOutput->Add(fHistMcAsMK0PtCent0005);
766 fOutput->Add(fHistMcAsMLaPtCent0005);
767 fOutput->Add(fHistMcAsMLbPtCent0005);
12ca6c45 768 fOutput->Add(fHistZVertexCent0005);
769 fOutput->Add(fHistMCZVertexCent0005);
770
771 fOutput->Add(fHistMK0PtCent0510);
772 fOutput->Add(fHistMLaPtCent0510);
773 fOutput->Add(fHistMLbPtCent0510);
774 fOutput->Add(fHistMcPMK0PtCent0510);
775 fOutput->Add(fHistMcPMLaPtCent0510);
776 fOutput->Add(fHistMcPMLbPtCent0510);
5a4be586 777 fOutput->Add(fHistMcAsMK0PtCent0510);
778 fOutput->Add(fHistMcAsMLaPtCent0510);
779 fOutput->Add(fHistMcAsMLbPtCent0510);
12ca6c45 780 fOutput->Add(fHistZVertexCent0510);
781 fOutput->Add(fHistMCZVertexCent0510);
782
783 fOutput->Add(fHistMK0PtCent1020);
784 fOutput->Add(fHistMLaPtCent1020);
785 fOutput->Add(fHistMLbPtCent1020);
786 fOutput->Add(fHistMcPMK0PtCent1020);
787 fOutput->Add(fHistMcPMLaPtCent1020);
788 fOutput->Add(fHistMcPMLbPtCent1020);
5a4be586 789 fOutput->Add(fHistMcAsMK0PtCent1020);
790 fOutput->Add(fHistMcAsMLaPtCent1020);
791 fOutput->Add(fHistMcAsMLbPtCent1020);
12ca6c45 792 fOutput->Add(fHistZVertexCent1020);
793 fOutput->Add(fHistMCZVertexCent1020);
794
795 fOutput->Add(fHistMK0PtCent2040);
796 fOutput->Add(fHistMLaPtCent2040);
797 fOutput->Add(fHistMLbPtCent2040);
798 fOutput->Add(fHistMcPMK0PtCent2040);
799 fOutput->Add(fHistMcPMLaPtCent2040);
800 fOutput->Add(fHistMcPMLbPtCent2040);
5a4be586 801 fOutput->Add(fHistMcAsMK0PtCent2040);
802 fOutput->Add(fHistMcAsMLaPtCent2040);
803 fOutput->Add(fHistMcAsMLbPtCent2040);
12ca6c45 804 fOutput->Add(fHistZVertexCent2040);
805 fOutput->Add(fHistMCZVertexCent2040);
806
807 fOutput->Add(fHistMK0PtCent4060);
808 fOutput->Add(fHistMLaPtCent4060);
809 fOutput->Add(fHistMLbPtCent4060);
810 fOutput->Add(fHistMcPMK0PtCent4060);
811 fOutput->Add(fHistMcPMLaPtCent4060);
812 fOutput->Add(fHistMcPMLbPtCent4060);
5a4be586 813 fOutput->Add(fHistMcAsMK0PtCent4060);
814 fOutput->Add(fHistMcAsMLaPtCent4060);
815 fOutput->Add(fHistMcAsMLbPtCent4060);
12ca6c45 816 fOutput->Add(fHistZVertexCent4060);
817 fOutput->Add(fHistMCZVertexCent4060);
818
819 fOutput->Add(fHistMK0PtCent6090);
820 fOutput->Add(fHistMLaPtCent6090);
821 fOutput->Add(fHistMLbPtCent6090);
822 fOutput->Add(fHistMcPMK0PtCent6090);
823 fOutput->Add(fHistMcPMLaPtCent6090);
824 fOutput->Add(fHistMcPMLbPtCent6090);
5a4be586 825 fOutput->Add(fHistMcAsMK0PtCent6090);
826 fOutput->Add(fHistMcAsMLaPtCent6090);
827 fOutput->Add(fHistMcAsMLbPtCent6090);
12ca6c45 828 fOutput->Add(fHistZVertexCent6090);
829 fOutput->Add(fHistMCZVertexCent6090);
830
831 fOutput->Add(fHistMK0PtCent0090);
832 fOutput->Add(fHistMLaPtCent0090);
833 fOutput->Add(fHistMLbPtCent0090);
834 fOutput->Add(fHistMcPMK0PtCent0090);
835 fOutput->Add(fHistMcPMLaPtCent0090);
836 fOutput->Add(fHistMcPMLbPtCent0090);
5a4be586 837 fOutput->Add(fHistMcAsMK0PtCent0090);
838 fOutput->Add(fHistMcAsMLaPtCent0090);
839 fOutput->Add(fHistMcAsMLbPtCent0090);
12ca6c45 840 fOutput->Add(fHistZVertexCent0090);
841 fOutput->Add(fHistMCZVertexCent0090);
842
5a4be586 843 fOutput->Add(fHistCosPaMLa);
844 fOutput->Add(fHistCosPaMLb);
845 fOutput->Add(fHistCosPaMK0);
846 fOutput->Add(fHistMcGenCosPaMLa);
847 fOutput->Add(fHistMcGenCosPaMLb);
848 fOutput->Add(fHistMcGenCosPaMK0);
849 fOutput->Add(fHistMcAsReconCosPaMLa);
850 fOutput->Add(fHistMcAsReconCosPaMLb);
851 fOutput->Add(fHistMcAsReconCosPaMK0);
852 fOutput->Add(fHistMcAsTruthCosPaMLa);
853 fOutput->Add(fHistMcAsTruthCosPaMLb);
854 fOutput->Add(fHistMcAsTruthCosPaMK0);
855
856
857 fOutput->Add(fHistcTauMLa);
858 fOutput->Add(fHistcTauMLb);
859 fOutput->Add(fHistcTauMK0);
860 fOutput->Add(fHistMcGencTauMLa);
861 fOutput->Add(fHistMcGencTauMLb);
862 fOutput->Add(fHistMcGencTauMK0);
863 fOutput->Add(fHistMcAsReconcTauMLa);
864 fOutput->Add(fHistMcAsReconcTauMLb);
865 fOutput->Add(fHistMcAsReconcTauMK0);
866 fOutput->Add(fHistMcAsTruthcTauMLa);
867 fOutput->Add(fHistMcAsTruthcTauMLb);
868 fOutput->Add(fHistMcAsTruthcTauMK0);
869
870 fOutput->Add(fHistDcaMLa);
871 fOutput->Add(fHistDcaMLb);
872 fOutput->Add(fHistDcaMK0);
873 fOutput->Add(fHistMcGenDcaMLa);
874 fOutput->Add(fHistMcGenDcaMLb);
875 fOutput->Add(fHistMcGenDcaMK0);
876 fOutput->Add(fHistMcAsReconDcaMLa);
877 fOutput->Add(fHistMcAsReconDcaMLb);
878 fOutput->Add(fHistMcAsReconDcaMK0);
879 fOutput->Add(fHistMcAsTruthDcaMLa);
880 fOutput->Add(fHistMcAsTruthDcaMLb);
881 fOutput->Add(fHistMcAsTruthDcaMK0);
882
883 fOutput->Add(fHistNSigmaMLa);
884 fOutput->Add(fHistNSigmaMLb);
885 fOutput->Add(fHistNSigmaMK0);
886 fOutput->Add(fHistMcGenNSigmaMLa);
887 fOutput->Add(fHistMcGenNSigmaMLb);
888 fOutput->Add(fHistMcGenNSigmaMK0);
889 fOutput->Add(fHistMcAsReconNSigmaMLa);
890 fOutput->Add(fHistMcAsReconNSigmaMLb);
891 fOutput->Add(fHistMcAsReconNSigmaMK0);
892 fOutput->Add(fHistMcAsTruthNSigmaMLa);
893 fOutput->Add(fHistMcAsTruthNSigmaMLb);
894 fOutput->Add(fHistMcAsTruthNSigmaMK0);
895
896 fOutput->Add(fHistEtaMLa);
897 fOutput->Add(fHistEtaMLb);
898 fOutput->Add(fHistEtaMK0);
899 fOutput->Add(fHistMcGenEtaMLa);
900 fOutput->Add(fHistMcGenEtaMLb);
901 fOutput->Add(fHistMcGenEtaMK0);
902 fOutput->Add(fHistMcAsReconEtaMLa);
903 fOutput->Add(fHistMcAsReconEtaMLb);
904 fOutput->Add(fHistMcAsReconEtaMK0);
905 fOutput->Add(fHistMcAsTruthEtaMLa);
906 fOutput->Add(fHistMcAsTruthEtaMLb);
907 fOutput->Add(fHistMcAsTruthEtaMK0);
908
909 fOutput->Add(fHistRapMLa);
910 fOutput->Add(fHistRapMLb);
911 fOutput->Add(fHistRapMK0);
912 fOutput->Add(fHistMcGenRapMLa);
913 fOutput->Add(fHistMcGenRapMLb);
914 fOutput->Add(fHistMcGenRapMK0);
915 fOutput->Add(fHistMcAsReconRapMLa);
916 fOutput->Add(fHistMcAsReconRapMLb);
917 fOutput->Add(fHistMcAsReconRapMK0);
918 fOutput->Add(fHistMcAsTruthRapMLa);
919 fOutput->Add(fHistMcAsTruthRapMLb);
920 fOutput->Add(fHistMcAsTruthRapMK0);
921
922 fOutput->Add(fHistArmPodK0);
923 fOutput->Add(fHistArmPodLa);
924 fOutput->Add(fHistArmPodLb);
925 fOutput->Add(fHistMcGenArmPodK0);
926 fOutput->Add(fHistMcGenArmPodLa);
927 fOutput->Add(fHistMcGenArmPodLb);
928 fOutput->Add(fHistMcAsReconArmPodK0);
929 fOutput->Add(fHistMcAsReconArmPodLa);
930 fOutput->Add(fHistMcAsReconArmPodLb);
931 fOutput->Add(fHistMcAsTruthArmPodK0);
932 fOutput->Add(fHistMcAsTruthArmPodLa);
933 fOutput->Add(fHistMcAsTruthArmPodLb);
12ca6c45 934
935 // NEW HISTO added to fOutput here
936 PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
937}
938
5a4be586 939//________________________________________________________________________
376a27f9 940/*
5a4be586 941static Bool_t checkPrimaryStatus(const AliAODMCParticle *mcPart, double pVx, double pVy, double pVz)
942{
943 double dx = pVx - mcPart->Xv();
944 double dy = pVy - mcPart->Yv();
945 double dz = pVz - mcPart->Zv();
946
947 double prodVertex = TMath::Sqrt(dx*dx+dy*dy+dz*dz);
948 if(prodVertex <= 0.001) {return true;}
949
950 return false;
951}
376a27f9 952*/
5a4be586 953
12ca6c45 954//________________________________________________________________________
bbfb6fac 955
60dfeffb 956static Bool_t AcceptTrack(const AliAODTrack *t, double fcutMinNClustersTPC, double fcutRatio)
12ca6c45 957{
958 if (!t->IsOn(AliAODTrack::kTPCrefit)) return kFALSE;
959 //if (t->GetKinkIndex(0)>0) return kFALSE;
960
bbfb6fac 961 Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1);
60dfeffb 962 if (nCrossedRowsTPC < fcutMinNClustersTPC && fcutMinNClustersTPC != -999) return kFALSE;
bbfb6fac 963 Int_t findable=t->GetTPCNclsF();
12ca6c45 964 if (findable <= 0) return kFALSE;
60dfeffb 965 if (nCrossedRowsTPC/findable < fcutRatio && fcutRatio != -999) return kFALSE;
12ca6c45 966
967 return kTRUE;
968}
969
970//________________________________________________________________________
60dfeffb 971static Bool_t AcceptV0_general(const AliAODv0 *v1, const AliAODEvent *aod, double fcutCosPa, double fcutNImpact, double fcutDCA, double fcutEta, double fcutMinNClustersTPC, double fcutRatio)
12ca6c45 972{
973
974 if (v1->GetOnFlyStatus()) return kFALSE;
975
12ca6c45 976 int nnum = 1, pnum = 0;
977 const AliAODTrack *ntracktest=(AliAODTrack *)v1->GetDaughter(nnum);
978 if(ntracktest->Charge() > 0){nnum = 0; pnum = 1;}
979
980 const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(nnum);
60dfeffb 981 if (!AcceptTrack(ntrack1, fcutMinNClustersTPC, fcutRatio)) return kFALSE;
12ca6c45 982
983 const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(pnum);
60dfeffb 984 if (!AcceptTrack(ptrack1, fcutMinNClustersTPC, fcutRatio)) return kFALSE;
12ca6c45 985
12ca6c45 986 Float_t impact=v1->DcaNegToPrimVertex();
987 if (TMath::Abs(impact)<0.1) return kFALSE;
60dfeffb 988 if (TMath::Abs(impact)<fcutNImpact && fcutNImpact != -999) return kFALSE;
12ca6c45 989 impact=v1->DcaPosToPrimVertex();
990 if (TMath::Abs(impact)<0.1) return kFALSE;
60dfeffb 991 if (TMath::Abs(impact)<fcutNImpact && fcutNImpact != -999) return kFALSE;
12ca6c45 992
12ca6c45 993 Double_t dca=v1->DcaV0Daughters();
60dfeffb 994 if (TMath::Abs(dca)>fcutDCA && fcutDCA != -999) return kFALSE;
12ca6c45 995
12ca6c45 996 Double_t cpa=v1->CosPointingAngle(aod->GetPrimaryVertex());
60dfeffb 997 if (cpa<fcutCosPa && fcutCosPa != -999) return kFALSE;
12ca6c45 998
12ca6c45 999 Double_t etaN = v1->PseudoRapNeg();
1000 Double_t etaP = v1->PseudoRapPos();
60dfeffb 1001 if ((TMath::Abs(etaN)>fcutEta || TMath::Abs(etaP)>fcutEta) && fcutEta != -999) return kFALSE;
12ca6c45 1002
1003 return kTRUE;
1004}
1005
1006//________________________________________________________________________
5a4be586 1007static Bool_t AcceptV0_particle(const AliAODv0 *v1, int type, double fcutcTauMin, double fcutRapidity, Double_t decayL, double fcutNcTauMax)
12ca6c45 1008{
bbfb6fac 1009
12ca6c45 1010 Double_t cTau = 0;
1011 if(type == 1)
1012 {cTau = decayL*(v1->MassLambda())/(v1->P());}
1013 if(type == 2)
1014 {cTau = decayL*(v1->MassAntiLambda())/(v1->P());}
1015 if(type == 0)
1016 {cTau = decayL*(v1->MassK0Short())/(v1->P());}
1017
5a4be586 1018 if (cTau < fcutcTauMin && fcutcTauMin != -999 ) return kFALSE;
1019
1020 if (cTau > (fcutNcTauMax*7.89) && fcutNcTauMax != -999 && (type ==1 || type ==2)) return kFALSE;
1021 if (cTau > (fcutNcTauMax*2.68) && fcutNcTauMax != -999 && (type ==0)) return kFALSE;
1022
12ca6c45 1023
12ca6c45 1024 Double_t rap = 0;
1025 if(type == 1 || type == 2)
1026 {rap = v1->RapLambda();}
1027 if(type == 0)
1028 {rap = v1->RapK0Short();}
60dfeffb 1029 if (TMath::Abs(rap)>fcutRapidity && fcutRapidity != -999) return kFALSE;
12ca6c45 1030
1031 return kTRUE;
1032}
1033
1034//________________________________________________________________________
376a27f9 1035static Bool_t AcceptV0_lowpt(const AliAODv0 *v1, AliPIDResponse *PIDResponse,int type, double fcutBetheBloch, bool fIsMonteCarlo)
12ca6c45 1036{
1037
12ca6c45 1038 int nnum = 1, pnum = 0;
1039 const AliAODTrack *ntracktest=(AliAODTrack *)v1->GetDaughter(nnum);
1040 if(ntracktest->Charge() > 0){nnum = 0; pnum = 1;}
1041
1042 const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(nnum);
1043 const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(pnum);
1044
1045 Double_t nsig_p = 0;
1046 Double_t nsig_n = 0;
1047
1048 const AliAODPid *pid_p=ptrack1->GetDetPid();
1049 const AliAODPid *pid_n=ntrack1->GetDetPid();
1050
1051 if (pid_p)
1052 {
1053 if(type == 1)
484c6e75 1054 {
1055 nsig_p=PIDResponse->NumberOfSigmasTPC(ptrack1,AliPID::kProton);
60dfeffb 1056 if (TMath::Abs(nsig_p) > fcutBetheBloch && fcutBetheBloch >0 && !fIsMonteCarlo && ptrack1->P() <= 1) return kFALSE;
484c6e75 1057 }
12ca6c45 1058
484c6e75 1059 if(type == 2)
1060 {
1061 nsig_p=PIDResponse->NumberOfSigmasTPC(ptrack1,AliPID::kProton);
60dfeffb 1062 if (TMath::Abs(nsig_p) <= fcutBetheBloch && fcutBetheBloch >0 && !fIsMonteCarlo && ptrack1->P() <= 1) return kFALSE;
484c6e75 1063 }
5a4be586 1064
12ca6c45 1065 }
1066
1067 if (pid_n)
1068 {
1069 if(type == 2)
484c6e75 1070 {
1071 nsig_n=PIDResponse->NumberOfSigmasTPC(ntrack1,AliPID::kProton);
60dfeffb 1072 if (TMath::Abs(nsig_n) > fcutBetheBloch && fcutBetheBloch >0 && !fIsMonteCarlo && ntrack1->P() <= 1) return kFALSE;
484c6e75 1073 }
12ca6c45 1074
484c6e75 1075 if(type == 1)
1076 {
1077 nsig_n=PIDResponse->NumberOfSigmasTPC(ntrack1,AliPID::kProton);
60dfeffb 1078 if (TMath::Abs(nsig_n) <= fcutBetheBloch && fcutBetheBloch >0 && !fIsMonteCarlo && ntrack1->P() <= 1) return kFALSE;
484c6e75 1079 }
5a4be586 1080
1081
12ca6c45 1082 }
1083
1084 return kTRUE;
1085}
1086
1087
1088//________________________________________________________________________
8a7cb9cc 1089void AliAnalysisTaskLukeAOD::UserExec(Option_t *)
12ca6c45 1090{
1091 // Main loop
1092 // Called for each event
1093
1094 fHistLog->Fill(1);
1095
60dfeffb 1096 // parameters used for most fcuts, to minimise editing
1097 //double fcutCosPa(0.998), fcutcTauMin(-999), fcutNcTauMax(3.0);
1098 double fcutNImpact(-999), fcutDCA(-999);
1099 //double fcutBetheBloch(3.0); // NOTE - BB fcut only applies to data, must be accounted for when constructing corrected yields
1100 //double fcutMinNClustersTPC(70), fcutRatio(0.8);
1101 //bool fIsMonteCarlo(false);
484c6e75 1102 int isMCtype(0); //1 = Pure Hijing only, 0 = Anything, -1 = Injected only
60dfeffb 1103 //double fcutEta(0.8), fcutRapidity(0.5), fcutArmenteros(0.2);
12ca6c45 1104
5a4be586 1105 Double_t mcXv=0., mcYv=0., mcZv=0.;
1106
12ca6c45 1107 // Create pointer to reconstructed event
1108 AliAODEvent *aod=(AliAODEvent *)InputEvent();
1109 if (!aod)
1110 {
1111 Printf("ERROR: aod not available");
1112 fHistLog->Fill(98);
1113 return;
1114 }
1115
bbfb6fac 1116
12ca6c45 1117 //Bool_t isSelected = (maskIsSelected && AliVEvent::kMB);
1118 /*if (!isSelected)
1119 {
1120 Printf("ERROR: failed physics selection");
1121 fHistLog->Fill(88);
1122 return;
1123 }*/
1124
12ca6c45 1125 AliCentrality* centrality = aod->GetCentrality();
1126 Double_t centPercentile = centrality->GetCentralityPercentile("V0M");
1127 fHistCentrality->Fill(centPercentile);
1128
1129 /********MC Loop************************************/
1130
bbfb6fac 1131 int isInjected = -1;
1132
60dfeffb 1133 if(fIsMonteCarlo)
12ca6c45 1134 {
1135
1136 // Create pointer to reconstructed event
1137 TList *list = aod->GetList();
1138 TClonesArray *stack = 0x0;
1139 stack = (TClonesArray*)list->FindObject(AliAODMCParticle::StdBranchName());
1140 if (!stack) {
1141 Printf("ERROR: stack not available");
1142 fHistLog->Fill(84);
1143 }
1144 else{
1145
1146 AliAODMCHeader *mcHdr=(AliAODMCHeader*)list->FindObject(AliAODMCHeader::StdBranchName());
1147
12ca6c45 1148 mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ();
1149 if (TMath::Abs(mcZv) > 10.)
1150 {
1151 fHistLog->Fill(76);
1152 }
1153 else{
12ca6c45 1154 fHistMCZVertex->Fill(mcZv);
1155
1156 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1157 {fHistMCZVertexCent0005->Fill(mcZv);}
1158 if(centPercentile > 5.0 && centPercentile <= 10.0)
1159 {fHistMCZVertexCent0510->Fill(mcZv);}
1160 if(centPercentile > 10.0 && centPercentile <= 20.0)
1161 {fHistMCZVertexCent1020->Fill(mcZv);}
1162 if(centPercentile > 20.0 && centPercentile <= 40.0)
1163 {fHistMCZVertexCent2040->Fill(mcZv);}
1164 if(centPercentile > 40.0 && centPercentile <= 60.0)
1165 {fHistMCZVertexCent4060->Fill(mcZv);}
1166 if(centPercentile > 60.0 && centPercentile <= 90.0)
1167 {fHistMCZVertexCent6090->Fill(mcZv);}
1168 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1169 {fHistMCZVertexCent0090->Fill(mcZv);}
1170
1171
1172 Int_t ntrk=stack->GetEntriesFast(), ntrk0=ntrk;
1173
1174 for(int iMCtrack = 0; iMCtrack<ntrk0; iMCtrack++)
1175
1176 {
bbfb6fac 1177
12ca6c45 1178 //booleans to check if track is La, Lb, K0 and primary
1179 bool lambdaMC = false;
1180 bool antilambdaMC = false;
1181 bool kshortMC = false;
1182 bool isprimaryMC = false;
1183
1184 AliAODMCParticle *mcPart =(AliAODMCParticle*)stack->UncheckedAt(iMCtrack);
1185
bbfb6fac 1186 if ((mcPart->GetStatus() == 21) || (mcPart->GetPdgCode() == 443 && mcPart->GetMother() == -1))
1187 {
1188 isInjected = iMCtrack;
1189 }
1190
1191 if(isInjected >= 0 && isMCtype == 1)
1192 {continue;}
1193 if(isInjected < 0 && isMCtype == -1)
1194 {continue;}
1195
12ca6c45 1196 Int_t code=mcPart->GetPdgCode();
1197 if (code != kK0Short && code != kLambda0 && code != kLambda0Bar )
1198 {continue;}
1199
1200 if(code == kLambda0)
1201 {
1202 lambdaMC = true;
1203 }
1204 else if(code == kK0Short)
1205 {
1206 kshortMC = true;
1207 }
1208 else if(code == kLambda0Bar)
1209 {
1210 antilambdaMC = true;
1211 }
1212
1213
1214 Int_t motherLabel = mcPart->GetMother();
1215 AliAODMCParticle *mcMother = (AliAODMCParticle *)stack->UncheckedAt(motherLabel);
1216 Int_t motherType = -1;
1217 if(motherLabel >= 0)
1218 {motherType = mcMother->GetPdgCode();}
1219
5a4be586 1220 // this block of code is used to include primary Sigma0 decays as primary lambda/antilambda
12ca6c45 1221 bool sigma0MC = false;
bbfb6fac 1222 if(motherType == 3212 || motherType == -3212)// || motherType == 3322 || motherType == -3322 || motherType == 3312 || motherType == -3312)
12ca6c45 1223 {
5a4be586 1224 if(mcMother->IsPhysicalPrimary() && (lambdaMC || antilambdaMC))
1225 //if(checkPrimaryStatus(mcMother, mcXv, mcYv, mcZv))
12ca6c45 1226 {sigma0MC = true;}
1227 }
1228
12ca6c45 1229
1230 if(mcPart->IsPhysicalPrimary() || sigma0MC)
5a4be586 1231 //if(checkPrimaryStatus(mcPart, mcXv, mcYv, mcZv) || sigma0MC)
12ca6c45 1232 {
1233 isprimaryMC = true;
1234 if(lambdaMC)
1235 {
60dfeffb 1236 if(TMath::Abs(mcPart->Y())<=fcutRapidity)
12ca6c45 1237 {
1238 fHistMcPMLaPt->Fill(mcPart->Pt(),mcPart->M());
1239
1240 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1241 {fHistMcPMLaPtCent0005->Fill(mcPart->Pt(),mcPart->M());}
1242 if(centPercentile > 5.0 && centPercentile <= 10.0)
1243 {fHistMcPMLaPtCent0510->Fill(mcPart->Pt(),mcPart->M());}
1244 if(centPercentile > 10.0 && centPercentile <= 20.0)
1245 {fHistMcPMLaPtCent1020->Fill(mcPart->Pt(),mcPart->M());}
1246 if(centPercentile > 20.0 && centPercentile <= 40.0)
1247 {fHistMcPMLaPtCent2040->Fill(mcPart->Pt(),mcPart->M());}
1248 if(centPercentile > 40.0 && centPercentile <= 60.0)
1249 {fHistMcPMLaPtCent4060->Fill(mcPart->Pt(),mcPart->M());}
1250 if(centPercentile > 60.0 && centPercentile <= 90.0)
1251 {fHistMcPMLaPtCent6090->Fill(mcPart->Pt(),mcPart->M());}
5a4be586 1252
12ca6c45 1253 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1254 {fHistMcPMLaPtCent0090->Fill(mcPart->Pt(),mcPart->M());}
12ca6c45 1255 }
1256 }
1257 if(antilambdaMC)
1258 {
60dfeffb 1259 if(TMath::Abs(mcPart->Y())<=fcutRapidity)
12ca6c45 1260 {
1261 fHistMcPMLbPt->Fill(mcPart->Pt(),mcPart->M());
1262
1263 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1264 {fHistMcPMLbPtCent0005->Fill(mcPart->Pt(),mcPart->M());}
1265 if(centPercentile > 5.0 && centPercentile <= 10.0)
1266 {fHistMcPMLbPtCent0510->Fill(mcPart->Pt(),mcPart->M());}
1267 if(centPercentile > 10.0 && centPercentile <= 20.0)
1268 {fHistMcPMLbPtCent1020->Fill(mcPart->Pt(),mcPart->M());}
1269 if(centPercentile > 20.0 && centPercentile <= 40.0)
1270 {fHistMcPMLbPtCent2040->Fill(mcPart->Pt(),mcPart->M());}
1271 if(centPercentile > 40.0 && centPercentile <= 60.0)
1272 {fHistMcPMLbPtCent4060->Fill(mcPart->Pt(),mcPart->M());}
1273 if(centPercentile > 60.0 && centPercentile <= 90.0)
1274 {fHistMcPMLbPtCent6090->Fill(mcPart->Pt(),mcPart->M());}
1275 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1276 {fHistMcPMLbPtCent0090->Fill(mcPart->Pt(),mcPart->M());}
1277
12ca6c45 1278 }
1279 }
1280 if(kshortMC)
1281 {
60dfeffb 1282 if(TMath::Abs(mcPart->Y())<=fcutRapidity)
12ca6c45 1283 {
1284 fHistMcPMK0Pt->Fill(mcPart->Pt(),mcPart->M());
1285
1286 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1287 {fHistMcPMK0PtCent0005->Fill(mcPart->Pt(),mcPart->M());}
1288 if(centPercentile > 5.0 && centPercentile <= 10.0)
1289 {fHistMcPMK0PtCent0510->Fill(mcPart->Pt(),mcPart->M());}
1290 if(centPercentile > 10.0 && centPercentile <= 20.0)
1291 {fHistMcPMK0PtCent1020->Fill(mcPart->Pt(),mcPart->M());}
1292 if(centPercentile > 20.0 && centPercentile <= 40.0)
1293 {fHistMcPMK0PtCent2040->Fill(mcPart->Pt(),mcPart->M());}
1294 if(centPercentile > 40.0 && centPercentile <= 60.0)
1295 {fHistMcPMK0PtCent4060->Fill(mcPart->Pt(),mcPart->M());}
1296 if(centPercentile > 60.0 && centPercentile <= 90.0)
1297 {fHistMcPMK0PtCent6090->Fill(mcPart->Pt(),mcPart->M());}
1298 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1299 {fHistMcPMK0PtCent0090->Fill(mcPart->Pt(),mcPart->M());}
1300
12ca6c45 1301 }
1302 }
1303 }
1304
1305
5a4be586 1306 Int_t daughter0Label = mcPart->GetDaughter(0);
1307 AliAODMCParticle *mcDaughter0 = (AliAODMCParticle *)stack->UncheckedAt(daughter0Label);
1308 Int_t daughter0Type = -1;
1309 if(daughter0Label >= 0)
1310 {daughter0Type = mcDaughter0->GetPdgCode();}
12ca6c45 1311
5a4be586 1312 Int_t daughter1Label = mcPart->GetDaughter(1);
1313 AliAODMCParticle *mcDaughter1 = (AliAODMCParticle *)stack->UncheckedAt(daughter1Label);
1314 Int_t daughter1Type = -1;
1315 if(daughter1Label >= 1)
1316 {daughter1Type = mcDaughter1->GetPdgCode();}
1317
1318 if( isprimaryMC && kshortMC && TMath::Abs(daughter0Type) == 211 && TMath::Abs(daughter1Type) == 211)
1319 {
1320 Double_t dz=mcDaughter0->Zv() - mcZv, dy= mcDaughter0->Yv() - mcYv, dx= mcDaughter0->Xv() - mcXv;
1321 Double_t mcDecayLength = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
1322 Double_t mccTau = mcDecayLength*(mcPart->M())/(mcPart->P());
1323 Double_t mcCosPA = (dx*mcPart->Px()+dy*mcPart->Py()+dz*mcPart->Pz())/(mcDecayLength*mcPart->P());
1324 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1325 {
1326 fHistMcGenCosPaMK0->Fill(mcCosPA,mcPart->M());
1327 fHistMcGencTauMK0->Fill(mccTau,mcPart->M());
1328 fHistMcGenDcaMK0->Fill(1,mcPart->M());
1329 fHistMcGenNSigmaMK0->Fill(1.0,mcPart->M());
1330 fHistMcGenEtaMK0->Fill(mcPart->Eta(),mcPart->M());
1331 fHistMcGenRapMK0->Fill(mcPart->Y(),mcPart->M());
1332 fHistMcGenArmPodK0->Fill(1.0,1.0);
1333 }
1334
1335 }
1336
1337
1338 if( isprimaryMC && lambdaMC && ((daughter0Type == -211 && daughter1Type == 2212) || (daughter1Type == -211 && daughter0Type == 2212)) )
1339 {
1340 Double_t dz=mcDaughter0->Zv() - mcZv, dy= mcDaughter0->Yv() - mcYv, dx= mcDaughter0->Xv() - mcXv;
1341 Double_t mcDecayLength = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
1342 Double_t mccTau = mcDecayLength*(mcPart->M())/(mcPart->P());
1343 Double_t mcCosPA = (dx*mcPart->Px()+dy*mcPart->Py()+dz*mcPart->Pz())/(mcDecayLength*mcPart->P());
1344 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1345 {
1346 fHistMcGenCosPaMLa->Fill(mcCosPA,mcPart->M());
1347 fHistMcGencTauMLa->Fill(mccTau,mcPart->M());
1348 fHistMcGenDcaMLa->Fill(1,mcPart->M());
1349 fHistMcGenNSigmaMLa->Fill(1.0,mcPart->M());
1350 fHistMcGenEtaMLa->Fill(mcPart->Eta(),mcPart->M());
1351 fHistMcGenRapMLa->Fill(mcPart->Y(),mcPart->M());
1352 fHistMcGenArmPodLa->Fill(1.0,1.0);
1353 }
1354
1355 }
1356
1357
1358 if( isprimaryMC && antilambdaMC && ((daughter0Type == 211 && daughter1Type == -2212) || (daughter1Type == 211 && daughter0Type == -2212)) )
1359 {
1360 Double_t dz=mcDaughter0->Zv() - mcZv, dy= mcDaughter0->Yv() - mcYv, dx= mcDaughter0->Xv() - mcXv;
1361 Double_t mcDecayLength = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
1362 Double_t mccTau = mcDecayLength*(mcPart->M())/(mcPart->P());
1363 Double_t mcCosPA = (dx*mcPart->Px()+dy*mcPart->Py()+dz*mcPart->Pz())/(mcDecayLength*mcPart->P());
1364 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1365 {
1366 fHistMcGenCosPaMLb->Fill(mcCosPA,mcPart->M());
1367 fHistMcGencTauMLb->Fill(mccTau,mcPart->M());
1368 fHistMcGenDcaMLb->Fill(1,mcPart->M());
1369 fHistMcGenNSigmaMLb->Fill(1.0,mcPart->M());
1370 fHistMcGenEtaMLb->Fill(mcPart->Eta(),mcPart->M());
1371 fHistMcGenRapMLb->Fill(mcPart->Y(),mcPart->M());
1372 fHistMcGenArmPodLb->Fill(1.0,1.0);
1373 }
1374
1375 }
12ca6c45 1376 }
1377
1378 }
1379 }
1380 }
1381
1382 /********End of MC************************************/
1383
1384 // Find vertex, check if its good
1385 const AliAODVertex *vtx=aod->GetPrimaryVertex();
1386
1387 if (!vtx)
1388 {
1389 fHistLog->Fill(97);
1390 return;
1391 }
1392
1393
1394 if (vtx->GetNContributors()<3)
1395 {
1396 fHistLog->Fill(vtx->GetNContributors()+20);
1397 fHistLog->Fill(97);
1398 return;
1399 }
1400
12ca6c45 1401 Double_t zv=vtx->GetZ(), xv=vtx->GetX(), yv=vtx->GetY();
1402
1403 if (TMath::Abs(zv) > 10.)
1404 {
1405 fHistLog->Fill(96);
1406 return;
1407 }
1408
1409 fHistZVertex->Fill(zv);
1410
12ca6c45 1411 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1412 {fHistZVertexCent0005->Fill(zv);}
1413 if(centPercentile > 5.0 && centPercentile <= 10.0)
1414 {fHistZVertexCent0510->Fill(zv);}
1415 if(centPercentile > 10.0 && centPercentile <= 20.0)
1416 {fHistZVertexCent1020->Fill(zv);}
1417 if(centPercentile > 20.0 && centPercentile <= 40.0)
1418 {fHistZVertexCent2040->Fill(zv);}
1419 if(centPercentile > 40.0 && centPercentile <= 60.0)
1420 {fHistZVertexCent4060->Fill(zv);}
1421 if(centPercentile > 60.0 && centPercentile <= 90.0)
1422 {fHistZVertexCent6090->Fill(zv);}
1423 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1424 {fHistZVertexCent0090->Fill(zv);}
1425
1426 /********V0 loop for reconstructed event************************************/
1427
1428 Int_t nv0s = aod->GetNumberOfV0s();
1429 fHistNV0->Fill(nv0s);
1430
1431 for(Int_t i = 0; i < nv0s; i++)
1432 {
1433 fHistLog->Fill(7);
1434 AliAODv0 *v0=aod->GetV0(i); // pointer to reconstructed v0
1435 if(!v0)
1436 {
1437 //Printf("No V0 ");
1438 fHistLog->Fill(94);
1439 continue;
1440 }
1441
5a4be586 1442 /* V0s not consistent with K0, Lambda (La) or Antilambda (Lb) are rejected */
1443
12ca6c45 1444 Bool_t lambdaCandidate = kTRUE;
1445 Bool_t antilambdaCandidate = kTRUE;
1446 Bool_t k0Candidate = kTRUE;
1447
12ca6c45 1448 if (v0->MassLambda() < 1.08 || v0->MassLambda() > 1.2)
1449 {lambdaCandidate = kFALSE;}
1450 if (v0->MassAntiLambda() < 1.08 || v0->MassAntiLambda() > 1.2)
1451 {antilambdaCandidate = kFALSE;}
1452 if (v0->MassK0Short() < 0.414 || v0->MassK0Short() > 0.582)
1453 {k0Candidate = kFALSE;}
1454
12ca6c45 1455 if(lambdaCandidate == kFALSE && antilambdaCandidate == kFALSE && k0Candidate == kFALSE)
1456 {continue;}
1457
12ca6c45 1458 Double_t cosPA=v0->CosPointingAngle(aod->GetPrimaryVertex());
1459 Double_t xyz[3];
1460 v0->GetSecondaryVtx(xyz);
1461 Double_t decayL = TMath::Sqrt((xyz[0]-xv)*(xyz[0]-xv)+(xyz[1]-yv)*(xyz[1]-yv)+(xyz[2]-zv)*(xyz[2]-zv));
1462 Double_t dca=v0->DcaV0Daughters();
1463 Double_t eta=v0->PseudoRapV0();
1464
60dfeffb 1465 if(!AcceptV0_general(v0,aod,fcutCosPa,fcutNImpact,fcutDCA,fcutEta,fcutMinNClustersTPC, fcutRatio))
12ca6c45 1466 {
1467 fHistLog->Fill(86);
1468 continue;
1469 }
1470
12ca6c45 1471 int nnum = 1, pnum = 0;
1472 const AliAODTrack *ntracktest=(AliAODTrack *)v0->GetDaughter(nnum);
1473 if(ntracktest->Charge() > 0){nnum = 0; pnum = 1;}
1474
1475 const AliAODTrack *ntrack1=(AliAODTrack *)v0->GetDaughter(nnum);
1476 const AliAODTrack *ptrack1=(AliAODTrack *)v0->GetDaughter(pnum);
5a4be586 1477
12ca6c45 1478 if(ntrack1->Charge()>0)
5a4be586 1479 {fHistLog->Fill(55);}
12ca6c45 1480 if(ntrack1->Charge()==0)
5a4be586 1481 { fHistLog->Fill(50);}
12ca6c45 1482 if(ntrack1->Charge()<0)
5a4be586 1483 { fHistLog->Fill(45);}
1484
12ca6c45 1485 const AliAODPid *pid_p1=ptrack1->GetDetPid();
1486 const AliAODPid *pid_n1=ntrack1->GetDetPid();
bbfb6fac 1487
5a4be586 1488 if(!AcceptV0_particle(v0,1,fcutcTauMin, fcutRapidity, decayL, fcutNcTauMax))
12ca6c45 1489 { lambdaCandidate = kFALSE; }
5a4be586 1490 if(!AcceptV0_particle(v0,2,fcutcTauMin, fcutRapidity, decayL, fcutNcTauMax))
12ca6c45 1491 { antilambdaCandidate = kFALSE; }
5a4be586 1492 if(!AcceptV0_particle(v0,0,fcutcTauMin, fcutRapidity, decayL, fcutNcTauMax))
12ca6c45 1493 { k0Candidate = kFALSE; }
1494
12ca6c45 1495 if(TMath::Sqrt(v0->Pt2V0())<2)
1496 {
376a27f9 1497 if(!AcceptV0_lowpt(v0,fPIDResponse,1,fcutBetheBloch,fIsMonteCarlo))
12ca6c45 1498 { lambdaCandidate = kFALSE; }
376a27f9 1499 if(!AcceptV0_lowpt(v0,fPIDResponse,2,fcutBetheBloch,fIsMonteCarlo))
12ca6c45 1500 { antilambdaCandidate = kFALSE; }
376a27f9 1501 if(!AcceptV0_lowpt(v0,fPIDResponse,0,fcutBetheBloch,fIsMonteCarlo))
12ca6c45 1502 { k0Candidate = kFALSE; }
1503 }
1504
12ca6c45 1505 if(lambdaCandidate == kFALSE && antilambdaCandidate == kFALSE && k0Candidate == kFALSE)
1506 {continue;}
1507
bbfb6fac 1508 fHistLog->Fill(7);
1509 fHistPt->Fill(TMath::Sqrt(v0->Pt2V0()));
1510 fHistEta->Fill(v0->PseudoRapV0());
1511
5a4be586 1512 double ArmenterosAlpha = v0->Alpha();
1513 double ArmenterosPt = v0->QtProng();
1514 if( ArmenterosPt <= TMath::Abs(fcutArmenteros*ArmenterosAlpha) && fcutArmenteros !=-999 )
1515 {k0Candidate = false;}
1516
1517 /* MC Associated selection is performed, but candidates failing are tagged not rejected, so MC and data can be compared */
1518
12ca6c45 1519 bool feeddown = false;
5a4be586 1520 bool mcPrimary2 = true;
1521
1522 double mcAsCosPa(0), mcAsMass(0), mcAscTau(0), mcAsEta(0), mcAsRap(0);
12ca6c45 1523
5a4be586 1524 fHistLog->Fill(31);
1525
1526 Bool_t mcAslambdaCandidate = lambdaCandidate;
1527 Bool_t mcAsantilambdaCandidate = antilambdaCandidate;
1528 Bool_t mcAsk0Candidate = k0Candidate;
60dfeffb 1529 if(fIsMonteCarlo)
12ca6c45 1530 {
12ca6c45 1531 bool passedTests = false;
12ca6c45 1532 TList *list = aod->GetList();
1533 TClonesArray *stack = 0x0;
1534 stack = (TClonesArray*)list->FindObject(AliAODMCParticle::StdBranchName());
1535 if (!stack)
1536 {
1537 Printf("ERROR: stack not available");
1538 fHistLog->Fill(84);
1539 }
1540 else
5a4be586 1541
bbfb6fac 1542 {
12ca6c45 1543 Int_t negAssLabel = TMath::Abs(ntrack1->GetLabel());
5a4be586 1544 Int_t posAssLabel = TMath::Abs(ptrack1->GetLabel());
1545 fHistLog->Fill(35);
1546 if(negAssLabel>=0 && negAssLabel < stack->GetEntriesFast() && posAssLabel>=0 && posAssLabel < stack->GetEntriesFast() )
12ca6c45 1547 {
5a4be586 1548 fHistLog->Fill(36);
1549 AliAODMCParticle *mcNegPart =(AliAODMCParticle*)stack->UncheckedAt(negAssLabel);
1550 Int_t v0Label = mcNegPart->GetMother();
1551 AliAODMCParticle *mcPosPart =(AliAODMCParticle*)stack->UncheckedAt(posAssLabel);
1552 Int_t v0PosLabel = mcPosPart->GetMother();
1553 if(v0Label >= 0 && v0Label < stack->GetEntriesFast() && v0Label == v0PosLabel)
bbfb6fac 1554 {
5a4be586 1555 fHistLog->Fill(37);
1556 AliAODMCParticle *mcv0 = (AliAODMCParticle *)stack->UncheckedAt(v0Label);
1557 passedTests = true;
1558
1559 if ((v0Label >= isInjected && isInjected >= 0 && isMCtype == 1) || (v0Label < isInjected && isInjected >= 0 && isMCtype == -1))
12ca6c45 1560 {
5a4be586 1561 mcAslambdaCandidate = false;
1562 mcAsk0Candidate = false;
1563 mcAsantilambdaCandidate = false;
12ca6c45 1564 }
5a4be586 1565
1566 if(mcv0->GetPdgCode() != kLambda0)
1567 {mcAslambdaCandidate = false;}
12ca6c45 1568 if(mcv0->GetPdgCode() != kK0Short)
5a4be586 1569 {mcAsk0Candidate = false;}
12ca6c45 1570 if(mcv0->GetPdgCode() != kLambda0Bar)
5a4be586 1571 {mcAsantilambdaCandidate = false;}
1572
1573 Double_t mcAsdz=mcNegPart->Zv() - mcZv, mcAsdy= mcNegPart->Yv() - mcYv, mcAsdx= mcNegPart->Xv() - mcXv;
1574 Double_t mcAsDecayLength = TMath::Sqrt(mcAsdx*mcAsdx + mcAsdy*mcAsdy + mcAsdz*mcAsdz);
1575 mcAscTau = mcAsDecayLength*(mcv0->M())/(mcv0->P());
1576 mcAsCosPa = (mcAsdx*mcv0->Px()+mcAsdy*mcv0->Py()+mcAsdz*mcv0->Pz())/(mcAsDecayLength*mcv0->P());
1577 mcAsMass = mcv0->M();
1578 mcAsEta = mcv0->Eta();
1579 mcAsRap = mcv0->Y();
1580
1581
1582 Int_t motherLabel = mcv0->GetMother();
1583 Int_t motherType = -1;
1584 bool sigma0MC2 = false;
1585
1586 if(motherLabel >= 0 && v0Label < stack->GetEntriesFast() )
12ca6c45 1587 {
5a4be586 1588 AliAODMCParticle *mcMother = (AliAODMCParticle *)stack->UncheckedAt(motherLabel);
1589 motherType = mcMother->GetPdgCode();
1590
1591 // this block of code is used to include primary Sigma0 decays as primary lambda/antilambda
1592
1593 if ((motherLabel >= isInjected && isInjected >= 0 && isMCtype == 1) || (motherLabel < isInjected && isInjected >= 0 && isMCtype == -1))
1594 {
1595 mcAslambdaCandidate = false;
1596 mcAsk0Candidate = false;
1597 mcAsantilambdaCandidate = false;
1598 }
1599 if(motherType == 3212 || motherType == -3212)
1600 {
1601 if(mcMother->IsPhysicalPrimary() && (lambdaCandidate || antilambdaCandidate))
1602 //if(checkPrimaryStatus(mcMother, xv, yv, zv))
1603 {sigma0MC2 = true;}
1604 }
1605 if(motherType == 3322 || motherType == -3322 || motherType == 3312 || motherType == -3312 )
1606 {
1607 if(mcMother->IsPhysicalPrimary() && (lambdaCandidate || antilambdaCandidate))
1608 //if(checkPrimaryStatus(mcMother, xv, yv, zv))
1609 {feeddown = true;}
1610 }
1611 }
1612
1613
1614 if(!sigma0MC2 && !mcv0->IsPhysicalPrimary() && !feeddown)
1615 //if(!sigma0MC2 && !checkPrimaryStatus(mcv0, mcXv, mcYv, mcZv) && !feeddown)
12ca6c45 1616 {
5a4be586 1617 fHistLog->Fill(38);
1618 mcAslambdaCandidate = false;
1619 mcAsk0Candidate = false;
1620 mcAsantilambdaCandidate = false;
12ca6c45 1621 }
5a4be586 1622
1623 if(!(sigma0MC2 || mcv0->IsPhysicalPrimary()))
1624 {mcPrimary2 = false;}
12ca6c45 1625 }
12ca6c45 1626 }
1627 }
1628
12ca6c45 1629 if(passedTests == false)
1630 {
5a4be586 1631 fHistLog->Fill(39);
1632 mcAslambdaCandidate = false;
1633 mcAsk0Candidate = false;
1634 mcAsantilambdaCandidate = false;
12ca6c45 1635 }
5a4be586 1636
12ca6c45 1637 }
1638
5a4be586 1639
1640 fHistLog->Fill(32);
12ca6c45 1641
5a4be586 1642 /* We now fill histograms, starting with all v0 candidates, and then MC particles only */
12ca6c45 1643
1644 if(lambdaCandidate)
1645 {
1646
12ca6c45 1647 fHistMLaPt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());
1648 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1649 {fHistMLaPtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1650 if(centPercentile > 5.0 && centPercentile <= 10.0)
1651 {fHistMLaPtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1652 if(centPercentile > 10.0 && centPercentile <= 20.0)
1653 {fHistMLaPtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1654 if(centPercentile > 20.0 && centPercentile <= 40.0)
1655 {fHistMLaPtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1656 if(centPercentile > 40.0 && centPercentile <= 60.0)
1657 {fHistMLaPtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1658 if(centPercentile > 60.0 && centPercentile <= 90.0)
1659 {fHistMLaPtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
5a4be586 1660
12ca6c45 1661
1662 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1663 {
5a4be586 1664
12ca6c45 1665 fHistMLaPtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());
1666 fHistBBLaPos->Fill(pid_p1->GetTPCmomentum(),pid_p1->GetTPCsignal());
1667 fHistBBLaNeg->Fill(pid_n1->GetTPCmomentum(),pid_n1->GetTPCsignal());
5a4be586 1668
1669
1670
1671 fHistCosPaMLa->Fill(cosPA,v0->MassLambda());
1672 fHistcTauMLa->Fill(decayL*(TMath::Sqrt(v0->Pt2V0()))/(v0->P()),v0->MassLambda());
1673 fHistDcaMLa->Fill(dca,v0->MassLambda());
1674 fHistNSigmaMLa->Fill(1.0,v0->MassLambda());
1675 fHistEtaMLa->Fill(eta,v0->MassLambda());
1676 fHistRapMLa->Fill(v0->RapLambda(),v0->MassLambda());
1677 fHistArmPodLa->Fill(ArmenterosAlpha,ArmenterosPt);
1678
1679
1680
1681
1682
12ca6c45 1683 }
1684
1685 }
1686 if(antilambdaCandidate)
1687 {
5a4be586 1688
12ca6c45 1689 fHistMLbPt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());
1690
1691 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1692 {fHistMLbPtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1693 if(centPercentile > 5.0 && centPercentile <= 10.0)
1694 {fHistMLbPtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1695 if(centPercentile > 10.0 && centPercentile <= 20.0)
1696 {fHistMLbPtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1697 if(centPercentile > 20.0 && centPercentile <= 40.0)
1698 {fHistMLbPtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1699 if(centPercentile > 40.0 && centPercentile <= 60.0)
1700 {fHistMLbPtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1701 if(centPercentile > 60.0 && centPercentile <= 90.0)
1702 {fHistMLbPtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1703
1704 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1705 {
1706 fHistMLbPtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());
1707 fHistBBLbPos->Fill(pid_p1->GetTPCmomentum(),pid_p1->GetTPCsignal());
1708 fHistBBLbNeg->Fill(pid_n1->GetTPCmomentum(),pid_n1->GetTPCsignal());
5a4be586 1709
1710
1711
1712 fHistCosPaMLb->Fill(cosPA,v0->MassAntiLambda());
1713 fHistcTauMLb->Fill(decayL*(v0->MassAntiLambda())/(v0->P()),v0->MassAntiLambda());
1714 fHistDcaMLb->Fill(dca,v0->MassAntiLambda());
1715 fHistNSigmaMLb->Fill(1.0,v0->MassAntiLambda());
1716 fHistEtaMLb->Fill(eta,v0->MassAntiLambda());
1717 fHistRapMLb->Fill(v0->RapLambda(),v0->MassAntiLambda());
1718 fHistArmPodLb->Fill(ArmenterosAlpha,ArmenterosPt);
1719
1720
1721
12ca6c45 1722 }
1723 }
5a4be586 1724 if(k0Candidate){fHistLog->Fill(33);}
12ca6c45 1725 if(k0Candidate)
1726 {
5a4be586 1727 fHistLog->Fill(34);
12ca6c45 1728 fHistMK0Pt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());
1729
1730 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1731 {fHistMK0PtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1732 if(centPercentile > 5.0 && centPercentile <= 10.0)
1733 {fHistMK0PtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1734 if(centPercentile > 10.0 && centPercentile <= 20.0)
1735 {fHistMK0PtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1736 if(centPercentile > 20.0 && centPercentile <= 40.0)
1737 {fHistMK0PtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1738 if(centPercentile > 40.0 && centPercentile <= 60.0)
1739 {fHistMK0PtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1740 if(centPercentile > 60.0 && centPercentile <= 90.0)
1741 {fHistMK0PtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1742
1743 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1744 {
1745 fHistMK0PtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());
1746 fHistBBK0Pos->Fill(pid_p1->GetTPCmomentum(),pid_p1->GetTPCsignal());
1747 fHistBBK0Neg->Fill(pid_n1->GetTPCmomentum(),pid_n1->GetTPCsignal());
5a4be586 1748
1749
1750
1751 fHistCosPaMK0->Fill(cosPA,v0->MassK0Short());
1752 fHistcTauMK0->Fill(decayL*(v0->MassK0Short())/(v0->P()),v0->MassK0Short());
1753 fHistDcaMK0->Fill(dca,v0->MassK0Short());
1754 fHistNSigmaMK0->Fill(1.0,v0->MassK0Short());
1755 fHistEtaMK0->Fill(eta,v0->MassK0Short());
1756 fHistRapMK0->Fill(v0->RapK0Short(),v0->MassK0Short());
1757 fHistArmPodK0->Fill(ArmenterosAlpha,ArmenterosPt);
1758
1759
12ca6c45 1760 }
1761
5a4be586 1762 }
1763
1764 /* below here, non MC-As candidates are rejected, and MC-As histograms are filled. */
1765
1766 if(!mcAslambdaCandidate && !mcAsantilambdaCandidate && !mcAsk0Candidate)
1767 {continue;}
1768
1769 if(fIsMonteCarlo)
1770 {
1771 if(mcAslambdaCandidate)
12ca6c45 1772 {
5a4be586 1773
1774 if(!feeddown && mcPrimary2)
1775 {
1776 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1777 {fHistMcAsMLaPtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1778 if(centPercentile > 5.0 && centPercentile <= 10.0)
1779 {fHistMcAsMLaPtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1780 if(centPercentile > 10.0 && centPercentile <= 20.0)
1781 {fHistMcAsMLaPtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1782 if(centPercentile > 20.0 && centPercentile <= 40.0)
1783 {fHistMcAsMLaPtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1784 if(centPercentile > 40.0 && centPercentile <= 60.0)
1785 {fHistMcAsMLaPtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1786 if(centPercentile > 60.0 && centPercentile <= 90.0)
1787 {fHistMcAsMLaPtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1788 }
1789
1790 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1791 {
1792 if(feeddown)
1793 {fHistMcFMLaPt->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());}
1794 if(!feeddown && mcPrimary2)
1795 {
1796 fHistMcAsMLaPtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassLambda());
1797
1798 fHistMcAsReconCosPaMLa->Fill(cosPA,v0->MassLambda());
1799 fHistMcAsReconcTauMLa->Fill(decayL*(TMath::Sqrt(v0->Pt2V0()))/(v0->P()),v0->MassLambda());
1800 fHistMcAsReconDcaMLa->Fill(dca,v0->MassLambda());
1801 fHistMcAsReconNSigmaMLa->Fill(1.0,v0->MassLambda());
1802 fHistMcAsReconEtaMLa->Fill(eta,v0->MassLambda());
1803 fHistMcAsReconRapMLa->Fill(v0->RapLambda(),v0->MassLambda());
1804 fHistMcAsReconArmPodLa->Fill(ArmenterosAlpha,ArmenterosPt);
1805
1806
1807
1808 fHistMcAsTruthCosPaMLa->Fill(mcAsCosPa,mcAsMass);
1809 fHistMcAsTruthcTauMLa->Fill(mcAscTau,mcAsMass);
1810 fHistMcAsTruthDcaMLa->Fill(1.0,mcAsMass);
1811 fHistMcAsTruthNSigmaMLa->Fill(1.0,mcAsMass);
1812 fHistMcAsTruthEtaMLa->Fill(mcAsEta,mcAsMass);
1813 fHistMcAsTruthRapMLa->Fill(mcAsRap,mcAsMass);
1814 fHistMcAsTruthArmPodLa->Fill(1.0,1.0);
1815
1816 }
1817
1818 }
1819
12ca6c45 1820 }
5a4be586 1821 if(mcAsantilambdaCandidate)
1822 {
1823 if(!feeddown && mcPrimary2)
1824 {
1825 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1826 {fHistMcAsMLbPtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1827 if(centPercentile > 5.0 && centPercentile <= 10.0)
1828 {fHistMcAsMLbPtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1829 if(centPercentile > 10.0 && centPercentile <= 20.0)
1830 {fHistMcAsMLbPtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1831 if(centPercentile > 20.0 && centPercentile <= 40.0)
1832 {fHistMcAsMLbPtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1833 if(centPercentile > 40.0 && centPercentile <= 60.0)
1834 {fHistMcAsMLbPtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1835 if(centPercentile > 60.0 && centPercentile <= 90.0)
1836 {fHistMcAsMLbPtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());}
1837
1838 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1839 {
1840 fHistMcAsMLbPtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassAntiLambda());
1841
1842 fHistMcAsReconCosPaMLb->Fill(cosPA,v0->MassAntiLambda());
1843 fHistMcAsReconcTauMLb->Fill(decayL*(v0->MassAntiLambda())/(v0->P()),v0->MassAntiLambda());
1844 fHistMcAsReconDcaMLb->Fill(dca,v0->MassAntiLambda());
1845 fHistMcAsReconNSigmaMLb->Fill(1.0,v0->MassAntiLambda());
1846 fHistMcAsReconEtaMLb->Fill(eta,v0->MassAntiLambda());
1847 fHistMcAsReconRapMLb->Fill(v0->RapLambda(),v0->MassAntiLambda());
1848 fHistMcAsReconArmPodLb->Fill(ArmenterosAlpha,ArmenterosPt);
1849
1850
1851 fHistMcAsTruthCosPaMLb->Fill(mcAsCosPa,mcAsMass);
1852 fHistMcAsTruthcTauMLb->Fill(mcAscTau,mcAsMass);
1853 fHistMcAsTruthDcaMLb->Fill(1.0,mcAsMass);
1854 fHistMcAsTruthNSigmaMLb->Fill(1.0,mcAsMass);
1855 fHistMcAsTruthEtaMLb->Fill(mcAsEta,mcAsMass);
1856 fHistMcAsTruthRapMLb->Fill(mcAsRap,mcAsMass);
1857 fHistMcAsTruthArmPodLb->Fill(1.0,1.0);
1858
1859 }
1860 }
1861 }
1862 if(mcAsk0Candidate && mcPrimary2)
1863 {
1864 if(centPercentile >= 0.0001 && centPercentile <= 5.0)
1865 {fHistMcAsMK0PtCent0005->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1866 if(centPercentile > 5.0 && centPercentile <= 10.0)
1867 {fHistMcAsMK0PtCent0510->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1868 if(centPercentile > 10.0 && centPercentile <= 20.0)
1869 {fHistMcAsMK0PtCent1020->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1870 if(centPercentile > 20.0 && centPercentile <= 40.0)
1871 {fHistMcAsMK0PtCent2040->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1872 if(centPercentile > 40.0 && centPercentile <= 60.0)
1873 {fHistMcAsMK0PtCent4060->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1874 if(centPercentile > 60.0 && centPercentile <= 90.0)
1875 {fHistMcAsMK0PtCent6090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());}
1876 if(centPercentile >= 0.0001 && centPercentile <= 90.0)
1877 {
1878 fHistMcAsMK0PtCent0090->Fill(TMath::Sqrt(v0->Pt2V0()),v0->MassK0Short());
1879
1880 fHistMcAsReconCosPaMK0->Fill(cosPA,v0->MassK0Short());
1881 fHistMcAsReconcTauMK0->Fill(decayL*(v0->MassK0Short())/(v0->P()),v0->MassK0Short());
1882 fHistMcAsReconDcaMK0->Fill(dca,v0->MassK0Short());
1883 fHistMcAsReconNSigmaMK0->Fill(1.0,v0->MassK0Short());
1884 fHistMcAsReconEtaMK0->Fill(eta,v0->MassK0Short());
1885 fHistMcAsReconRapMK0->Fill(v0->RapK0Short(),v0->MassK0Short());
1886 fHistMcAsReconArmPodK0->Fill(ArmenterosAlpha,ArmenterosPt);
1887
1888
1889 fHistMcAsTruthCosPaMK0->Fill(mcAsCosPa,mcAsMass);
1890 fHistMcAsTruthcTauMK0->Fill(mcAscTau,mcAsMass);
1891 fHistMcAsTruthDcaMK0->Fill(1.0,mcAsMass);
1892 fHistMcAsTruthNSigmaMK0->Fill(1.0,mcAsMass);
1893 fHistMcAsTruthEtaMK0->Fill(mcAsEta,mcAsMass);
1894 fHistMcAsTruthRapMK0->Fill(mcAsRap,mcAsMass);
1895 fHistMcAsTruthArmPodK0->Fill(1.0,1.0);
1896
1897 }
1898
12ca6c45 1899 }
1900 }
5a4be586 1901
1902 }
12ca6c45 1903
bbfb6fac 1904 /********End of V0 loop for reconstructed event*****************************/
12ca6c45 1905
1906
1907
1908
1909 fHistLog->Fill(9);
5a4be586 1910 // NEW HISTO should be filled before this point, as PostData puts the
1911 // information for this iteration of the UserExec in the container
1912 PostData(1, fOutput);
12ca6c45 1913}
1914
1915
1916//________________________________________________________________________
8a7cb9cc 1917void AliAnalysisTaskLukeAOD::Terminate(Option_t *)
12ca6c45 1918{
5a4be586 1919 // Draw result to screen, or perform fitting, normalizations
1920 // Called once at the end of the query
12ca6c45 1921
5a4be586 1922 fOutput = dynamic_cast<TList*> (GetOutputData(1));
1923 if(!fOutput) { Printf("ERROR: could not retrieve TList fOutput"); return; }
12ca6c45 1924
5a4be586 1925 fHistPt = dynamic_cast<TH1F*> (fOutput->FindObject("fHistPt"));
1926 if (!fHistPt) { Printf("ERROR: could not retrieve fHistPt"); return;}
1927 fHistEta = dynamic_cast<TH1F*> (fOutput->FindObject("fHistEta"));
1928 if (!fHistEta) { Printf("ERROR: could not retrieve fHistEta"); return;}
12ca6c45 1929
5a4be586 1930 // Get the physics selection histograms with the selection statistics
1931 //AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
1932 //AliESDInputHandler *inputH = dynamic_cast<AliESDInputHandler*>(mgr->GetInputEventHandler());
1933 //TH2F *histStat = (TH2F*)inputH->GetStatistics();
12ca6c45 1934
1935
5a4be586 1936 // NEW HISTO should be retrieved from the TList container in the above way,
1937 // so it is available to draw on a canvas such as below
12ca6c45 1938
5a4be586 1939 TCanvas *c = new TCanvas("AliAnalysisTaskLukeAOD","P_{T} & #eta",10,10,1020,510);
1940 c->Divide(2,1);
1941 c->cd(1)->SetLogy();
1942 fHistPt->DrawCopy("E");
1943 c->cd(2);
1944 fHistEta->DrawCopy("E");
12ca6c45 1945}