Adding some checks for track splitting
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Correlations / AliAnalysisTaskLambdaOverK0sJets.cxx
CommitLineData
667b678a 1/*************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: X. Sanchez Castro *
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
53f51bff 16//git test
17
667b678a 18#include <TCanvas.h>
19#include <TTree.h>
20#include <TFile.h>
21#include <TH1F.h>
22#include <TH2F.h>
9cb4cfe3 23#include <THnSparse.h>
667b678a 24#include <TH3F.h>
25#include <TPDGCode.h>
26#include <TDatabasePDG.h>
27#include <TClonesArray.h>
28#include <TROOT.h>
29
30#include "AliOADBContainer.h"
31
32#include "AliAODMCHeader.h"
33#include "AliAODMCParticle.h"
34#include "AliGenHijingEventHeader.h"
35
36#include "AliAODEvent.h"
37#include "AliAODv0.h"
38#include "AliAODcascade.h"
39
40#include "AliCFContainer.h"
41#include "AliCentrality.h"
42
43#include "AliPID.h"
44#include "AliPIDResponse.h"
45#include "AliAODPid.h"
46
47#include "AliInputEventHandler.h"
48#include "AliAnalysisManager.h"
49
50#include "AliAnalysisTaskLambdaOverK0sJets.h"
51
9cb4cfe3 52//extern TROOT *gROOT;
53
29f14569 54
667b678a 55ClassImp(AliAnalysisTaskLambdaOverK0sJets)
348080d3 56ClassImp(AliMiniParticle)
667b678a 57
58// Global variables:
59static Int_t nbins = 100; // Number of bins for l, pt, mass for V0
60static Int_t nbinsPhi = 120; // Number of bins for Phi
2757a40b 61static Int_t nbinsdPhi = 20; // Number of bins for dPhi
b6f9da99 62static Int_t nbinsdEta = 30; // Number of bins for dEta
667b678a 63static Int_t nbinPtLP = 200;
64static Int_t nbinsVtx = 20;
65
b6a9eae2 66static Float_t pMin = 0.0; // Lower cut for transverse momentum
67static Float_t pMax = 10.; // Max cut for transverse momentum for V0
68static Float_t ptMaxLP = 50.; // Max cut for transverse momentum LP
667b678a 69
b6a9eae2 70static Float_t lMin = 0.0; // Limits in the histo for fidutial volume
71static Float_t lMax = 100.; // Limits in the fidutial volume
667b678a 72
348080d3 73static Int_t nMaxEvMix = 250;
74
667b678a 75//
76//
77//
78
79AliAnalysisTaskLambdaOverK0sJets::AliAnalysisTaskLambdaOverK0sJets(const char *name) :
80 AliAnalysisTaskSE(name),
81
80c0bcd3 82 fAOD(0), fCollision("PbPb2010"), fIsMC(kFALSE), fUsePID(kFALSE), fCentMin(0.), fCentMax(90.), fDoQA(kFALSE), fDoMixEvt(kFALSE), fTrigPtMin(5.), fTrigPtMax(10.), fTrigPtMCMin(5.), fTrigPtMCMax(10000.), fTrigEtaMax(0.8), fCheckIDTrig(kFALSE), fSeparateInjPart(kTRUE), fEndOfHijingEvent(-1), fPIDResponse(0),
6668159e 83
9cb4cfe3 84 fMinPtDaughter(0.160), fMaxEtaDaughter(0.8), fMaxDCADaughter(1.0), fUseEtaCut(kFALSE), fYMax(0.7), fDCAToPrimVtx(0.1), fMinCPA(0.998), fNSigma(3.0), fDaugNClsTPC(70.), fMinCtau(0.), fMaxCtau(3.), fIdTrigger(-1), fIsV0LP(0), fPtV0LP(0.), fIsSndCheck(0),
6668159e 85
773f3106 86 fOutput(0), fOutputQA(0), fOutputME(0), fMEList(0x0), fTriggerParticles(0x0), fTriggerPartMC(0x0), fAssocParticles(0x0), fAssocPartMC(0x0), fEvents(0), fCentrality(0), fCentrality2(0), fCentralityTrig(0), fPrimayVtxGlobalvsSPD(0), fPrimaryVertexX(0), fPrimaryVertexY(0), fPrimaryVertexZ(0),
667b678a 87
a0f483d6 88 fTriggerEventPlane(0), fTriggerMCPtCent(0), fTriggerMCResPt(0), fTriggerMCResEta(0), fTriggerMCResPhi(0), fTriggerPtCent(0), fTriggerPtCentCh(0), fNTrigPerEvt(0), fTriggerWiSPDHit(0), fTriggerEtaPhi(0), fCheckTriggerFromV0Daug(0), fTriggerComingFromDaug(0), fTriggerIsV0(0), fCheckIDTrigPtK0s(0), fCheckIDTrigPhiK0s(0), fCheckIDTrigEtaK0s(0), fCheckIDTrigNclsK0s(0), fCheckIDTrigPtLambda(0), fCheckIDTrigPhiLambda(0), fCheckIDTrigEtaLambda(0), fCheckIDTrigNclsLambda(0), fCheckIDTrigPtAntiLambda(0), fCheckIDTrigPhiAntiLambda(0), fCheckIDTrigEtaAntiLambda(0), fCheckIDTrigNclsAntiLambda(0),
667b678a 89
ca96d60a 90fInjectedParticles(0),
91
099a1ea9 92fK0sMCPt(0), fK0sMCPtRap(0), fK0sMCPtRap2(0), fK0sMCPtRapEmbeded(0), fK0sAssocPt(0), fK0sAssocPtArm(0), fK0sAssocPtRap(0), fK0sAssocPtRapEmbeded(0), fK0sMCResEta(0), fK0sMCResPhi(0), fLambdaMCPt(0), fLambdaMCPtRap(0), fLambdaMCPtRap2(0), fLambdaMCPtRapEmbeded(0), fLambdaMCFromXi(0), fLambdaAssocPt(0), fLambdaAssocPtRap(0), fLambdaAssocFromXi(0), fLambdaMCResEta(0), fLambdaMCResPhi(0), fAntiLambdaMCPt(0), fAntiLambdaMCPtRap(0), fAntiLambdaMCPtRap2(0), fAntiLambdaMCPtRapEmbeded(0), fAntiLambdaMCFromXi(0), fAntiLambdaAssocPt(0), fAntiLambdaAssocPtRap(0), fAntiLambdaAssocFromXi(0), fAntiLambdaMCResEta(0), fAntiLambdaMCResPhi(0),
92d8f256 93
94 fHistArmenterosPodolanski(0), fHistArmPodBckg(0),
b6a9eae2 95
773f3106 96 fK0sMass(0), fK0sMassEmbeded(0), fK0sMassPtEta(0), fK0sMassPtPhi(0), fK0sDaughtersPt(0), fSharedClsTrigDaug(0), fK0sPosDaugSplCheckCovMat(0x0), fK0sNegDaugSplCheckCovMat(0x0), fK0sDCADaugToPrimVtx(0), fK0sSpatialRes(0), fK0sBckgDecLength(0), fK0sBckgDCADaugToPrimVtx(0), fK0sBckgEtaPhi(0), fK0sBckgPhiRadio(0), fK0sBckgDCANegDaugToPrimVtx(0), fK0sBckgDCAPosDaugToPrimVtx(0), fV0MassCascade(0),
348080d3 97
773f3106 98 fLambdaMass(0), fLambdaMassEmbeded(0), fLambdaMass2(0), fLambdaMass2Embeded(0), fLambdaMassPtEta(0), fLambdaMassPtPhi(0), fLambdaDaughtersPt(0), fLambdaPosDaugSplCheckCovMat(0x0), fLambdaNegDaugSplCheckCovMat(0x0), fLambdaDCADaugToPrimVtx(0), fLambdaSpatialRes(0), fLambdaBckgDecLength(0), fLambdaBckgDCADaugToPrimVtx(0), fLambdaBckgEtaPhi(0), fLambdaBckgPhiRadio(0), fLambdaBckgDCANegDaugToPrimVtx(0), fLambdaBckgDCAPosDaugToPrimVtx(0),
f25a6d07 99
773f3106 100 fAntiLambdaMass(0), fAntiLambdaMassEmbeded(0), fAntiLambdaMass2(0), fAntiLambdaMass2Embeded(0), fAntiLambdaMassPtEta(0), fAntiLambdaMassPtPhi(0), fAntiLambdaDaughtersPt(0), fAntiLambdaPosDaugSplCheckCovMat(0x0), fAntiLambdaNegDaugSplCheckCovMat(0x0), fAntiLambdaDCADaugToPrimVtx(0), fAntiLambdaSpatialRes(0), fAntiLambdaBckgDecLength(0), fAntiLambdaBckgDCADaugToPrimVtx(0), fAntiLambdaBckgEtaPhi(0), fAntiLambdaBckgPhiRadio(0), fAntiLambdaBckgDCANegDaugToPrimVtx(0), fAntiLambdaBckgDCAPosDaugToPrimVtx(0),
80c0bcd3 101
ca96d60a 102 fK0sPtPosDaug(0), fK0sPtNegDaug(0), fK0sBckgPtPosDaug(0), fK0sBckgPtNegDaug(0), fK0sPhiEtaPosDaug(0), fK0sPhiEtaNegDaug(0), fK0sBckgPhiEtaPosDaug(0), fK0sBckgPhiEtaNegDaug(0), fK0sDCAPosDaug(0), fK0sDCANegDaug(0), fK0sBckgDCAPosDaug(0), fK0sBckgDCANegDaug(0), fK0sDecayPos(0), fK0sBckgDecayPos(0), fK0sDecayVertex(0), fK0sBckgDecayVertex(0), fK0sCPA(0), fK0sBckgCPA(0), fK0sDCAV0Daug(0), fK0sBckgDCAV0Daug(0), fK0sNClustersTPC(0), fK0sBckgNClustersTPC(0), fK0sNClustersITSPos(0), fK0sNClustersITSNeg(0), fK0sBckgNClustersITSPos(0), fK0sBckgNClustersITSNeg(0),
667b678a 103
ca96d60a 104 fLambdaPtPosDaug(0), fLambdaPtNegDaug(0), fLambdaBckgPtPosDaug(0), fLambdaBckgPtNegDaug(0), fLambdaPhiEtaPosDaug(0),fLambdaPhiEtaNegDaug(0), fLambdaBckgPhiEtaPosDaug(0),fLambdaBckgPhiEtaNegDaug(0), fLambdaDCAPosDaug(0),fLambdaDCANegDaug(0), fLambdaBckgDCAPosDaug(0), fLambdaBckgDCANegDaug(0), fLambdaDecayPos(0), fLambdaBckgDecayPos(0), fLambdaDecayVertex(0), fLambdaBckgDecayVertex(0), fLambdaCPA(0), fLambdaBckgCPA(0), fLambdaDCAV0Daug(0), fLambdaBckgDCAV0Daug(0), fLambdaNClustersTPC(0), fLambdaBckgNClustersTPC(0), fLambdaNClustersITSPos(0), fLambdaNClustersITSNeg(0), fLambdaBckgNClustersITSPos(0), fLambdaBckgNClustersITSNeg(0),
59e0735e 105
ca96d60a 106 fAntiLambdaPtPosDaug(0), fAntiLambdaPtNegDaug(0), fAntiLambdaBckgPtPosDaug(0), fAntiLambdaBckgPtNegDaug(0), fAntiLambdaPhiEtaPosDaug(0),fAntiLambdaPhiEtaNegDaug(0), fAntiLambdaBckgPhiEtaPosDaug(0),fAntiLambdaBckgPhiEtaNegDaug(0), fAntiLambdaDCAPosDaug(0),fAntiLambdaDCANegDaug(0), fAntiLambdaBckgDCAPosDaug(0), fAntiLambdaBckgDCANegDaug(0), fAntiLambdaDecayPos(0), fAntiLambdaBckgDecayPos(0), fAntiLambdaDecayVertex(0), fAntiLambdaBckgDecayVertex(0), fAntiLambdaCPA(0), fAntiLambdaBckgCPA(0), fAntiLambdaDCAV0Daug(0), fAntiLambdaBckgDCAV0Daug(0), fAntiLambdaNClustersTPC(0), fAntiLambdaBckgNClustersTPC(0), fAntiLambdaNClustersITSPos(0), fAntiLambdaNClustersITSNeg(0), fAntiLambdaBckgNClustersITSPos(0), fAntiLambdaBckgNClustersITSNeg(0)
667b678a 107
108{
109 // Dummy Constructor
110
ca96d60a 111 // Particles properties in MC
fbaec09e 112 for (Int_t i=0; i<kNCent; i++){
ca96d60a 113
59e0735e 114 // K0s
099a1ea9 115 fK0sMCPtRapVtx[i] = 0;
116 fK0sMCPtRapVtxEmbeded[i] = 0;
b6f9da99 117 fK0sMCPtPhiEta[i] = 0;
118 fK0sAssocPtPhiEta[i] = 0;
ca96d60a 119 // -- Natural particles
120 fK0sAssocPtMassArm[i] = 0;
121 fK0sAssocMassPtVtx[i] = 0;
122 fK0sAssocMassPtDCADaug[i] = 0;
123 fK0sAssocMassPtCPA[i] = 0;
124 fK0sAssocMassPtDCAPV[i] = 0;
125 fK0sAssocMassPtDaugNClsTPC[i] = 0;
126 // -- Embeded particles
127 fK0sAssocPtMassArmEmbeded[i] = 0;
128 fK0sAssocMassPtVtxEmbeded[i] = 0;
129 fK0sAssocMassPtDCADaug[i] = 0;
130 fK0sAssocMassPtCPAEmbeded[i] = 0;
131 fK0sAssocMassPtDCAPVEmbeded[i] = 0;
132 fK0sAssocMassPtDaugNClsTPCEmbeded[i] = 0;
3002fb0e 133 // -- Mass vs rapidity vs pt vs centrlaity
134 fK0sMassPtRap[i] = 0;
fbaec09e 135
136 // Lambda
099a1ea9 137 fLambdaMCPtRapVtx[i] = 0;
138 fLambdaMCPtRapVtxEmbeded[i] = 0;
fbaec09e 139 fLambdaMCPtPhiEta[i] = 0;
140 fLambdaAssocPtPhiEta[i] = 0;
ca96d60a 141 // -- Natural particles
142 fLambdaAssocMassPtRap[i] = 0;
143 fLambdaAssocMassPtRap2[i] = 0;
144 fLambdaAssocMassPtVtx[i] = 0;
145 fLambdaAssocMassPtDCADaug[i] = 0;
146 fLambdaAssocMassPtCPA[i] = 0;
147 fLambdaAssocMassPtDCAPV[i] = 0;
148 fLambdaAssocMassPtDaugNClsTPC[i] = 0;
149 // -- Embeded particles
150 fLambdaAssocMassPtRapEmbeded[i] = 0;
151 fLambdaAssocMassPtRapEmbeded2[i] = 0;
152 fLambdaAssocMassPtVtxEmbeded[i] = 0;
153 fLambdaAssocMassPtDCADaug[i] = 0;
154 fLambdaAssocMassPtCPAEmbeded[i] = 0;
155 fLambdaAssocMassPtDCAPVEmbeded[i] = 0;
156 fLambdaAssocMassPtDaugNClsTPCEmbeded[i] = 0;
3002fb0e 157 // -- Mass vs rapidity vs pt vs centrlaity
158 fLambdaMassPtRap[i] = 0;
ca96d60a 159
fbaec09e 160 // AntiLambda
099a1ea9 161 fAntiLambdaMCPtRapVtx[i] = 0;
162 fAntiLambdaMCPtRapVtxEmbeded[i] = 0;
fbaec09e 163 fAntiLambdaMCPtPhiEta[i] = 0;
164 fAntiLambdaAssocPtPhiEta[i] = 0;
ca96d60a 165 // -- Natural particles
166 fAntiLambdaAssocMassPtRap[i] = 0;
167 fAntiLambdaAssocMassPtRap2[i] = 0;
168 fAntiLambdaAssocMassPtVtx[i] = 0;
169 fAntiLambdaAssocMassPtDCADaug[i] = 0;
170 fAntiLambdaAssocMassPtCPA[i] = 0;
171 fAntiLambdaAssocMassPtDCAPV[i] = 0;
172 fAntiLambdaAssocMassPtDaugNClsTPC[i] = 0;
173 // -- Embeded particles
174 fAntiLambdaAssocMassPtRapEmbeded[i] = 0;
175 fAntiLambdaAssocMassPtRapEmbeded2[i] = 0;
176 fAntiLambdaAssocMassPtVtxEmbeded[i] = 0;
177 fAntiLambdaAssocMassPtDCADaug[i] = 0;
178 fAntiLambdaAssocMassPtCPAEmbeded[i] = 0;
179 fAntiLambdaAssocMassPtDCAPVEmbeded[i] = 0;
180 fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[i] = 0;
3002fb0e 181 // -- Mass vs rapidity vs pt vs centrlaity
182 fAntiLambdaMassPtRap[i] = 0;
fbaec09e 183 }
184
ca96d60a 185 // Correlations in MC
fbaec09e 186 for (Int_t i=0; i<kNCent*kN1; i++){
187 // K0s
667b678a 188 fK0sdPhidEtaMC[i] = 0;
59e0735e 189 // Lambda
667b678a 190 fLambdadPhidEtaMC[i] = 0;
59e0735e 191 // AntiLambda
192 fAntiLambdadPhidEtaMC[i] = 0;
44972668 193 }
194
ca96d60a 195 // Correlations
44972668 196 for (Int_t i=0; i<(kNCent*kN1*kNVtxZ); i++){
197 // K0s
198 fK0sdPhidEtaPtL[i] = 0;
44972668 199 // Lambda
200 fLambdadPhidEtaPtL[i] = 0;
44972668 201 // AntiLambda
ca96d60a 202 fAntiLambdadPhidEtaPtL[i] = 0;
348080d3 203 }
204
348080d3 205 // Mixed events distributions
206 for (Int_t i=0; i<(kN1*kNVtxZ*kNCent); i++){
207 fK0sdPhidEtaME[i] = 0;
208 fLambdadPhidEtaME[i] = 0;
209 fAntiLambdadPhidEtaME[i] = 0;
667b678a 210 }
211
212 // Constructor. Initialization of pointers
213 DefineOutput(1, TList::Class());
6668159e 214 DefineOutput(2, TList::Class());
348080d3 215 DefineOutput(3, TList::Class());
6668159e 216
667b678a 217
218}
219
220//___________________________________________________________________________________________
221
348080d3 222AliAnalysisTaskLambdaOverK0sJets::~AliAnalysisTaskLambdaOverK0sJets()
223{
224
225 // Destructor
226 if(fMEList){
227
228 for(Int_t icent=0; icent<kNCent; icent++){
229 for(Int_t iz=0; iz<kNVtxZ; iz++){
230 fMEList[icent*kNVtxZ+iz]->Delete(); delete fMEList[icent*kNVtxZ+iz];
231 }
232 }
233 delete[] fMEList; fMEList=0x0;
234 }
235
236 if(fTriggerParticles) {
237 delete fTriggerParticles;
238 fTriggerParticles=0x0;
239 }
240
b6f9da99 241 if(fTriggerPartMC) {
242 delete fTriggerPartMC;
243 fTriggerPartMC=0x0;
244 }
245
348080d3 246 if(fAssocParticles) {
247 delete fAssocParticles;
248 fAssocParticles=0x0;
249 }
b6f9da99 250
251 if(fAssocPartMC) {
252 delete fAssocPartMC;
253 fAssocPartMC=0x0;
254 }
9cb4cfe3 255
348080d3 256
257}
258
259//___________________________________________________________________________________________
260
667b678a 261void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects()
262{
263 // Creating the histograms that are needed for the output
264
265 fOutput = new TList();
266 fOutput->SetOwner();
267
6668159e 268 fOutputQA = new TList();
269 fOutputQA->SetOwner();
270
348080d3 271 fOutputME = new TList();
272 fOutputME->SetOwner();
273
348080d3 274 fMEList = new TList*[kNCent*kNVtxZ];
275 for(Int_t icent=0; icent<kNCent; icent++){
276 for(Int_t iz=0; iz<kNVtxZ; iz++){
277 fMEList[icent*kNVtxZ+iz] = new TList();
278 fMEList[icent*kNVtxZ+iz]->SetOwner(kFALSE);
279 }
280 }
281
b6f9da99 282 char hNameHist[100];
348080d3 283
667b678a 284 // ====== General characteristics of the event and tracks ====== //
285
286 // Counter for the number of events in each step:
287 fEvents=new TH1F("fEvents","Number of events",14,-0.5,13.5);
288 fEvents->GetXaxis()->SetBinLabel(1,"calls to UserExec()");
289 fEvents->GetXaxis()->SetBinLabel(2,"AOD available");
290 fEvents->GetXaxis()->SetBinLabel(3,"CINT1B");
291 fEvents->GetXaxis()->SetBinLabel(4,"V0M Cent");
773f3106 292 fEvents->GetXaxis()->SetBinLabel(5,"Global Vtx > 3 part");
293 fEvents->GetXaxis()->SetBinLabel(6,"SPD Vtx > 3 part");
294 fEvents->GetXaxis()->SetBinLabel(7,"|ZVtx Global - Zvtx SPD| < 0.5 cm");
295 fEvents->GetXaxis()->SetBinLabel(8,"|VtxZ| < 10 cm");
667b678a 296 fEvents->GetXaxis()->SetBinLabel(9,"V0 is LP");
773f3106 297 fEvents->GetXaxis()->SetBinLabel(10," ");
298 fEvents->GetXaxis()->SetBinLabel(11," ");
667b678a 299 fEvents->GetXaxis()->SetBinLabel(12,"Triggered");
300 fEvents->GetXaxis()->SetBinLabel(13,"NOT Triggered");
773f3106 301 fEvents->GetXaxis()->SetBinLabel(14," ");
667b678a 302 fEvents->GetYaxis()->SetTitle("Counts");
303 fOutput->Add(fEvents);
304
305 // Centrality:
59e0735e 306 fCentrality = new TH1F("fCentrality","Centrality;Centrality (%);Events",100,0.,100.);
667b678a 307 fOutput->Add(fCentrality);
308
53e7de27 309 fCentrality2 = new TH1F("fCentrality2","Centrality in events with |VtxZ|<10 cm;Centrality (%);Events",100,0.,100.);
310 fOutput->Add(fCentrality2);
311
ca96d60a 312 fCentralityTrig = new TH2F("fCentralityTrig","Centrality in events per trigger selection;Centrality (%);Triger Selection",100,0.,100.,3,0.5,3.5);
313 fCentralityTrig->GetYaxis()->SetBinLabel(1,"kCentral");
80c0bcd3 314 fCentralityTrig->GetYaxis()->SetBinLabel(2,"kSemiCentral");
315 fCentralityTrig->GetYaxis()->SetBinLabel(3,"kMB");
ca96d60a 316 fOutput->Add(fCentralityTrig);
317
667b678a 318 // Primary Vertex:
773f3106 319 fPrimayVtxGlobalvsSPD = new TH2F("fPrimayVtxGlobalvsSPD",";Z_{vtx,tr} (cm);Z_{SPD,tr} (cm)",200,-20,20,200,-20,20);
320 fOutput->Add(fPrimayVtxGlobalvsSPD);
321
59e0735e 322 fPrimaryVertexX = new TH1F("fPrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
667b678a 323 fOutput->Add(fPrimaryVertexX);
324
59e0735e 325 fPrimaryVertexY = new TH1F("fPrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
667b678a 326 fOutput->Add(fPrimaryVertexY);
327
59e0735e 328 fPrimaryVertexZ = new TH1F("fPrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
667b678a 329 fOutput->Add(fPrimaryVertexZ);
ca96d60a 330
667b678a 331
332 // ====== Trigger Particle characteristics ====== //
ca96d60a 333
334 // Difference between Event plane and the Trigger particles:
80c0bcd3 335 fTriggerEventPlane = new TH1F("fTriggerEventPlane", ";#varphi_{EP}-#varphi_{Trig};Events",50,0.,TMath::Pi());
ca96d60a 336 fOutput->Add(fTriggerEventPlane);
667b678a 337
338 // MC: Pt Trigger particle vs centrality:
59e0735e 339 if(fIsMC){
80c0bcd3 340 fTriggerMCPtCent = new TH2F("fTriggerMCPtCent","Trigger particle MC;#it{p}_{T} (GeV/#it{c});centrality (%)",2*nbinPtLP,pMin,2*ptMaxLP,100,0.,100.);
348080d3 341 fOutput->Add(fTriggerMCPtCent);
b6f9da99 342
80c0bcd3 343 fTriggerMCResPt = new TH3F("fTriggerMCResPt","Trigger particle MC: p_{t} resolution;(p_{t,MC}-p_{t,Rec})/p_{t,Rec};p_{t} (GeV/#it{c});centrality",60,-0.3,0.3,2*nbinPtLP,pMin,ptMaxLP,100,0.,100.);
b6f9da99 344 fOutput->Add(fTriggerMCResPt);
345
80c0bcd3 346 fTriggerMCResEta = new TH3F("fTriggerMCResEta","Trigger particle MC: #eta resolution; #eta_{MC}-#eta_{Rec};p_{t} (GeV/#it{c}); centrality",40,-0.1,0.1,2*nbinPtLP,pMin,ptMaxLP,100,0.,100.);
b6f9da99 347 fOutput->Add(fTriggerMCResEta);
348
80c0bcd3 349 fTriggerMCResPhi = new TH3F("fTriggerMCResPhi","Trigger particle MC: #varphi resolution; #varphi_{MC}-#varphi_{Rec};p_{t} (GeV/#it{c}); centrality",40,-0.1,0.1,2*nbinPtLP,pMin,ptMaxLP,100,0.,100.);
b6f9da99 350 fOutput->Add(fTriggerMCResPhi);
59e0735e 351 }
667b678a 352
353 // Pt Trigger particle vs centrality:
80c0bcd3 354 fTriggerPtCent = new TH3F("fTriggerPtCent","Trigger particle;#it{p}_{T} (GeV/#it{c});centrality (%);Vertex Z (cm)",nbinPtLP,pMin,ptMaxLP,100,0.,100.,nbinsVtx,-10.,10.);
667b678a 355 fOutput->Add(fTriggerPtCent);
356
a0f483d6 357 fTriggerPtCentCh = new TH3F("fTriggerPtCentCh","Trigger particle;#it{p}_{T} (GeV/#it{c});centrality (%);Vertex Z (cm)",nbinPtLP,pMin,ptMaxLP,100,0.,100.,nbinsVtx,-10.,10.);
358 fOutput->Add(fTriggerPtCentCh);
359
ca96d60a 360 fNTrigPerEvt = new TH2F("fNTrigPerEvt","Number of Trigger Particles Per Event;Counts;Centrality",51,-0.5,50.5,100,0.,100);
348080d3 361 fOutput->Add(fNTrigPerEvt);
362
363 fTriggerWiSPDHit = new TH1F("fTriggerWiSPDHit","Number of Trigger Particles wi SPD Hits",3,0.,3.);
364 fOutput->Add(fTriggerWiSPDHit);
365
667b678a 366 // Phi vs pseudorapidity:
80c0bcd3 367 fTriggerEtaPhi = new TH2F("fTriggerEtaPhi","Trigger particle;#varphi (rad);#eta",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.);
667b678a 368 fOutput->Add(fTriggerEtaPhi);
369
370 // Check if Trigger particle comes from a V0 daughter:
371 fCheckTriggerFromV0Daug =
348080d3 372 new TH1F("fCheckTriggerFromV0Daug","Trigger particle from a V0 daughter;;Counts",4,-0.5,3.5);
667b678a 373 fCheckTriggerFromV0Daug->GetXaxis()->SetTitle("Flag");
348080d3 374 fCheckTriggerFromV0Daug->GetXaxis()->SetBinLabel(1,"NOT V0 daug");
375 fCheckTriggerFromV0Daug->GetXaxis()->SetBinLabel(2,"V0 daug");
376 fCheckTriggerFromV0Daug->GetXaxis()->SetBinLabel(3,"V0 daug & V0 LP");
667b678a 377 fOutput->Add(fCheckTriggerFromV0Daug);
378
80c0bcd3 379 fTriggerComingFromDaug = new TH1F("fTriggerComingFromDaug","Trigger particle from a V0 daughter;#it{p}_{T} (GeV/#it{c});Counts",240, 0, 12);
667b678a 380 fOutput->Add(fTriggerComingFromDaug);
381
80c0bcd3 382 fTriggerIsV0 = new TH1F("fTriggerIsV0","V0 candidate is a LP;#it{p}_{T} (GeV/#it{c});Counts",nbinPtLP,pMin,ptMaxLP);
667b678a 383 fOutput->Add(fTriggerIsV0);
384
348080d3 385 // ------------------- > Comaring properties of this trigger with the daughters
386 // K0s
b6f9da99 387 fCheckIDTrigPtK0s = new TH3F("fCheckIDTrigPtK0s","K^{0}_{S};#deltap/p_{tri};;p_{V0}",40,-0.2,0.2,7,-0.5,6.5,100,1.,11.);
388 fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(1,"Pos Daug X");
389 fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(2,"Pos Daug Y");
390 fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(3,"Pos Daug Z");
391 fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(4,"Neg Daug X");
392 fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(5,"Neg Daug Y");
393 fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(6,"Neg Daug Z");
6668159e 394 fOutput->Add(fCheckIDTrigPtK0s);
395
80c0bcd3 396 fCheckIDTrigPhiK0s = new TH3F("fCheckIDTrigPhiK0s","K^{0}_{S};#delta#varphi;;p_{V0}",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.);
b6f9da99 397 fCheckIDTrigPhiK0s->GetYaxis()->SetBinLabel(1,"Pos Daug");
398 fCheckIDTrigPhiK0s->GetYaxis()->SetBinLabel(2,"Neg Daug");
6668159e 399 fOutput->Add(fCheckIDTrigPhiK0s);
400
ca96d60a 401 fCheckIDTrigEtaK0s = new TH3F("fCheckIDTrigEtaK0s","K^{0}_{S};#delta#eta;;p_{V0}",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.);
b6f9da99 402 fCheckIDTrigEtaK0s->GetYaxis()->SetBinLabel(1,"Pos Daug");
403 fCheckIDTrigEtaK0s->GetYaxis()->SetBinLabel(2,"Neg Daug");
348080d3 404 fOutput->Add(fCheckIDTrigEtaK0s);
405
9cb4cfe3 406 fCheckIDTrigNclsK0s = new TH3F("fCheckIDTrigNclsK0s","K^{0}_{S};NCls TPC;;p_{V0}",181,0.5,180.5,3,-0.5,2.5,100,1.,11.);
80c0bcd3 407 fCheckIDTrigNclsK0s->GetYaxis()->SetBinLabel(1,"Pos Daug");
408 fCheckIDTrigNclsK0s->GetYaxis()->SetBinLabel(2,"Neg Daug");
409 fOutput->Add(fCheckIDTrigNclsK0s);
410
348080d3 411 // Lambda
ca96d60a 412 fCheckIDTrigPtLambda = new TH3F("fCheckIDTrigPtLambda","#Lambda",40,-0.1,0.1,7,-0.5,6.5,100,1.,11.);
b6f9da99 413 fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(1,"Pos Daug X");
414 fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(2,"Pos Daug Y");
415 fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(3,"Pos Daug Z");
416 fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(4,"Neg Daug X");
417 fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(5,"Neg Daug Y");
418 fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(6,"Neg Daug Z");
6668159e 419 fOutput->Add(fCheckIDTrigPtLambda);
420
ca96d60a 421 fCheckIDTrigPhiLambda = new TH3F("fCheckIDTrigPhiLambda","#Lambda",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.);
b6f9da99 422 fCheckIDTrigPhiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
423 fCheckIDTrigPhiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
6668159e 424 fOutput->Add(fCheckIDTrigPhiLambda);
425
ca96d60a 426 fCheckIDTrigEtaLambda = new TH3F("fCheckIDTrigEtaLambda","#Lambda",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.);
b6f9da99 427 fCheckIDTrigEtaLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
428 fCheckIDTrigEtaLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
348080d3 429 fOutput->Add(fCheckIDTrigEtaLambda);
430
9cb4cfe3 431 fCheckIDTrigNclsLambda = new TH3F("fCheckIDTrigNclsLambda","#Lambda;NCls TPC;;p_{V0}",181,0.5,180.5,3,-0.5,2.5,100,1.,11.);
80c0bcd3 432 fCheckIDTrigNclsLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
433 fCheckIDTrigNclsLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
434 fOutput->Add(fCheckIDTrigNclsLambda);
435
348080d3 436 // AntiLambda
b6f9da99 437 fCheckIDTrigPtAntiLambda = new TH3F("fCheckIDTrigPtAntiLambda","#bar{#Lambda}",40,-0.2,0.2,7,-0.5,6.5,100,1.,11.);
438 fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug X");
439 fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(2,"Pos Daug Y");
440 fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(3,"Pos Daug Z");
441 fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(4,"Neg Daug X");
442 fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(5,"Neg Daug Y");
443 fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(6,"Neg Daug Z");
348080d3 444 fOutput->Add(fCheckIDTrigPtAntiLambda);
445
ca96d60a 446 fCheckIDTrigPhiAntiLambda = new TH3F("fCheckIDTrigPhiAntiLambda","#bar{#Lambda}",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.);
b6f9da99 447 fCheckIDTrigPhiAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
448 fCheckIDTrigPhiAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
348080d3 449 fOutput->Add(fCheckIDTrigPhiAntiLambda);
450
ca96d60a 451 fCheckIDTrigEtaAntiLambda = new TH3F("fCheckIDTrigEtaAntiLambda","#bar{#Lambda}",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.);
b6f9da99 452 fCheckIDTrigEtaAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
453 fCheckIDTrigEtaAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
348080d3 454 fOutput->Add(fCheckIDTrigEtaAntiLambda);
667b678a 455
9cb4cfe3 456 fCheckIDTrigNclsAntiLambda = new TH3F("fCheckIDTrigNclsAntiLambda","#bar{#Lambda};NCls TPC;;p_{V0}",181,0.5,180.5,3,-0.5,2.5,100,1.,11.);
80c0bcd3 457 fCheckIDTrigNclsAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
458 fCheckIDTrigNclsAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
459 fOutput->Add(fCheckIDTrigNclsAntiLambda);
460
667b678a 461 // ====== MC-true and MC-Association information ====== //
462 if(fIsMC){
463
348080d3 464 fInjectedParticles = new TH1F("fInjectedParticles","Injected particles;;Counts",2,0.,2.);
465 fInjectedParticles->GetXaxis()->SetBinLabel(1,"Injected");
466 fInjectedParticles->GetXaxis()->SetBinLabel(2,"Natural");
467 fOutput->Add(fInjectedParticles);
667b678a 468
348080d3 469 // K0s MC-true:
80c0bcd3 470 fK0sMCPt = new TH1F("fK0sMCPt", "K^{0}_{S} MC;#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax);
348080d3 471 fOutput->Add(fK0sMCPt);
667b678a 472
80c0bcd3 473 fK0sMCPtRap = new TH3F("fK0sMCPtRap", "K^{0}_{S} MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 474 fOutput->Add(fK0sMCPtRap);
b6f9da99 475
80c0bcd3 476 fK0sMCPtRap2 = new TH3F("fK0sMCPtRap2", "K^{0}_{S} MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
b6f9da99 477 fOutput->Add(fK0sMCPtRap2);
53e7de27 478
099a1ea9 479 for(Int_t jj=0;jj<kNCent;jj++){
480 snprintf(hNameHist,100, "fK0sMCPtRapVtx_Cent_%d",jj);
481 fK0sMCPtRapVtx[jj] = new TH3F(hNameHist, "K^{0}_{S} MC |VtxZ|;#it{p}_{T} (GeV/#it{c});y;VtxZ",nbins,pMin,pMax,20,-1.0,1.0,20,-10.,10.);
482 fOutput->Add(fK0sMCPtRapVtx[jj]);
483 }
ca96d60a 484
80c0bcd3 485 fK0sMCPtRapEmbeded = new TH3F("fK0sMCPtRapEmbeded", "K^{0}_{S} Embeded MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.,1.,100,0.,100.);
53e7de27 486 fOutput->Add(fK0sMCPtRapEmbeded);
31f87a49 487
099a1ea9 488 for(Int_t jj=0;jj<kNCent;jj++){
489 snprintf(hNameHist,100, "fK0sMCPtRapVtxEmbeded_Cent_%d",jj);
490 fK0sMCPtRapVtxEmbeded[jj] = new TH3F(hNameHist, "K^{0}_{S} Embeded MC |VtxZ|;#it{p}_{T} (GeV/#it{c});y;VtxZ",nbins,pMin,pMax,20,-1.0,1.0,20,-10.,10.);
491 fOutput->Add(fK0sMCPtRapVtxEmbeded[jj]);
492 }
667b678a 493
b6f9da99 494 for(Int_t jj=0;jj<kNCent;jj++){
495 snprintf(hNameHist,100, "fK0sMCPtPhiEta_Cent_%d",jj);
80c0bcd3 496 fK0sMCPtPhiEta[jj] = new TH3F(hNameHist, "K^{0}_{S} MC;#varphi (rad);#eta;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),20,-1.,1.,nbins,pMin,pMax);
b6f9da99 497 fOutput->Add(fK0sMCPtPhiEta[jj]);
498 }
667b678a 499
348080d3 500 // K0s MC-Association:
501 fK0sAssocPt =
80c0bcd3 502 new TH1F("fK0sAssocPt","K^{0}_{S} Assoc: L_{T} vs #it{p}_{T};#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax);
348080d3 503 fOutput->Add(fK0sAssocPt);
59e0735e 504
348080d3 505 fK0sAssocPtArm =
80c0bcd3 506 new TH3F("fK0sAssocPtArm","K^{0}_{S} Assoc: #it{p}_{T} vs y vs centrality;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 507 fOutput->Add(fK0sAssocPtArm);
59e0735e 508
80c0bcd3 509 fK0sAssocPtRap = new TH3F("fK0sAssocPtRap","K^{0}_{S} Assoc;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 510 fOutput->Add(fK0sAssocPtRap);
53e7de27 511
80c0bcd3 512 fK0sAssocPtRapEmbeded = new TH3F("fK0sAssocPtRapEmbeded","K^{0}_{S} Assoc - Embeded MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
53e7de27 513 fOutput->Add(fK0sAssocPtRapEmbeded);
348080d3 514
b6f9da99 515 for(Int_t jj=0;jj<kNCent;jj++){
516 snprintf(hNameHist,100, "fK0sAssocPtPhiEta_Cent_%d",jj);
80c0bcd3 517 fK0sAssocPtPhiEta[jj] = new TH3F(hNameHist,"K^{0}_{S} Assoc;#varphi;#eta;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),20,-1.0,1.0,nbins,pMin,pMax);
b6f9da99 518 fOutput->Add(fK0sAssocPtPhiEta[jj]);
519 }
ca96d60a 520
9cb4cfe3 521
ca96d60a 522 // Histogramas para estudios sistematicos de la eficiencia
9cb4cfe3 523 Int_t binsEff1[3] = {nbins,nbins,20}; Double_t xminEff1[3] = {0.398,pMin,-1.0}; Double_t xmaxEff1[3] = {0.598,pMax,1.0}; // gral efficiency
524 Int_t binsEff2[4] = {nbins,nbins,20,10}; Double_t xminEff2[4] = {0.398,pMin,-1.0,-10.}; Double_t xmaxEff2[4] = {0.598,pMax,1.0,10.}; // vtx cut
525 Int_t binsEff3[4] = {nbins,nbins,20,60}; Double_t xminEff3[4] = {0.398,pMin,-1.0,0.}; Double_t xmaxEff3[4] = {0.598,pMax,1.0,1.2}; // dca between daughters
526 Int_t binsEff4[4] = {nbins,nbins,20,50}; Double_t xminEff4[4] = {0.398,pMin,-1.0,0.9975}; Double_t xmaxEff4[4] = {0.598,pMax,1.0,1.}; // cpa
527 Int_t binsEff5[5] = {nbins,nbins,20,99,99}; Double_t xminEff5[5] = {0.398,pMin,-1.0,0.,0.}; Double_t xmaxEff5[5] = {0.598,pMax,1.0,3.3,3.3}; // dca to prim. vtx
528 Int_t binsEff6[5] = {nbins,nbins,20,170,170}; Double_t xminEff6[5] = {0.398,pMin,-1.0,0.5,0.5}; Double_t xmaxEff6[5] = {0.598,pMax,1.0,170.5,170}; // No. TPC Cls
529
ca96d60a 530 for(Int_t i=0; i<kNCent; i++){
531
532 /// ------- Natural particles
533 snprintf(hNameHist,100, "fK0sAssocPtMassArm_Cent_%d",i);
9cb4cfe3 534 fK0sAssocPtMassArm[i] = new THnSparseD(hNameHist,"K^{0}_{S} Assoc;Mass (GeV/c^{2});#it{p}_{T} (GeV/#it{c});rap;",3,binsEff1,xminEff1,xmaxEff1);
ca96d60a 535 fOutput->Add(fK0sAssocPtMassArm[i]);
536
537 snprintf(hNameHist,100, "fK0sAssocMassPtVtx_Cent_%d",i);
9cb4cfe3 538 fK0sAssocMassPtVtx[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; VtxZ;",4,binsEff2,xminEff2,xmaxEff2);
ca96d60a 539 fOutput->Add(fK0sAssocMassPtVtx[i]);
540
541 snprintf(hNameHist,100, "fK0sAssocMassPtDCADaug_Cent_%d",i);
9cb4cfe3 542 fK0sAssocMassPtDCADaug[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; DCADaug;",4,binsEff3,xminEff3,xmaxEff3);
ca96d60a 543 fOutput->Add(fK0sAssocMassPtDCADaug[i]);
544
545 snprintf(hNameHist,100, "fK0sAssocMassPtCPA_Cent_%d",i);
9cb4cfe3 546 fK0sAssocMassPtCPA[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; CPA;",4,binsEff4,xminEff4,xmaxEff4);
ca96d60a 547 fOutput->Add(fK0sAssocMassPtCPA[i]);
9cb4cfe3 548
ca96d60a 549 snprintf(hNameHist,100, "fK0sAssocMassPtDCAPV_Cent_%d",i);
9cb4cfe3 550 fK0sAssocMassPtDCAPV[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos DCA to Prim. Vtx; Neg DCA to Prim. Vtx;",5,binsEff5,xminEff5,xmaxEff5);
ca96d60a 551 fOutput->Add(fK0sAssocMassPtDCAPV[i]);
9cb4cfe3 552
ca96d60a 553 snprintf(hNameHist,100, "fK0sAssocMassPtDaugNClsTPC_Cent_%d",i);
9cb4cfe3 554 fK0sAssocMassPtDaugNClsTPC[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos # TPC Cls; Neg # TPC Cls;",5,binsEff6,xminEff6,xmaxEff6);
ca96d60a 555 fOutput->Add(fK0sAssocMassPtDaugNClsTPC[i]);
556
557 /// ----- Embeded particles
558 snprintf(hNameHist,100, "fK0sAssocPtMassArmEmbeded_Cent_%d",i);
9cb4cfe3 559 fK0sAssocPtMassArmEmbeded[i] = new THnSparseD(hNameHist,"K^{0}_{S} Assoc Embeded;Mass (GeV/c^{2});#it{p}_{T} (GeV/#it{c});rap;",3,binsEff1,xminEff1,xmaxEff1);
ca96d60a 560 fOutput->Add(fK0sAssocPtMassArmEmbeded[i]);
561
562 snprintf(hNameHist,100, "fK0sAssocMassPtVtxEmbeded_Cent_%d",i);
9cb4cfe3 563 fK0sAssocMassPtVtxEmbeded[i] = new THnSparseD(hNameHist, "K^{0}_{S} Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap; VtxZ;",4,binsEff2,xminEff2,xmaxEff2);
ca96d60a 564 fOutput->Add(fK0sAssocMassPtVtxEmbeded[i]);
565
566 snprintf(hNameHist,100, "fK0sAssocMassPtDCADaugEmbeded_Cent_%d",i);
9cb4cfe3 567 fK0sAssocMassPtDCADaugEmbeded[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; DCADaug;",4,binsEff3,xminEff3,xmaxEff3);
ca96d60a 568 fOutput->Add(fK0sAssocMassPtDCADaugEmbeded[i]);
569
570 snprintf(hNameHist,100, "fK0sAssocMassPtCPAEmbeded_Cent_%d",i);
9cb4cfe3 571 fK0sAssocMassPtCPAEmbeded[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; CPA;",4,binsEff4,xminEff4,xmaxEff4);
ca96d60a 572 fOutput->Add(fK0sAssocMassPtCPAEmbeded[i]);
573
574 snprintf(hNameHist,100, "fK0sAssocMassPtDCAPVEmbeded_Cent_%d",i);
9cb4cfe3 575 fK0sAssocMassPtDCAPVEmbeded[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos DCA to Prim. Vtx; Neg DCA to Prim. Vtx;",5,binsEff5,xminEff5,xmaxEff5);
ca96d60a 576 fOutput->Add(fK0sAssocMassPtDCAPVEmbeded[i]);
577
ca96d60a 578 snprintf(hNameHist,100, "fK0sAssocMassPtDaugNClsTPCEmbeded_Cent_%d",i);
9cb4cfe3 579 fK0sAssocMassPtDaugNClsTPCEmbeded[i] = new THnSparseD(hNameHist, "K^{0}_{S}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos # TPC Cls; Neg # TPC Cls;",5,binsEff6,xminEff6,xmaxEff6);
ca96d60a 580 fOutput->Add(fK0sAssocMassPtDaugNClsTPCEmbeded[i]);
581
582 }
b6f9da99 583
80c0bcd3 584 fK0sMCResEta = new TH3F("fK0sMCResEta","K^{0}_{S} Assoc: #eta resolution; #eta_{MC}-#eta_{Rec};#it{p}_{T} (GeV/#it{c}); centrality",40,-0.1,0.1,nbins,pMin,pMax,100,0.,100.);
b6f9da99 585 fOutput->Add(fK0sMCResEta);
59e0735e 586
80c0bcd3 587 fK0sMCResPhi = new TH3F("fK0sMCResPhi","K^{0}_{S} Assoc: #varphi resolution; #varphi_{MC}-#varphi_{Rec};#it{p}_{T} (GeV/#it{c}); centrality",40,-0.1,0.1,nbins,pMin,pMax,100,0.,100.);
348080d3 588 fOutput->Add(fK0sMCResPhi);
59e0735e 589
348080d3 590 // Lambda MC-true:
80c0bcd3 591 fLambdaMCPt = new TH1F("fLambdaMCPt","#Lambda MC;#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax);
348080d3 592 fOutput->Add(fLambdaMCPt);
59e0735e 593
80c0bcd3 594 fLambdaMCPtRap = new TH3F("fLambdaMCPtRap","#Lambda MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 595 fOutput->Add(fLambdaMCPtRap);
b6f9da99 596
80c0bcd3 597 fLambdaMCPtRap2 = new TH3F("fLambdaMCPtRap2","#Lambda MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
b6f9da99 598 fOutput->Add(fLambdaMCPtRap2);
53e7de27 599
099a1ea9 600 for(Int_t jj=0;jj<kNCent;jj++){
601 snprintf(hNameHist,100, "fLambdaMCPtRapVtx_Cent_%d",jj);
602 fLambdaMCPtRapVtx[jj] = new TH3F(hNameHist,"#Lambda MC |VtxZ|<3 cm;#it{p}_{T} (GeV/#it{c});y;zv",nbins,pMin,pMax,20,-1.0,1.0,20,-10.,10.);
603 fOutput->Add(fLambdaMCPtRapVtx[jj]);
604 }
ca96d60a 605
80c0bcd3 606 fLambdaMCPtRapEmbeded = new TH3F("fLambdaMCPtRapEmbeded","#Lambda Embeded MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
53e7de27 607 fOutput->Add(fLambdaMCPtRapEmbeded);
348080d3 608
099a1ea9 609 for(Int_t jj=0;jj<kNCent;jj++){
610 snprintf(hNameHist,100, "fLambdaMCPtRapVtxEmbeded_Cent_%d",jj);
611 fLambdaMCPtRapVtxEmbeded[jj] = new TH3F(hNameHist,"#Lambda Embeded MC |VtxZ|<3 cm;#it{p}_{T} (GeV/#it{c});y;zv",nbins,pMin,pMax,20,-1.0,1.0,20,-10.,10.);
612 fOutput->Add(fLambdaMCPtRapVtxEmbeded[jj]);
613 }
ca96d60a 614
80c0bcd3 615 fLambdaMCFromXi = new TH2F("fLambdaMCFromXi", "#Lambda from Xi MC;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.);
31f87a49 616 fOutput->Add(fLambdaMCFromXi);
617
b6f9da99 618 for(Int_t jj=0;jj<kNCent;jj++){
619 snprintf(hNameHist,100, "fLambdaMCPtPhiEta_Cent_%d",jj);
80c0bcd3 620 fLambdaMCPtPhiEta[jj] = new TH3F(hNameHist,"#Lambda MC;#varphi (rad);#eta;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),20,-1.0,1.0,nbins,pMin,pMax);
b6f9da99 621 fOutput->Add(fLambdaMCPtPhiEta[jj]);
622 }
59e0735e 623
348080d3 624 // Lambda MC-Association:
625 fLambdaAssocPt =
80c0bcd3 626 new TH1F("fLambdaAssocPt","#Lambda Assoc: L_{T} vs #it{p}_{T};#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax);
348080d3 627 fOutput->Add(fLambdaAssocPt);
59e0735e 628
80c0bcd3 629 fLambdaAssocPtRap = new TH3F("fLambdaAssocPtRap", "#Lambda Assoc;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 630 fOutput->Add(fLambdaAssocPtRap);
53e7de27 631
80c0bcd3 632 fLambdaAssocFromXi = new TH2F("fLambdaAssocFromXi", "#Lambda from Xi Assoc;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.);
31f87a49 633 fOutput->Add(fLambdaAssocFromXi);
634
b6f9da99 635 for(Int_t jj=0;jj<kNCent;jj++){
636 snprintf(hNameHist,100, "fLambdaAssocPtPhiEta_Cent_%d",jj);
80c0bcd3 637 fLambdaAssocPtPhiEta[jj] = new TH3F(hNameHist, "#Lambda Assoc;#varphi (rad);#eta;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),20,-1.0,1.0,nbins,pMin,pMax);
b6f9da99 638 fOutput->Add(fLambdaAssocPtPhiEta[jj]);
639 }
ca96d60a 640
641 // Histogramas para estudios sistematicos de la eficiencia
9cb4cfe3 642 Int_t binsEff7[3] = {nbins,nbins,20}; Double_t xminEff7[3] = {1.065,pMin,-1.0}; Double_t xmaxEff7[3] = {1.165,pMax,1.0}; // gral efficiency
643 Int_t binsEff8[4] = {nbins,nbins,20,10}; Double_t xminEff8[4] = {1.065,pMin,-1.0,-10.}; Double_t xmaxEff8[4] = {1.165,pMax,1.0,10.}; // vtx
644 Int_t binsEff9[4] = {nbins,nbins,20,60}; Double_t xminEff9[4] = {1.065,pMin,-1.0,0.}; Double_t xmaxEff9[4] = {1.165,pMax,1.0,1.2}; // dca between daughters
645 Int_t binsEff10[4] = {nbins,nbins,20,50}; Double_t xminEff10[4] = {1.065,pMin,-1.0,0.9975}; Double_t xmaxEff10[4] = {1.165,pMax,1.0,1.}; // cpa
646 Int_t binsEff11[5] = {nbins,nbins,20,99,99}; Double_t xminEff11[5] = {1.065,pMin,-1.0,0.,0.}; Double_t xmaxEff11[5] = {1.165,pMax,1.0,3.3,3.3}; // dca to prim. vtx
647 Int_t binsEff12[5] = {nbins,nbins,20,170,170}; Double_t xminEff12[5] = {1.065,pMin,-1.0,0.5,0.5}; Double_t xmaxEff12[5] = {1.165,pMax,1.0,170.5,170.5}; // No. TPC Cls
648
ca96d60a 649 for(Int_t i=0; i<kNCent; i++){
9cb4cfe3 650
ca96d60a 651 // --------- Natural particles
652 snprintf(hNameHist,100, "fLambdaAssocMassPtRap_Cent_%d",i);
9cb4cfe3 653 fLambdaAssocMassPtRap[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff7,xminEff7,xmaxEff7);
ca96d60a 654 fOutput->Add(fLambdaAssocMassPtRap[i]);
9cb4cfe3 655
ca96d60a 656 snprintf(hNameHist,100, "fLambdaAssocMassPtRap2_Cent_%d",i);
9cb4cfe3 657 fLambdaAssocMassPtRap2[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff7,xminEff7,xmaxEff7);
ca96d60a 658 fOutput->Add(fLambdaAssocMassPtRap2[i]);
9cb4cfe3 659
ca96d60a 660 snprintf(hNameHist,100, "fLambdaAssocMassPtVtx_Cent_%d",i);
9cb4cfe3 661 fLambdaAssocMassPtVtx[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; VtxZ;",4,binsEff8,xminEff8,xmaxEff8);
ca96d60a 662 fOutput->Add(fLambdaAssocMassPtVtx[i]);
9cb4cfe3 663
ca96d60a 664 snprintf(hNameHist,100, "fLambdaAssocMassPtDCADaug_Cent_%d",i);
9cb4cfe3 665 fLambdaAssocMassPtDCADaug[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; DCADaug;",4,binsEff9,xminEff9,xmaxEff9);
ca96d60a 666 fOutput->Add(fLambdaAssocMassPtDCADaug[i]);
9cb4cfe3 667
ca96d60a 668 snprintf(hNameHist,100, "fLambdaAssocMassPtCPA_Cent_%d",i);
9cb4cfe3 669 fLambdaAssocMassPtCPA[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; CPA;",4,binsEff10,xminEff10,xmaxEff10);
ca96d60a 670 fOutput->Add(fLambdaAssocMassPtCPA[i]);
9cb4cfe3 671
ca96d60a 672 snprintf(hNameHist,100, "fLambdaAssocMassPtDCAPV_Cent_%d",i);
9cb4cfe3 673 fLambdaAssocMassPtDCAPV[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos DCA to Prim. Vtx; Neg DCA to Prim. Vtx;",5,binsEff11,xminEff11,xmaxEff11);
ca96d60a 674 fOutput->Add(fLambdaAssocMassPtDCAPV[i]);
675
676 snprintf(hNameHist,100, "fLambdaAssocMassPtDaugNClsTPC_Cent_%d",i);
9cb4cfe3 677 fLambdaAssocMassPtDaugNClsTPC[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos # TPC Cls; Neg # TPC Cls;",5,binsEff12,xminEff12,xmaxEff12);
ca96d60a 678 fOutput->Add(fLambdaAssocMassPtDaugNClsTPC[i]);
679
680 // ------------ Embeded particles
681 snprintf(hNameHist,100, "fLambdaAssocMassPtRapEmbeded_Cent_%d",i);
9cb4cfe3 682 fLambdaAssocMassPtRapEmbeded[i] = new THnSparseD(hNameHist, "#Lambda Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff7,xminEff7,xmaxEff7);
ca96d60a 683 fOutput->Add(fLambdaAssocMassPtRapEmbeded[i]);
684
685 snprintf(hNameHist,100, "fLambdaAssocMassPtRapEmbeded2_Cent_%d",i);
9cb4cfe3 686 fLambdaAssocMassPtRapEmbeded2[i] = new THnSparseD(hNameHist, "#Lambda Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff7,xminEff7,xmaxEff7);
ca96d60a 687 fOutput->Add(fLambdaAssocMassPtRapEmbeded2[i]);
688
689 snprintf(hNameHist,100, "fLambdaAssocMassPtVtxEmbeded_Cent_%d",i);
9cb4cfe3 690 fLambdaAssocMassPtVtxEmbeded[i] = new THnSparseD(hNameHist, "#Lambda Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap; VtxZ;",4,binsEff8,xminEff8,xmaxEff8);
ca96d60a 691 fOutput->Add(fLambdaAssocMassPtVtxEmbeded[i]);
692
693 snprintf(hNameHist,100, "fLambdaAssocMassPtDCADaugEmbeded_Cent_%d",i);
9cb4cfe3 694 fLambdaAssocMassPtDCADaugEmbeded[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; DCADaug;",4,binsEff9,xminEff9,xmaxEff9);
ca96d60a 695 fOutput->Add(fLambdaAssocMassPtDCADaugEmbeded[i]);
9cb4cfe3 696
ca96d60a 697 snprintf(hNameHist,100, "fLambdaAssocMassPtCPAEmbeded_Cent_%d",i);
9cb4cfe3 698 fLambdaAssocMassPtCPAEmbeded[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; CPA;",4,binsEff10,xminEff10,xmaxEff10);
ca96d60a 699 fOutput->Add(fLambdaAssocMassPtCPAEmbeded[i]);
700
701 snprintf(hNameHist,100, "fLambdaAssocMassPtDCAPVEmbeded_Cent_%d",i);
9cb4cfe3 702 fLambdaAssocMassPtDCAPVEmbeded[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos DCA to Prim. Vtx; Neg DCA to Prim. Vtx;",5,binsEff11,xminEff11,xmaxEff11);
ca96d60a 703 fOutput->Add(fLambdaAssocMassPtDCAPVEmbeded[i]);
704
ca96d60a 705 snprintf(hNameHist,100, "fLambdaAssocMassPtDaugNClsTPCEmbeded_Cent_%d",i);
9cb4cfe3 706 fLambdaAssocMassPtDaugNClsTPCEmbeded[i] = new THnSparseD(hNameHist, "#Lambda; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos # TPC Cls; Neg # TPC Cls;",5,binsEff12,xminEff12,xmaxEff12);
ca96d60a 707 fOutput->Add(fLambdaAssocMassPtDaugNClsTPCEmbeded[i]);
708 }
709
80c0bcd3 710 fLambdaMCResEta = new TH3F("fLambdaMCResEta","#Lambda Assoc: #eta resolution; #eta_{MC}-#eta_{Rec};#it{p}_{T} (GeV/#it{c}); centrality",40,-0.1,0.1,nbins,pMin,pMax,100,0.,100.);
b6f9da99 711 fOutput->Add(fLambdaMCResEta);
59e0735e 712
80c0bcd3 713 fLambdaMCResPhi = new TH3F("fLambdaMCResPhi","#Lambda Assoc: #varphi resolution; #varphi_{MC}-#varphi_{Rec};#it{p}_{T} (GeV/#it{c}); centrality",40,-0.1,0.1,nbins,pMin,pMax,100,0.,100.);
348080d3 714 fOutput->Add(fLambdaMCResPhi);
ca96d60a 715
348080d3 716 // AntiLambda MC-true:
80c0bcd3 717 fAntiLambdaMCPt = new TH1F("fAntiLambdaMCPt","#bar{#Lambda} MC;#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax);
348080d3 718 fOutput->Add(fAntiLambdaMCPt);
ca96d60a 719
80c0bcd3 720 fAntiLambdaMCPtRap = new TH3F("fAntiLambdaMCPtRap","#bar{#Lambda} MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 721 fOutput->Add(fAntiLambdaMCPtRap);
ca96d60a 722
80c0bcd3 723 fAntiLambdaMCPtRap2 = new TH3F("fAntiLambdaMCPtRap2","#bar{#Lambda} MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
b6f9da99 724 fOutput->Add(fAntiLambdaMCPtRap2);
53e7de27 725
099a1ea9 726 for(Int_t jj=0;jj<kNCent;jj++){
727 snprintf(hNameHist,100, "fAntiLambdaMCPtRapVtx_Cent_%d",jj);
728 fAntiLambdaMCPtRapVtx[jj] = new TH3F(hNameHist,"#bar{#Lambda} MC |VtxZ|;#it{p}_{T} (GeV/#it{c});y;zv",nbins,pMin,pMax,20,-1.0,1.0,20,-10.,10.);
729 fOutput->Add(fAntiLambdaMCPtRapVtx[jj]);
730 }
ca96d60a 731
80c0bcd3 732 fAntiLambdaMCPtRapEmbeded = new TH3F("fAntiLambdaMCPtRapEmbeded","#bar{#Lambda} Embeded MC;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
53e7de27 733 fOutput->Add(fAntiLambdaMCPtRapEmbeded);
ca96d60a 734
099a1ea9 735 for(Int_t jj=0;jj<kNCent;jj++){
736 snprintf(hNameHist,100, "fAntiLambdaMCPtRapVtxEmbeded_Cent_%d",jj);
737 fAntiLambdaMCPtRapVtxEmbeded[jj] = new TH3F(hNameHist,"#bar{#Lambda} Embeded MC |VtxZ|;#it{p}_{T} (GeV/#it{c});y;zv",nbins,pMin,pMax,20,-1.0,1.0,20,-10.,10.);
738 fOutput->Add(fAntiLambdaMCPtRapVtxEmbeded[jj]);
739 }
ca96d60a 740
80c0bcd3 741 fAntiLambdaMCFromXi = new TH2F("fAntiLambdaMCFromXi", "#bar{#Lambda} from Xi MC;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.);
31f87a49 742 fOutput->Add(fAntiLambdaMCFromXi);
743
b6f9da99 744 for(Int_t jj=0;jj<kNCent;jj++){
745 snprintf(hNameHist,100, "fAntiLambdaMCPtPhiEta_Cent_%d",jj);
80c0bcd3 746 fAntiLambdaMCPtPhiEta[jj] = new TH3F(hNameHist,"#bar{#Lambda} MC;#varphi (rad);#eta;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),20,-1.0,1.0,nbins,pMin,pMax);
b6f9da99 747 fOutput->Add(fAntiLambdaMCPtPhiEta[jj]);
748 }
ca96d60a 749
348080d3 750 // AntiLambda MC-Association:
751 fAntiLambdaAssocPt =
80c0bcd3 752 new TH1F("fAntiLambdaAssocPt","#bar{#Lambda} Assoc: L_{T} vs #it{p}_{T};#it{p}_{T} (GeV/#it{c})",nbins,pMin,pMax);
348080d3 753 fOutput->Add(fAntiLambdaAssocPt);
ca96d60a 754
80c0bcd3 755 fAntiLambdaAssocPtRap = new TH3F("fAntiLambdaAssocPtRap", "#bar{#Lambda} Assoc;#it{p}_{T} (GeV/#it{c});y;centrality",nbins,pMin,pMax,20,-1.0,1.0,100,0.,100.);
348080d3 756 fOutput->Add(fAntiLambdaAssocPtRap);
757
80c0bcd3 758 fAntiLambdaAssocFromXi = new TH2F("fAntiLambdaAssocFromXi", "#bar{#Lambda} from Xi MC;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.);
31f87a49 759 fOutput->Add(fAntiLambdaAssocFromXi);
760
b6f9da99 761 for(Int_t jj=0;jj<kNCent;jj++){
762 snprintf(hNameHist,100, "fAntiLambdaAssocPtPhiEta_Cent_%d",jj);
80c0bcd3 763 fAntiLambdaAssocPtPhiEta[jj] = new TH3F(hNameHist, "#Lambda Assoc;#varphi (rad);#eta;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),20,-1.0,1.0,nbins,pMin,pMax);
b6f9da99 764 fOutput->Add(fAntiLambdaAssocPtPhiEta[jj]);
765 }
766
ca96d60a 767 // Histogramas para estudios sistematicos de la eficiencia
9cb4cfe3 768 Int_t binsEff13[3] = {nbins,nbins,20}; Double_t xminEff13[3] = {1.065,pMin,-1.0}; Double_t xmaxEff13[3] = {1.165,pMax,1.0}; // gral efficiency
769 Int_t binsEff14[4] = {nbins,nbins,20,10}; Double_t xminEff14[4] = {1.065,pMin,-1.0,-10.}; Double_t xmaxEff14[4] = {1.165,pMax,1.0,10.}; // vtx
770 Int_t binsEff15[4] = {nbins,nbins,20,60}; Double_t xminEff15[4] = {1.065,pMin,-1.0,0.}; Double_t xmaxEff15[4] = {1.165,pMax,1.0,1.2}; // dca between daug
771 Int_t binsEff16[4] = {nbins,nbins,20,50}; Double_t xminEff16[4] = {1.065,pMin,-1.0,0.9975}; Double_t xmaxEff16[4] = {1.165,pMax,1.0,1.}; // cpa
772 Int_t binsEff17[5] = {nbins,nbins,20,99,99}; Double_t xminEff17[5] = {1.065,pMin,-1.0,0.,0.}; Double_t xmaxEff17[5] = {1.165,pMax,1.0,3.3,3.3}; // dca to prim. vtx
773 Int_t binsEff18[5] = {nbins,nbins,20,170,170}; Double_t xminEff18[5] = {1.065,pMin,-1.0,0.5,0.5}; Double_t xmaxEff18[5] = {1.165,pMax,1.0,170.5,170.5}; // No. TPC Cls
774
ca96d60a 775 for(Int_t i=0; i<kNCent; i++){
776 // --------- Natural particles
777 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRap_Cent_%d",i);
9cb4cfe3 778 fAntiLambdaAssocMassPtRap[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff13,xminEff13,xmaxEff13);
ca96d60a 779 fOutput->Add(fAntiLambdaAssocMassPtRap[i]);
780
781 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRap2_Cent_%d",i);
9cb4cfe3 782 fAntiLambdaAssocMassPtRap2[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff13,xminEff13,xmaxEff13);
ca96d60a 783 fOutput->Add(fAntiLambdaAssocMassPtRap2[i]);
9cb4cfe3 784
ca96d60a 785 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtVtx_Cent_%d",i);
9cb4cfe3 786 fAntiLambdaAssocMassPtVtx[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; VtxZ;",4,binsEff14,xminEff14,xmaxEff14);
ca96d60a 787 fOutput->Add(fAntiLambdaAssocMassPtVtx[i]);
788
789 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCADaug_Cent_%d",i);
9cb4cfe3 790 fAntiLambdaAssocMassPtDCADaug[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; DCADaug;",4,binsEff15,xminEff15,xmaxEff15);
ca96d60a 791 fOutput->Add(fAntiLambdaAssocMassPtDCADaug[i]);
792
793 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtCPA_Cent_%d",i);
9cb4cfe3 794 fAntiLambdaAssocMassPtCPA[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; CPA;",4,binsEff16,xminEff16,xmaxEff16);
ca96d60a 795 fOutput->Add(fAntiLambdaAssocMassPtCPA[i]);
796
797 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCAPV_Cent_%d",i);
9cb4cfe3 798 fAntiLambdaAssocMassPtDCAPV[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos DCA to Prim. Vtx; Neg DCA to Prim. Vtx;",5,binsEff17,xminEff17,xmaxEff17);
ca96d60a 799 fOutput->Add(fAntiLambdaAssocMassPtDCAPV[i]);
800
801 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDaugNClsTPC_Cent_%d",i);
9cb4cfe3 802 fAntiLambdaAssocMassPtDaugNClsTPC[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos # TPC Cls; Neg # TPC Cls;",5,binsEff18,xminEff18,xmaxEff18);
ca96d60a 803 fOutput->Add(fAntiLambdaAssocMassPtDaugNClsTPC[i]);
804
805 // ------------ Embeded particles
806 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRapEmbeded_Cent_%d",i);
9cb4cfe3 807 fAntiLambdaAssocMassPtRapEmbeded[i] = new THnSparseD(hNameHist, "#bar{#Lambda} Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff13,xminEff13,xmaxEff13);
ca96d60a 808 fOutput->Add(fAntiLambdaAssocMassPtRapEmbeded[i]);
809
810 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRapEmbeded2_Cent_%d",i);
9cb4cfe3 811 fAntiLambdaAssocMassPtRapEmbeded2[i] = new THnSparseD(hNameHist, "#bar{#Lambda} Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap;",3,binsEff13,xminEff13,xmaxEff13);
ca96d60a 812 fOutput->Add(fAntiLambdaAssocMassPtRapEmbeded2[i]);
813
814 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtVtxEmbeded_Cent_%d",i);
9cb4cfe3 815 fAntiLambdaAssocMassPtVtxEmbeded[i] = new THnSparseD(hNameHist, "#bar{#Lambda} Embeded; Mass (GeV/c^{2}); #it{p}_{T}; rap; VtxZ;",4,binsEff14,xminEff14,xmaxEff14);
ca96d60a 816 fOutput->Add(fAntiLambdaAssocMassPtVtxEmbeded[i]);
817
818 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCADaugEmbeded_Cent_%d",i);
9cb4cfe3 819 fAntiLambdaAssocMassPtDCADaugEmbeded[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; DCADaug;",4,binsEff15,xminEff15,xmaxEff15);
ca96d60a 820 fOutput->Add(fAntiLambdaAssocMassPtDCADaugEmbeded[i]);
821
822 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtCPAEmbeded_Cent_%d",i);
9cb4cfe3 823 fAntiLambdaAssocMassPtCPAEmbeded[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; CPA;",4,binsEff16,xminEff16,xmaxEff16);
ca96d60a 824 fOutput->Add(fAntiLambdaAssocMassPtCPAEmbeded[i]);
825
826 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCAPVEmbeded_Cent_%d",i);
9cb4cfe3 827 fAntiLambdaAssocMassPtDCAPVEmbeded[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos DCA to Prim. Vtx; Neg DCA to Prim. Vtx;",5,binsEff17,xminEff17,xmaxEff17);
ca96d60a 828 fOutput->Add(fAntiLambdaAssocMassPtDCAPVEmbeded[i]);
829
ca96d60a 830 snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDaugNClsTPCEmbeded_Cent_%d",i);
9cb4cfe3 831 fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[i] = new THnSparseD(hNameHist, "#bar{#Lambda}; Mass (GeV/c^{2}); #it{p}_{T}; rap; Pos # TPC Cls; Neg # TPC Cls;",5,binsEff18,xminEff18,xmaxEff18);
ca96d60a 832 fOutput->Add(fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[i]);
833 }
834
80c0bcd3 835 fAntiLambdaMCResEta = new TH3F("fAntiLambdaMCResEta","#bar{#Lambda} Assoc: #eta resolution; #eta_{MC}-#eta_{Rec};#it{p}_{T} (GeV/#it{c}); centrality",40,-0.1,0.1,nbins,pMin,pMax,100,0.,100.);
b6f9da99 836 fOutput->Add(fAntiLambdaMCResEta);
59e0735e 837
80c0bcd3 838 fAntiLambdaMCResPhi = new TH3F("fAntiLambdaMCResPhi","#bar{#Lambda} Assoc: #varphi resolution; #varphi_{MC}-#varphi_{Rec};#it{p}_{T} (GeV/#it{c}); centrality",40,-0.1,0.1,nbins,pMin,pMax,100,0.,100.);
348080d3 839 fOutput->Add(fAntiLambdaMCResPhi);
59e0735e 840
ca96d60a 841 } //End MC
667b678a 842
ca96d60a 843 // ======================================================== //
844 // ========== Reconstruction information in AOD =========== //
667b678a 845 fHistArmenterosPodolanski =
846 new TH3F("fHistArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",
ca96d60a 847 100,-1.0,1.0,50,0,0.5,7,-0.5,6.5);
59e0735e 848 fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(1,"K^{0}_{S} Inv. Mass Peak");
849 fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(2,"K^{0}_{S} Bckg");
850 fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(3,"#Lambda Inv. Mass Peak");
851 fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(4,"#Lambda Bckg");
852 fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(5,"#bar{#Lambda} Inv. Mass Peak");
853 fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(6,"#bar{#Lambda} Bckg");
667b678a 854 fOutput->Add(fHistArmenterosPodolanski);
ca96d60a 855
667b678a 856 fHistArmPodBckg =
773f3106 857 new TH3F("fHistArmPodBckg","Armenteros-Podolanski phase space for correlations;#alpha;p_{t} arm",
858 100,-1.0,1.0,50,0,0.5,6,-0.5,5.5);
859 fHistArmPodBckg->GetZaxis()->SetBinLabel(1,"K^{0}_{S} SigBck: Trig events");
860 fHistArmPodBckg->GetZaxis()->SetBinLabel(2,"K^{0}_{S} Bck: Trig events");
861 fHistArmPodBckg->GetZaxis()->SetBinLabel(3,"#Lambda SigBck: Trig events");
862 fHistArmPodBckg->GetZaxis()->SetBinLabel(4,"#Lambda Bck: Trig events");
863 fHistArmPodBckg->GetZaxis()->SetBinLabel(5,"#bar{#Lambda} SigBck: Trig events");
864 fHistArmPodBckg->GetZaxis()->SetBinLabel(6,"#bar{#Lambda} Bck: Trig events");
667b678a 865 fOutput->Add(fHistArmPodBckg);
ca96d60a 866
667b678a 867 // ****** K0s ******
ca96d60a 868 fK0sMass =
80c0bcd3 869 new TH3F("fK0sMass", "K^{0}_{s}: mass vs #it{p}_{T};Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});centrality",nbins,0.398,0.598,nbins,pMin,pMax,100,0.,100.);
667b678a 870 fOutput->Add(fK0sMass);
ca96d60a 871
872 fK0sMassEmbeded =
80c0bcd3 873 new TH3F("fK0sMassEmbeded", "K^{0}_{s} Embeded: mass vs #it{p}_{T}",nbins,0.398,0.598,nbins,pMin,pMax,100,0.,100.);
ca96d60a 874 fK0sMassEmbeded->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 875 fK0sMassEmbeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 876 fK0sMassEmbeded->GetZaxis()->SetTitle("centrality");
877 fOutput->Add(fK0sMassEmbeded);
667b678a 878
80c0bcd3 879 fK0sMassPtEta =
9cb4cfe3 880 new TH3F("fK0sMassPtEta","K^{0}_{s}: Mass vs #it{p}_{T} vs #eta;Mass (GeV/C^{2});#it{p}_{T} (GeV/#it{c});#eta",
80c0bcd3 881 nbins,0.398,0.598,nbins,pMin,pMax,20,-1.0,1.0);
882 fOutput->Add(fK0sMassPtEta);
ca96d60a 883
3002fb0e 884 for(Int_t i=0; i<kNCent; i++){
885 fK0sMassPtRap[i] =
9cb4cfe3 886 new TH3F(Form("fK0sMassPtRap_cent_%.0lf_%.0lf",kBinCent[i],kBinCent[i+1]),"K^{0}_{s}: mass vs #it{p}_{T} vs y;Mass (GeV/C^{2});#it{p}_{T} (GeV/#it{c});y",
3002fb0e 887 nbins,0.398,0.598,nbins,pMin,pMax,20,-1.0,1.0);
888 fOutput->Add(fK0sMassPtRap[i]);
889 }
ca96d60a 890
891 fK0sMassPtPhi =
80c0bcd3 892 new TH3F("fK0sMassPtPhi","K^{0}_{s}: mass vs #it{p}_{T} vs #varphi;Mass (GeV/c^2);#it{p}_{T} (GeV/#it{c});#varphi (rad)",
ca96d60a 893 nbins,0.398,0.598,nbins,pMin,pMax,nbinsPhi,0.,2.*TMath::Pi());
667b678a 894 fOutput->Add(fK0sMassPtPhi);
ca96d60a 895
773f3106 896 // ================== Correlations =================
897
898 // ----------------Splitting:
899 // Shared TPC clusters status between trigger and daughter tracks
900 fSharedClsTrigDaug = new TH3F("fSharedClsTrigDaug","Splitting chech with TPC map;",100,0.,10.,100,0.,10.,6,0.,6.);
901 fOutput->Add(fSharedClsTrigDaug);
902
903 //-----
904 Double_t binsDev[120];
905 binsDev[0] = 0;
906
907 for (Int_t k=0;k<=11;k++)
908 for (Int_t j=1;j<=10;j++)
909 binsDev[k*10+j] = j*TMath::Power(10,k);
910
911 Int_t binsSplit[4] = {100,100,120,7}; Double_t xminSplit[4] = {pMin,pMin,0,0.}; Double_t xmaxSplit[4] = {pMax,pMax,1e+12,7.0};
912
913 // positive daughter
914 fK0sPosDaugSplCheckCovMat = new THnSparseD("fK0sPosDaugSplCheckCovMat", "K^{0}_{S} Pos. daughter; #it{p}_{T,V0} (GeV/#it{c}); #it{p}_{Daug} (GeV/#it{c}); X-X'/( #sigma^{2} - #sigma'^{2} ); Variables;",4,binsSplit,xminSplit,xmaxSplit);
915 fK0sPosDaugSplCheckCovMat->SetBinEdges(2,binsDev);
916 fOutput->Add(fK0sPosDaugSplCheckCovMat);
917
918 // negative daughter
919 fK0sNegDaugSplCheckCovMat = new THnSparseD("fK0sNegDaugSplCheckCovMat", "K^{0}_{S} Neg. daughter; #it{p}_{T,V0} (GeV/#it{c}); #it{p}_{Daug} (GeV/#it{c}); X-X'/( #sigma^{2} - #sigma'^{2} ); Variables;",4,binsSplit,xminSplit,xmaxSplit);
920 fK0sNegDaugSplCheckCovMat->SetBinEdges(2,binsDev);
921 fOutput->Add(fK0sNegDaugSplCheckCovMat);
922
923 // DCA to prim vertex
667b678a 924 fK0sDCADaugToPrimVtx
80c0bcd3 925 = new TH3F("fK0sDCADaugToPrimVtx","K^{0}_{S} Bckg: dca daughter vs. p_{T,l};DCA Pos daug (cm);DCA Neg daug (cm);p_{T,l} (GeV/#it{c})",
667b678a 926 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP);
667b678a 927 fOutput->Add(fK0sDCADaugToPrimVtx);
928
348080d3 929 // Spatial Resoltuion between trigger- and asosciated- particles
80c0bcd3 930 fK0sSpatialRes = new TH3F("fK0sSpatialRes","K^{0}_{S}: Spatial resolution;#Delta#varphi (rad);trig-assoc. resolution (cm);dec. length (cm)",
348080d3 931 20,-0.1,0.1,100,0.,10,2*nbins,lMin,lMax);
932 fOutput->Add(fK0sSpatialRes);
667b678a 933
348080d3 934 for(Int_t jj=0;jj<kNCent;jj++){
935 for(Int_t k=0;k<kN1;k++){
936
937 // Monte-Carlo level:
938 if(fIsMC){
fbaec09e 939 snprintf(hNameHist,100, "fK0sdPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1]);
80c0bcd3 940 fK0sdPhidEtaMC[jj*kN1+k] = new TH3F(hNameHist,"K^{0}_{S} MC: #Delta#varphi vs #Delta#eta vs p_{T,l}",
348080d3 941 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
942 nbinsdEta,-1.5,1.5,
943 nbinsVtx,-10.,10.);
80c0bcd3 944 fK0sdPhidEtaMC[jj*kN1+k]->GetXaxis()->SetTitle("#Delta#varphi (rad)");
348080d3 945 fK0sdPhidEtaMC[jj*kN1+k]->GetYaxis()->SetTitle("#Delta#eta");
946 fK0sdPhidEtaMC[jj*kN1+k]->GetZaxis()->SetTitle("Vertex Z (cm)");
947 fOutput->Add(fK0sdPhidEtaMC[jj*kN1+k]);
948 }
949
950 // Reconstruction level:
44972668 951 for(Int_t ll=0;ll<kNVtxZ;ll++){
952 snprintf(hNameHist,100, "fK0sdPhidEtaPtL_%.2f_%.2f_Cent_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1],ll);
80c0bcd3 953 fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll] = new TH3F(hNameHist,"K^{0}_{S}: #Delta#varphi vs #Delta#eta vs Inv. Mass",
44972668 954 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
955 nbinsdEta,-1.5,1.5,
83d0a277 956 nbins,0.398,0.598);
80c0bcd3 957 fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetXaxis()->SetTitle("#Delta#varphi (rad)");
44972668 958 fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetYaxis()->SetTitle("#Delta#eta");
959 fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetZaxis()->SetTitle("Inv. Mass");
960 fOutput->Add(fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]);
961 }
348080d3 962 }
667b678a 963 }
348080d3 964
667b678a 965 // Correlations (side-band):
966 fK0sBckgDecLength
967 = new TH2F("fK0sBckgDecLength","K^{0}_{S} Bckg: c#tau vs. p_{T,l}",
968 100,0.,15.,nbinPtLP,pMin,ptMaxLP);
969 fK0sBckgDecLength->GetXaxis()->SetTitle("c#tau (cm)");
80c0bcd3 970 fK0sBckgDecLength->GetYaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
667b678a 971 fOutput->Add(fK0sBckgDecLength);
972
973 fK0sBckgDCADaugToPrimVtx
974 = new TH3F("fK0sBckgDCADaugToPrimVtx","K^{0}_{S} Bckg: dca daughter vs. p_{T,l}",
975 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP);
976 fK0sBckgDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)");
977 fK0sBckgDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)");
80c0bcd3 978 fK0sBckgDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
667b678a 979 fOutput->Add(fK0sBckgDCADaugToPrimVtx);
980
981 fK0sBckgEtaPhi =
80c0bcd3 982 new TH2F("fK0sBckgEtaPhi","K^{0}_{s} Bckg: #varphi vs #eta",
667b678a 983 nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.);
80c0bcd3 984 fK0sBckgEtaPhi->GetXaxis()->SetTitle("#varphi (rad)");
667b678a 985 fK0sBckgEtaPhi->GetYaxis()->SetTitle("#eta");
986 fOutput->Add(fK0sBckgEtaPhi);
987
988 fK0sBckgPhiRadio
80c0bcd3 989 = new TH2F("fK0sBckgPhiRadio","K^{0}_{S} Bckg: #varphi vs l_{T}",
667b678a 990 nbinsPhi,0.,2.*TMath::Pi(),2*nbins,lMin,lMax);
80c0bcd3 991 fK0sBckgPhiRadio->GetXaxis()->SetTitle("#varphi (rad)");
667b678a 992 fK0sBckgPhiRadio->GetYaxis()->SetTitle("l_{T} (cm)");
993 fOutput->Add(fK0sBckgPhiRadio);
994
995 fK0sBckgDCANegDaugToPrimVtx
996 = new TH2F("fK0sBckgDCANegDaugToPrimVtx","K^{0}_{S} Bckg: dca NegDaughter",
b6f9da99 997 7,-0.5,6.5,90,0.,3.3);
667b678a 998 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetTitle("MC Production");
999 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec");
1000 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary");
b6f9da99 1001 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's");
1002 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades");
1003 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv.");
1004 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother");
1005 fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other");
667b678a 1006 fK0sBckgDCANegDaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg Daug (cm)");
1007 fOutput->Add(fK0sBckgDCANegDaugToPrimVtx);
1008
1009 fK0sBckgDCAPosDaugToPrimVtx
1010 = new TH2F("fK0sBckgDCAPosDaugToPrimVtx","K^{0}_{S} Bckg: dca PosDaughter",
b6f9da99 1011 7,-0.5,6.5,90,0.,3.3);
667b678a 1012 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetTitle("MC Production");
1013 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec");
1014 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary");
b6f9da99 1015 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's");
1016 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades");
1017 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv.");
1018 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother");
1019 fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other");
667b678a 1020 fK0sBckgDCAPosDaugToPrimVtx->GetYaxis()->SetTitle("DCA Pos Daug (cm)");
1021 fOutput->Add(fK0sBckgDCAPosDaugToPrimVtx);
1022
348080d3 1023 fV0MassCascade
1024 = new TH2F("fV0MassCascade","Cascade Reconstruction wi V0's candiates;Invariant Mass (GeV/c^{2});Cascade type",650, 1.2, 2.5,12,0.5,12.5);
1025 fOutput->Add(fV0MassCascade);
667b678a 1026
1027
1028 // ****** Lambda ******
1029 fLambdaMass =
80c0bcd3 1030 new TH3F("fLambdaMass","Mass vs #it{p}_{T} for \\Lambda",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
667b678a 1031 fLambdaMass->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1032 fLambdaMass->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
128e003c 1033 fLambdaMass->GetZaxis()->SetTitle("centrality");
667b678a 1034 fOutput->Add(fLambdaMass);
1035
ca96d60a 1036 fLambdaMassEmbeded =
80c0bcd3 1037 new TH3F("fLambdaMassEmbeded","Mass vs #it{p}_{T} for \\Lambda Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
ca96d60a 1038 fLambdaMassEmbeded->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1039 fLambdaMassEmbeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 1040 fLambdaMassEmbeded->GetZaxis()->SetTitle("centrality");
1041 fOutput->Add(fLambdaMassEmbeded);
1042
1043 fLambdaMass2 =
80c0bcd3 1044 new TH3F("fLambdaMass2","Mass vs #it{p}_{T} for \\Lambda",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
ca96d60a 1045 fLambdaMass2->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1046 fLambdaMass2->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 1047 fLambdaMass2->GetZaxis()->SetTitle("centrality");
1048 fOutput->Add(fLambdaMass2);
1049
1050 fLambdaMass2Embeded =
80c0bcd3 1051 new TH3F("fLambdaMass2Embeded","Mass vs #it{p}_{T} for \\Lambda Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
ca96d60a 1052 fLambdaMass2Embeded->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1053 fLambdaMass2Embeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 1054 fLambdaMass2Embeded->GetZaxis()->SetTitle("centrality");
1055 fOutput->Add(fLambdaMass2Embeded);
1056
80c0bcd3 1057 fLambdaMassPtEta =
1058 new TH3F("fLambdaMassPtEta","\\Lambda: mass vs #it{p}_{T} vs #eta;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});#eta",
1059 nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0);
1060 fOutput->Add(fLambdaMassPtEta);
1061
3002fb0e 1062 for(Int_t i=0; i<kNCent; i++){
1063 fLambdaMassPtRap[i] =
1064 new TH3F(Form("fLambdaMassPtRap_cent_%.0lf_%.0lf",kBinCent[i],kBinCent[i+1]),"\\Lambda: mass vs #it{p}_{T} vs y;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});y",
1065 nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0);
1066 fOutput->Add(fLambdaMassPtRap[i]);
1067 }
667b678a 1068
59e0735e 1069 fLambdaMassPtPhi =
80c0bcd3 1070 new TH3F("fLambdaMassPtPhi","#Lambda: mass vs #it{p}_{T} vs #varphi;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});#varphi (rad)",
59e0735e 1071 nbins,1.065,1.165,nbins,pMin,pMax,nbinsPhi,0.,2.*TMath::Pi());
667b678a 1072 fOutput->Add(fLambdaMassPtPhi);
1073
773f3106 1074 // ================== Correlations =================
1075
1076 // ----------------Splitting:
1077
1078 // positive daughter
1079 fLambdaPosDaugSplCheckCovMat = new THnSparseD("fLambdaPosDaugSplCheckCovMat", "#Lambda Pos. daughter; #it{p}_{T,V0} (GeV/#it{c}); #it{p}_{Daug} (GeV/#it{c}); X-X'/( #sigma^{2} - #sigma'^{2} ); Variables;",4,binsSplit,xminSplit,xmaxSplit);
1080 fLambdaPosDaugSplCheckCovMat->SetBinEdges(2,binsDev);
1081 fOutput->Add(fLambdaPosDaugSplCheckCovMat);
1082
1083 // negative daughter
1084 fLambdaNegDaugSplCheckCovMat = new THnSparseD("fLambdaNegDaugSplCheckCovMat", "#Lambda Neg. daughter; #it{p}_{T,V0} (GeV/#it{c}); #it{p}_{Daug} (GeV/#it{c}); X-X'/( #sigma^{2} - #sigma'^{2} ); Variables;",4,binsSplit,xminSplit,xmaxSplit);
1085 fLambdaNegDaugSplCheckCovMat->SetBinEdges(2,binsDev);
1086 fOutput->Add(fLambdaNegDaugSplCheckCovMat);
1087
1088 // DCA to prim vertex
667b678a 1089 fLambdaDCADaugToPrimVtx
1090 = new TH3F("fLambdaDCADaugToPrimVtx","#Lambda Bckg: dca daughter vs. p_{T,l}",
1091 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP);
1092 fLambdaDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)");
1093 fLambdaDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)");
80c0bcd3 1094 fLambdaDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
667b678a 1095 fOutput->Add(fLambdaDCADaugToPrimVtx);
1096
348080d3 1097 // Spatial Resoltuion between trigger- and asosciated- particles
80c0bcd3 1098 fLambdaSpatialRes = new TH3F("fLambdaSpatialRes","#Lambda: Spatial resolution;#Delta#varphi (rad);trig-assoc. resolution (cm);dec. length (cm)",
348080d3 1099 20,-0.1,0.1,100,0.,10,2*nbins,lMin,lMax);
1100 fOutput->Add(fLambdaSpatialRes);
1101
1102
1103 for(Int_t jj=0;jj<kNCent;jj++){
1104 for(Int_t k=0;k<kN1;k++){
1105
1106 // Monte-Carlo level:
1107 if(fIsMC){
fbaec09e 1108 snprintf(hNameHist,100, "fLambdadPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1]);
80c0bcd3 1109 fLambdadPhidEtaMC[jj*kN1+k] = new TH3F(hNameHist,"#Lambda MC: #Delta#varphi vs #Delta#eta vs p_{T,l}",
348080d3 1110 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1111 nbinsdEta,-1.5,1.5,
1112 nbinsVtx,-10.,10.);
80c0bcd3 1113 fLambdadPhidEtaMC[jj*kN1+k]->GetXaxis()->SetTitle("#Delta#varphi (rad)");
348080d3 1114 fLambdadPhidEtaMC[jj*kN1+k]->GetYaxis()->SetTitle("#Delta#eta");
1115 fLambdadPhidEtaMC[jj*kN1+k]->GetZaxis()->SetTitle("Vertex Z (cm)");
1116 fOutput->Add(fLambdadPhidEtaMC[jj*kN1+k]);
1117 }
667b678a 1118
348080d3 1119 // Reconstruction level:
44972668 1120 for(Int_t ll=0;ll<kNVtxZ;ll++){
1121 snprintf(hNameHist,100, "fLambdadPhidEtaPtL_%.2f_%.2f_Cent_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1],ll);
80c0bcd3 1122 fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll] = new TH3F(hNameHist,"#Lambda: #Delta#varphi vs #Delta#eta vs p_{T,l}",
44972668 1123 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1124 nbinsdEta,-1.5,1.5,
1125 nbins,1.065,1.165);
80c0bcd3 1126 fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetXaxis()->SetTitle("#Delta#varphi (rad)");
44972668 1127 fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetYaxis()->SetTitle("#Delta#eta");
1128 fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetZaxis()->SetTitle("Inv. Mass");
1129 fOutput->Add(fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]);
1130 }
348080d3 1131 }
667b678a 1132 }
667b678a 1133
1134 // Correlations (side-band):
1135 fLambdaBckgDecLength
1136 = new TH2F("fLambdaBckgDecLength","#Lambda Bckg: c#tau vs. p_{T,l}",
1137 100,0.,25.,nbinPtLP,pMin,ptMaxLP);
1138 fLambdaBckgDecLength->GetXaxis()->SetTitle("c#tau (cm)");
80c0bcd3 1139 fLambdaBckgDecLength->GetYaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
667b678a 1140 fOutput->Add(fLambdaBckgDecLength);
1141
1142 fLambdaBckgDCADaugToPrimVtx
1143 = new TH3F("fLambdaBckgDCADaugToPrimVtx","#Lambda Bckg: dca daughter vs. p_{T,l}",
1144 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP);
1145 fLambdaBckgDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)");
1146 fLambdaBckgDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)");
80c0bcd3 1147 fLambdaBckgDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
667b678a 1148 fOutput->Add(fLambdaBckgDCADaugToPrimVtx);
1149
1150 fLambdaBckgEtaPhi =
80c0bcd3 1151 new TH2F("fLambdaBckgEtaPhi","#Lambda Bckg: #varphi vs #eta",
667b678a 1152 nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.);
80c0bcd3 1153 fLambdaBckgEtaPhi->GetXaxis()->SetTitle("#varphi (rad)");
667b678a 1154 fLambdaBckgEtaPhi->GetYaxis()->SetTitle("#eta");
1155 fOutput->Add(fLambdaBckgEtaPhi);
1156
1157 fLambdaBckgPhiRadio
80c0bcd3 1158 = new TH2F("fLambdaBckgPhiRadio","#Lambda Bckg: #varphi vs l_{T}",
667b678a 1159 nbinsPhi,0.,2.*TMath::Pi(),2*nbins,lMin,lMax);
80c0bcd3 1160 fLambdaBckgPhiRadio->GetXaxis()->SetTitle("#varphi (rad)");
667b678a 1161 fLambdaBckgPhiRadio->GetYaxis()->SetTitle("l_{T} (cm)");
1162 fOutput->Add(fLambdaBckgPhiRadio);
1163
1164
1165 fLambdaBckgDCANegDaugToPrimVtx
1166 = new TH2F("fLambdaBckgDCANegDaugToPrimVtx","#Lambda Bckg: dca NegDaughter",
b6f9da99 1167 7,-0.5,6.5,90,0.,3.3);
667b678a 1168 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetTitle("MC Production");
1169 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec");
1170 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary");
b6f9da99 1171 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's");
1172 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades");
1173 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv.");
1174 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother");
1175 fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other");
667b678a 1176 fLambdaBckgDCANegDaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg Daug (cm)");
1177 fOutput->Add(fLambdaBckgDCANegDaugToPrimVtx);
1178
1179
1180 fLambdaBckgDCAPosDaugToPrimVtx
1181 = new TH2F("fLambdaBckgDCAPosDaugToPrimVtx","#Lambda Bckg: dca PosDaughter",
b6f9da99 1182 7,-0.5,6.5,90,0.,3.3);
667b678a 1183 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetTitle("MC Production");
1184 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec");
1185 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary");
b6f9da99 1186 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's");
1187 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades");
1188 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv.");
1189 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother");
1190 fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other");
667b678a 1191 fLambdaBckgDCAPosDaugToPrimVtx->GetYaxis()->SetTitle("DCA Pos Daug (cm)");
1192 fOutput->Add(fLambdaBckgDCAPosDaugToPrimVtx);
1193
1194
59e0735e 1195 // ****** AntiLambda ******
1196 fAntiLambdaMass =
80c0bcd3 1197 new TH3F("fAntiLambdaMass","Mass vs #it{p}_{T} for #bar{#Lambda}",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
59e0735e 1198 fAntiLambdaMass->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1199 fAntiLambdaMass->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
128e003c 1200 fAntiLambdaMass->GetZaxis()->SetTitle("centrality");
59e0735e 1201 fOutput->Add(fAntiLambdaMass);
1202
ca96d60a 1203 fAntiLambdaMassEmbeded =
80c0bcd3 1204 new TH3F("fAntiLambdaMassEmbeded","Mass vs #it{p}_{T} for #bar{#Lambda} Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
ca96d60a 1205 fAntiLambdaMassEmbeded->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1206 fAntiLambdaMassEmbeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 1207 fAntiLambdaMassEmbeded->GetZaxis()->SetTitle("centrality");
1208 fOutput->Add(fAntiLambdaMassEmbeded);
1209
1210 fAntiLambdaMass2 =
80c0bcd3 1211 new TH3F("fAntiLambdaMass2","Mass vs #it{p}_{T} for #bar{#Lambda}",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
ca96d60a 1212 fAntiLambdaMass2->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1213 fAntiLambdaMass2->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 1214 fAntiLambdaMass2->GetZaxis()->SetTitle("centrality");
1215 fOutput->Add(fAntiLambdaMass2);
1216
1217 fAntiLambdaMass2Embeded =
80c0bcd3 1218 new TH3F("fAntiLambdaMass2Embeded","Mass vs #it{p}_{T} for #bar{#Lambda} Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.);
ca96d60a 1219 fAntiLambdaMass2Embeded->GetXaxis()->SetTitle("Mass (GeV/c^2)");
80c0bcd3 1220 fAntiLambdaMass2Embeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})");
ca96d60a 1221 fAntiLambdaMass2Embeded->GetZaxis()->SetTitle("centrality");
1222 fOutput->Add(fAntiLambdaMass2Embeded);
1223
80c0bcd3 1224 fAntiLambdaMassPtEta =
1225 new TH3F("fAntiLambdaMassPtEta","#bar{#Lambda}: mass vs #it{p}_{T} vs #eta;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});#eta",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0);
1226 fOutput->Add(fAntiLambdaMassPtEta);
1227
3002fb0e 1228 for(Int_t i=0; i<kNCent; i++){
1229 fAntiLambdaMassPtRap[i] =
1230 new TH3F(Form("fAntiLambdaMassPtRap_cent_%.0lf_%.0lf",kBinCent[i],kBinCent[i+1]),"#bar{#Lambda}: mass vs #it{p}_{T} vs y;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});y",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0);
1231 fOutput->Add(fAntiLambdaMassPtRap[i]);
1232 }
59e0735e 1233
348080d3 1234 fAntiLambdaMassPtPhi =
80c0bcd3 1235 new TH3F("fAntiLambdaMassPtPhi","#bar{#Lambda}: mass vs #it{p}_{T} vs #varphi;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});#varphi (rad)",
59e0735e 1236 nbins,1.065,1.165,nbins,pMin,pMax,nbinsPhi,0.,2.*TMath::Pi());
59e0735e 1237 fOutput->Add(fAntiLambdaMassPtPhi);
1238
1239
773f3106 1240
1241 // ================== Correlations =================
1242
1243 // ----------------Splitting:
1244
1245 // positive daughter
1246 fAntiLambdaPosDaugSplCheckCovMat = new THnSparseD("fAntiLambdaPosDaugSplCheckCovMat", "#bar{#Lambda} Pos. daughter; #it{p}_{T,V0} (GeV/#it{c}); #it{p}_{Daug} (GeV/#it{c}); X-X'/( #sigma^{2} - #sigma'^{2} ); Variables;",4,binsSplit,xminSplit,xmaxSplit);
1247 fAntiLambdaPosDaugSplCheckCovMat->SetBinEdges(2,binsDev);
1248 fOutput->Add(fAntiLambdaPosDaugSplCheckCovMat);
1249
1250 // negative daughter
1251 fAntiLambdaNegDaugSplCheckCovMat = new THnSparseD("fAntiLambdaNegDaugSplCheckCovMat", "#bar{#Lambda} Neg. daughter; #it{p}_{T,V0} (GeV/#it{c}); #it{p}_{Daug} (GeV/#it{c}); X-X'/( #sigma^{2} - #sigma'^{2} ); Variables;",4,binsSplit,xminSplit,xmaxSplit);
1252 fAntiLambdaNegDaugSplCheckCovMat->SetBinEdges(2,binsDev);
1253 fOutput->Add(fAntiLambdaNegDaugSplCheckCovMat);
1254
1255 // DCA to prim vertex
59e0735e 1256 fAntiLambdaDCADaugToPrimVtx
1257 = new TH3F("fAntiLambdaDCADaugToPrimVtx","#bar{#Lambda} Bckg: dca daughter vs. p_{T,l}",
1258 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP);
1259 fAntiLambdaDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)");
1260 fAntiLambdaDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)");
80c0bcd3 1261 fAntiLambdaDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
59e0735e 1262 fOutput->Add(fAntiLambdaDCADaugToPrimVtx);
1263
348080d3 1264 // Spatial Resoltuion between trigger- and asosciated- particles
80c0bcd3 1265 fAntiLambdaSpatialRes = new TH3F("fAntiLambdaSpatialRes","#bar{#Lambda}: Spatial resolution;#Delta#varphi (rad);trig-assoc. resolution (cm);dec. length (cm)",
348080d3 1266 20,-0.1,0.1,100,0.,10,2*nbins,lMin,lMax);
1267 fOutput->Add(fAntiLambdaSpatialRes);
1268
1269 for(Int_t jj=0;jj<kNCent;jj++){
1270 for(Int_t k=0;k<kN1;k++){
1271
1272 // Monte-Carlo level:
1273 if(fIsMC){
fbaec09e 1274 snprintf(hNameHist,100, "fAntiLambdadPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1]);
80c0bcd3 1275 fAntiLambdadPhidEtaMC[jj*kN1+k] = new TH3F(hNameHist,"#bar{#Lambda} MC: #Delta#varphi vs #Delta#eta vs p_{T,l}",
348080d3 1276 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1277 nbinsdEta,-1.5,1.5,
1278 nbinsVtx,-10.,10.);
80c0bcd3 1279 fAntiLambdadPhidEtaMC[jj*kN1+k]->GetXaxis()->SetTitle("#Delta#varphi (rad)");
348080d3 1280 fAntiLambdadPhidEtaMC[jj*kN1+k]->GetYaxis()->SetTitle("#Delta#eta");
1281 fAntiLambdadPhidEtaMC[jj*kN1+k]->GetZaxis()->SetTitle("Vertex Z (cm)");
1282 fOutput->Add(fAntiLambdadPhidEtaMC[jj*kN1+k]);
1283 }
59e0735e 1284
348080d3 1285 // Reconstruction level:
44972668 1286 for(Int_t ll=0;ll<kNVtxZ;ll++){
1287 snprintf(hNameHist,100, "fAntiLambdadPhidEtaPtL_%.2f_%.2f_Cent_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1],ll);
80c0bcd3 1288 fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll] = new TH3F(hNameHist,"#bar{#Lambda}: #Delta#varphi vs #Delta#eta vs p_{T,l}",
44972668 1289 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1290 nbinsdEta,-1.5,1.5,
1291 nbins,1.065,1.165);
80c0bcd3 1292 fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetXaxis()->SetTitle("#Delta#varphi (rad)");
44972668 1293 fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetYaxis()->SetTitle("#Delta#eta");
1294 fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetZaxis()->SetTitle("Inv. Mass");
1295 fOutput->Add(fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]);
1296 }
348080d3 1297 }
59e0735e 1298 }
59e0735e 1299
1300 // Correlations (side-band):
1301 fAntiLambdaBckgDecLength
1302 = new TH2F("fAntiLambdaBckgDecLength","#bar{#Lambda} Bckg: c#tau vs. p_{T,l}",
1303 100,0.,25.,nbinPtLP,pMin,ptMaxLP);
1304 fAntiLambdaBckgDecLength->GetXaxis()->SetTitle("c#tau (cm)");
80c0bcd3 1305 fAntiLambdaBckgDecLength->GetYaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
59e0735e 1306 fOutput->Add(fAntiLambdaBckgDecLength);
1307
1308 fAntiLambdaBckgDCADaugToPrimVtx
1309 = new TH3F("fAntiLambdaBckgDCADaugToPrimVtx","#bar{#Lambda} Bckg: dca daughter vs. p_{T,l}",
1310 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP);
1311 fAntiLambdaBckgDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)");
1312 fAntiLambdaBckgDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)");
80c0bcd3 1313 fAntiLambdaBckgDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})");
59e0735e 1314 fOutput->Add(fAntiLambdaBckgDCADaugToPrimVtx);
1315
1316 fAntiLambdaBckgEtaPhi =
80c0bcd3 1317 new TH2F("fAntiLambdaBckgEtaPhi","#bar{#Lambda} Bckg: #varphi vs #eta;#varphi (rad);l_{T} (cm)",
59e0735e 1318 nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.);
59e0735e 1319 fOutput->Add(fAntiLambdaBckgEtaPhi);
1320
1321 fAntiLambdaBckgPhiRadio
80c0bcd3 1322 = new TH2F("fAntiLambdaBckgPhiRadio","#bar{#Lambda} Bckg: #varphi vs l_{T};#varphi (rad);l_{T} (cm)",
59e0735e 1323 nbinsPhi,0.,2.*TMath::Pi(),2*nbins,lMin,lMax);
59e0735e 1324 fOutput->Add(fAntiLambdaBckgPhiRadio);
1325
1326
1327 fAntiLambdaBckgDCANegDaugToPrimVtx
1328 = new TH2F("fAntiLambdaBckgDCANegDaugToPrimVtx","#bar{#Lambda} Bckg: dca NegDaughter",
b6f9da99 1329 7,-0.5,6.5,90,0.,3.3);
59e0735e 1330 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetTitle("MC Production");
1331 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec");
1332 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary");
b6f9da99 1333 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's");
1334 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades");
1335 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv.");
1336 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother");
1337 fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other");
59e0735e 1338 fAntiLambdaBckgDCANegDaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg Daug (cm)");
1339 fOutput->Add(fAntiLambdaBckgDCANegDaugToPrimVtx);
1340
1341
1342 fAntiLambdaBckgDCAPosDaugToPrimVtx
1343 = new TH2F("fAntiLambdaBckgDCAPosDaugToPrimVtx","#bar{#Lambda} Bckg: dca PosDaughter",
b6f9da99 1344 7,-0.5,6.5,90,0.,3.3);
59e0735e 1345 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetTitle("MC Production");
1346 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec");
1347 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary");
b6f9da99 1348 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's");
1349 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades");
1350 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv.");
1351 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother");
1352 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other");
59e0735e 1353 fAntiLambdaBckgDCAPosDaugToPrimVtx->GetYaxis()->SetTitle("DCA Pos Daug (cm)");
1354 fOutput->Add(fAntiLambdaBckgDCAPosDaugToPrimVtx);
1355
348080d3 1356
6668159e 1357 // ============================================================= //
1358
348080d3 1359 // K0s in ME:
1360 for(Int_t ll=0;ll<kNCent;ll++){
1361 for(Int_t k=0;k<kN1;k++){
1362 for(Int_t j=0;j<kNVtxZ;j++){
1363
fbaec09e 1364 snprintf(hNameHist,100,"fK0sdPhidEtaME_%.2f_%.2f_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[ll],kBinCent[ll+1],j);
80c0bcd3 1365 fK0sdPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j] = new TH2F(hNameHist,"K^{0}_{S}: #Delta#varphi vs #Delta#eta in ME;#Delta#varphi (rad);#Delta#eta",
348080d3 1366 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1367 nbinsdEta,-1.5,1.5);
1368 fOutputME->Add(fK0sdPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j]);
1369 }
1370 }
1371 }
1372
1373 // Lambda in ME:
1374 for(Int_t ll=0;ll<kNCent;ll++){
1375 for(Int_t k=0;k<kN1;k++){
1376 for(Int_t j=0;j<kNVtxZ;j++){
1377
fbaec09e 1378 snprintf(hNameHist,100,"fLambdadPhidEtaME_%.2f_%.2f_%.0lf_%.0lf_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[ll],kBinCent[ll+1],j);
80c0bcd3 1379 fLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j] = new TH2F(hNameHist,"#Lambda: #Delta#varphi vs #Delta#eta in ME;#Delta#varphi (rad);#Delta#eta",
348080d3 1380 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1381 nbinsdEta,-1.5,1.5);
1382 fOutputME->Add(fLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j]);
1383 }
1384 }
1385 }
1386
1387 // AntiLambda in ME:
1388 for(Int_t ll=0;ll<kNCent;ll++){
1389 for(Int_t k=0;k<kN1;k++){
1390 for(Int_t j=0;j<kNVtxZ;j++){
1391
fbaec09e 1392 snprintf(hNameHist,100,"fAntiLambdadPhidEtaME_%.2f_%.2f_%.0lf_%.0lf_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[ll],kBinCent[ll+1],j);
80c0bcd3 1393 fAntiLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j] = new TH2F(hNameHist,"#bar{#Lambda}: #Delta#varphi vs #Delta#eta in ME;#Delta#varphi (rad);#Delta#eta",
348080d3 1394 nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
1395 nbinsdEta,-1.5,1.5);
1396 fOutputME->Add(fAntiLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j]);
1397 }
1398 }
1399 }
1400
1401
1402 // ============================================================= //
1403
6668159e 1404 if(fDoQA){
1405
ca96d60a 1406 // ----------------------------
6668159e 1407 // Quality Assurance K0s:
6668159e 1408
ca96d60a 1409 // Transverse momentum:
1410 // --- signal ---
1411 fK0sPtPosDaug =
80c0bcd3 1412 new TH2F("fK0sPtPosDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1413 fOutputQA->Add(fK0sPtPosDaug);
6668159e 1414
ca96d60a 1415 fK0sPtNegDaug =
80c0bcd3 1416 new TH2F("fK0sPtNegDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1417 fOutputQA->Add(fK0sPtNegDaug);
6668159e 1418
ca96d60a 1419 // --- background ---
1420 fK0sBckgPtPosDaug =
80c0bcd3 1421 new TH2F("fK0sBckgPtPosDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1422 fOutputQA->Add(fK0sBckgPtPosDaug);
1423
1424 fK0sBckgPtNegDaug =
80c0bcd3 1425 new TH2F("fK0sBckgPtNegDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1426 fOutputQA->Add(fK0sBckgPtNegDaug);
6668159e 1427
1428 // Phi Eta
1429 // --- signal ---
1430 fK0sPhiEtaPosDaug =
80c0bcd3 1431 new TH3F("fK0sPhiEtaPosDaug","K^{0}_{S}: #varphi vs #eta Pos. Daug.;#varphi;#eta;#it{p}_{T} V0",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
6668159e 1432 fOutputQA->Add(fK0sPhiEtaPosDaug);
1433
1434 fK0sPhiEtaNegDaug =
80c0bcd3 1435 new TH3F("fK0sPhiEtaNegDaug","K^{0}_{S}: #varphi vs #eta Neg. Daug.;#varphi;#eta;#it{p}_{T} V0",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
6668159e 1436 fOutputQA->Add(fK0sPhiEtaNegDaug);
1437
1438 // --- background ---
1439 fK0sBckgPhiEtaPosDaug =
80c0bcd3 1440 new TH3F("fK0sBckgPhiEtaPosDaug","K^{0}_{S} Bckg: #varphi vs #eta Pos. Daug.;#varphi;#eta;#it{p}_{T} V0",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
6668159e 1441 fOutputQA->Add(fK0sBckgPhiEtaPosDaug);
1442
1443 fK0sBckgPhiEtaNegDaug =
80c0bcd3 1444 new TH3F("fK0sBckgPhiEtaNegDaug","K^{0}_{S} Bckg: #varphi vs #eta Neg. Daug.;#varphi;#eta;#it{p}_{T} V0",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
6668159e 1445 fOutputQA->Add(fK0sBckgPhiEtaNegDaug);
1446
59e0735e 1447 // Distance of closest approach:
6668159e 1448 // --- signal ---
1449 fK0sDCAPosDaug =
80c0bcd3 1450 new TH2F("fK0sDCAPosDaug","K^{0}_{S}: dca Pos;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax);
6668159e 1451 fOutputQA->Add(fK0sDCAPosDaug);
1452
1453 fK0sDCANegDaug =
80c0bcd3 1454 new TH2F("fK0sDCANegDaug","K^{0}_{S}: dca Neg;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax);
6668159e 1455 fOutputQA->Add(fK0sDCANegDaug);
1456
1457 // --- background ---
1458 fK0sBckgDCAPosDaug =
80c0bcd3 1459 new TH2F("fK0sBckgDCAPosDaug","K^{0}_{S} Bckg: dca Pos;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax);
6668159e 1460 fOutputQA->Add(fK0sBckgDCAPosDaug);
1461
1462 fK0sBckgDCANegDaug =
80c0bcd3 1463 new TH2F("fK0sBckgDCANegDaug","K^{0}_{S} Bckg: dca Neg;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax);
6668159e 1464 fOutputQA->Add(fK0sBckgDCANegDaug);
1465
59e0735e 1466 // Decay vertex reconstruction:
6668159e 1467 // --- signal ---
1468 fK0sDecayPos =
1469 new TH3F("fK0sDecayPos","K^{0}_{S}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
1470 fK0sDecayPos->GetXaxis()->SetTitle("Pos. X");
1471 fK0sDecayPos->GetYaxis()->SetTitle("Pos. Y");
80c0bcd3 1472 fK0sDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1473 fOutputQA->Add(fK0sDecayPos);
1474
1475 fK0sDecayVertex =
348080d3 1476 new TH2F("fK0sDecayVertex","K^{0}_{S}: decay length",100,0.,100.,nbins,pMin,pMax);
6668159e 1477 fK0sDecayVertex->GetXaxis()->SetTitle("l_{T}");
80c0bcd3 1478 fK0sDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1479 fOutputQA->Add(fK0sDecayVertex);
1480
6668159e 1481 // --- background ---
1482 fK0sBckgDecayPos =
1483 new TH3F("fK0sBckgDecayPos","K^{0}_{S}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
1484 fK0sBckgDecayPos->GetXaxis()->SetTitle("Pos. X");
1485 fK0sBckgDecayPos->GetYaxis()->SetTitle("Pos. Y");
80c0bcd3 1486 fK0sBckgDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1487 fOutputQA->Add(fK0sBckgDecayPos);
1488
1489 fK0sBckgDecayVertex =
1490 new TH2F("fK0sBckgDecayVertex","K^{0}_{S} Bckg: decay vertex",100,0.,100.,nbins,pMin,pMax);
1491 fK0sBckgDecayVertex->GetXaxis()->SetTitle("l_{T}");
80c0bcd3 1492 fK0sBckgDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1493 fOutputQA->Add(fK0sBckgDecayVertex);
1494
59e0735e 1495 // Cosine of the Pointing Angle:
6668159e 1496 // --- signal ---
1497 fK0sCPA =
b6f9da99 1498 new TH2F("fK0sCPA","K^{0}_{S}: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax);
6668159e 1499 fK0sCPA->GetXaxis()->SetTitle("cpa");
80c0bcd3 1500 fK0sCPA->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1501 fOutputQA->Add(fK0sCPA);
1502 // --- background ---
1503 fK0sBckgCPA =
b6f9da99 1504 new TH2F("fK0sBckgCPA","K^{0}_{S} Bckg: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax);
6668159e 1505 fK0sBckgCPA->GetXaxis()->SetTitle("cpa");
80c0bcd3 1506 fK0sBckgCPA->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1507 fOutputQA->Add(fK0sBckgCPA);
1508
59e0735e 1509 // DCA between daughters:
6668159e 1510 // --- signal ---
1511 fK0sDCAV0Daug =
1512 new TH2F("fK0sDCAV0Daug","K^{0}_{S}: DCA daughters",60,0,1.2,nbins,pMin,pMax);
1513 fK0sDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
80c0bcd3 1514 fK0sDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1515 fOutputQA->Add(fK0sDCAV0Daug);
1516 // --- background ---
1517 fK0sBckgDCAV0Daug =
1518 new TH2F("fK0sBckgDCAV0Daug","K^{0}_{S} Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax);
1519 fK0sBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
80c0bcd3 1520 fK0sBckgDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1521 fOutputQA->Add(fK0sBckgDCAV0Daug);
1522
59e0735e 1523 // Number of TPC clusters:
1524 // --- signal ---
31f87a49 1525 fK0sNClustersTPC = // Positive momentum to positive daugther - Negative momentum to negative daugther
9cb4cfe3 1526 new TH3F("fK0sNClustersTPC","K^{0}_{S};#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
59e0735e 1527 fOutputQA->Add(fK0sNClustersTPC);
1528 // --- background ---
31f87a49 1529 fK0sBckgNClustersTPC = // Positive momentum to positive daugther - Negative momentum to negative daugther
9cb4cfe3 1530 new TH3F("fK0sBckgNClustersTPC","K^{0}_{S} Bckg;#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
59e0735e 1531 fOutputQA->Add(fK0sBckgNClustersTPC);
1532
1533 // Number of ITS clusters:
1534 // --- signal ---
1535 fK0sNClustersITSPos =
80c0bcd3 1536 new TH3F("fK0sNClustersITSPos","K^{0}_{S}: Pos. Daug;#varphi;Num. ITS Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1537 fOutputQA->Add(fK0sNClustersITSPos);
1538
1539 fK0sNClustersITSNeg =
80c0bcd3 1540 new TH3F("fK0sNClustersITSNeg","K^{0}_{S}: Neg. Daug;#varphi;Num. ITS Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1541 fOutputQA->Add(fK0sNClustersITSNeg);
1542 // --- background ---
1543 fK0sBckgNClustersITSPos =
80c0bcd3 1544 new TH3F("fK0sBckgNClustersITSPos","K^{0}_{S} Bckg: Pos. Daug;#varphi;Num. ITS Clusters;;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1545 fOutputQA->Add(fK0sBckgNClustersITSPos);
1546
1547 fK0sBckgNClustersITSNeg =
80c0bcd3 1548 new TH3F("fK0sBckgNClustersITSNeg","K^{0}_{S} Bckg: Neg. Daug;#varphi;Num. ITS Clusters;;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1549 fOutputQA->Add(fK0sBckgNClustersITSNeg);
1550
ca96d60a 1551 // ----------------------------
6668159e 1552 // Quality Assurance Lambda:
ca96d60a 1553
1554 // Transverse momentum:
1555 // --- signal ---
1556 fLambdaPtPosDaug =
80c0bcd3 1557 new TH2F("fLambdaPtPosDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1558 fOutputQA->Add(fLambdaPtPosDaug);
1559
1560 fLambdaPtNegDaug =
80c0bcd3 1561 new TH2F("fLambdaPtNegDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1562 fOutputQA->Add(fLambdaPtNegDaug);
1563
1564 // --- background ---
1565 fLambdaBckgPtPosDaug =
80c0bcd3 1566 new TH2F("fLambdaBckgPtPosDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1567 fOutputQA->Add(fLambdaBckgPtPosDaug);
1568
1569 fLambdaBckgPtNegDaug =
80c0bcd3 1570 new TH2F("fLambdaBckgPtNegDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1571 fOutputQA->Add(fLambdaBckgPtNegDaug);
6668159e 1572
1573 // Phi Eta
1574 // --- signal ---
1575 fLambdaPhiEtaPosDaug =
80c0bcd3 1576 new TH3F("fLambdaPhiEtaPosDaug","#Lambda: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1577 fLambdaPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi");
6668159e 1578 fLambdaPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1579 fLambdaPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1580 fOutputQA->Add(fLambdaPhiEtaPosDaug);
1581
1582 fLambdaPhiEtaNegDaug =
80c0bcd3 1583 new TH3F("fLambdaPhiEtaNegDaug","#Lambda: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1584 fLambdaPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi");
6668159e 1585 fLambdaPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1586 fLambdaPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1587 fOutputQA->Add(fLambdaPhiEtaNegDaug);
1588
1589 // --- background ---
1590 fLambdaBckgPhiEtaPosDaug =
80c0bcd3 1591 new TH3F("fLambdaBckgPhiEtaPosDaug","#Lambda: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1592 fLambdaBckgPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi");
6668159e 1593 fLambdaBckgPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1594 fLambdaBckgPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1595 fOutputQA->Add(fLambdaBckgPhiEtaPosDaug);
1596
1597 fLambdaBckgPhiEtaNegDaug =
80c0bcd3 1598 new TH3F("fLambdaBckgPhiEtaNegDaug","#Lambda: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1599 fLambdaBckgPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi");
6668159e 1600 fLambdaBckgPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1601 fLambdaBckgPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1602 fOutputQA->Add(fLambdaBckgPhiEtaNegDaug);
1603
1604 // Distance of closest approach
1605 // --- signal ---
1606 fLambdaDCAPosDaug =
e280e70b 1607 new TH2F("fLambdaDCAPosDaug","#Lambda: dca Pos",66,0.,3.3,nbins,pMin,pMax);
6668159e 1608 fLambdaDCAPosDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1609 fLambdaDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1610 fOutputQA->Add(fLambdaDCAPosDaug);
1611
1612 fLambdaDCANegDaug =
e280e70b 1613 new TH2F("fLambdaDCANegDaug","#Lambda: dca Neg",66,0.,3.3,nbins,pMin,pMax);
6668159e 1614 fLambdaDCANegDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1615 fLambdaDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1616 fOutputQA->Add(fLambdaDCANegDaug);
1617
1618 // --- background ---
1619 fLambdaBckgDCAPosDaug =
e280e70b 1620 new TH2F("fLambdaBckgDCAPosDaug","#Lambda Bckg: dca Pos",66,0.,3.3,nbins,pMin,pMax);
6668159e 1621 fLambdaBckgDCAPosDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1622 fLambdaBckgDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1623 fOutputQA->Add(fLambdaBckgDCAPosDaug);
1624
1625 fLambdaBckgDCANegDaug =
e280e70b 1626 new TH2F("fLambdaBckgDCANegDaug","#Lambda Bckg: dca Neg",66,0.,3.3,nbins,pMin,pMax);
6668159e 1627 fLambdaBckgDCANegDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1628 fLambdaBckgDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1629 fOutputQA->Add(fLambdaBckgDCANegDaug);
1630
6668159e 1631
1632 // Decay vertex reconstruction
1633 // --- signal ---
1634 fLambdaDecayPos =
1635 new TH3F("fLambdaDecayPos","#Lambda: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
1636 fLambdaDecayPos->GetXaxis()->SetTitle("Pos. X");
1637 fLambdaDecayPos->GetYaxis()->SetTitle("Pos. Y");
80c0bcd3 1638 fLambdaDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1639 fOutputQA->Add(fLambdaDecayPos);
1640
1641 fLambdaDecayVertex =
348080d3 1642 new TH2F("fLambdaDecayVertex","#Lambda: decay length",100,0.,100.,nbins,pMin,pMax);
6668159e 1643 fLambdaDecayVertex->GetXaxis()->SetTitle("l_{T}");
80c0bcd3 1644 fLambdaDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1645 fOutputQA->Add(fLambdaDecayVertex);
1646
6668159e 1647 // --- background ---
1648 fLambdaBckgDecayPos =
1649 new TH3F("fLambdaBckgDecayPos","#Lambda Bckg: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
1650 fLambdaBckgDecayPos->GetXaxis()->SetTitle("Pos. X");
1651 fLambdaBckgDecayPos->GetYaxis()->SetTitle("Pos. Y");
80c0bcd3 1652 fLambdaBckgDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1653 fOutputQA->Add(fLambdaBckgDecayPos);
1654
1655 fLambdaBckgDecayVertex =
348080d3 1656 new TH2F("fLambdaBckgDecayVertex","#Lambda Bckg: decay length",100,0.,100.,nbins,pMin,pMax);
6668159e 1657 fLambdaBckgDecayVertex->GetXaxis()->SetTitle("l_{T}");
80c0bcd3 1658 fLambdaBckgDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1659 fOutputQA->Add(fLambdaBckgDecayVertex);
1660
6668159e 1661 // Cosine of the Pointing Angle
1662 // --- signal ---
1663 fLambdaCPA =
b6f9da99 1664 new TH2F("fLambdaCPA","#Lambda: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax);
6668159e 1665 fLambdaCPA->GetXaxis()->SetTitle("cpa");
80c0bcd3 1666 fLambdaCPA->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1667 fOutputQA->Add(fLambdaCPA);
1668 // --- background ---
1669 fLambdaBckgCPA =
b6f9da99 1670 new TH2F("fLambdaBckgCPA","#Lambda Bckg: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax);
6668159e 1671 fLambdaBckgCPA->GetXaxis()->SetTitle("cpa");
80c0bcd3 1672 fLambdaBckgCPA->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1673 fOutputQA->Add(fLambdaBckgCPA);
1674
1675 // DCA between daughters
1676 // --- signal ---
1677 fLambdaDCAV0Daug =
1678 new TH2F("fLambdaDCAV0Daug","#Lambda: DCA daughters",60,0,1.2,nbins,pMin,pMax);
1679 fLambdaDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
80c0bcd3 1680 fLambdaDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1681 fOutputQA->Add(fLambdaDCAV0Daug);
1682 // --- background ---
1683 fLambdaBckgDCAV0Daug =
1684 new TH2F("fLambdaBckgDCAV0Daug","#Lambda Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax);
1685 fLambdaBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
80c0bcd3 1686 fLambdaBckgDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0");
6668159e 1687 fOutputQA->Add(fLambdaBckgDCAV0Daug);
59e0735e 1688
1689 // Number of TPC clusters:
1690 // --- signal ---
1691 fLambdaNClustersTPC =
9cb4cfe3 1692 new TH3F("fLambdaNClustersTPC","#Lambda;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
59e0735e 1693 fOutputQA->Add(fLambdaNClustersTPC);
1694 // --- background ---
1695 fLambdaBckgNClustersTPC =
9cb4cfe3 1696 new TH3F("fLambdaBckgNClustersTPC","#Lambda Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
59e0735e 1697 fOutputQA->Add(fLambdaBckgNClustersTPC);
1698
1699 // Number of ITS clusters:
1700 // --- signal ---
1701 fLambdaNClustersITSPos =
80c0bcd3 1702 new TH3F("fLambdaNClustersITSPos","#Lambda: Pos. Daug;#varphi;Num. ITS Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1703 fOutputQA->Add(fLambdaNClustersITSPos);
1704
1705 fLambdaNClustersITSNeg =
80c0bcd3 1706 new TH3F("fLambdaNClustersITSNeg","#Lambda: Neg. Daug;#varphi;Num. ITS Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1707 fOutputQA->Add(fLambdaNClustersITSNeg);
1708 // --- background ---
1709 fLambdaBckgNClustersITSPos =
80c0bcd3 1710 new TH3F("fLambdaBckgNClustersITSPos","#Lambda Bckg: Pos. Daug;#varphi;Num. ITS Clusters;;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1711 fOutputQA->Add(fLambdaBckgNClustersITSPos);
1712
1713 fLambdaBckgNClustersITSNeg =
80c0bcd3 1714 new TH3F("fLambdaBckgNClustersITSNeg","#Lambda Bckg: Neg. Daug;#varphi;Num. ITS Clusters;;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1715 fOutputQA->Add(fLambdaBckgNClustersITSNeg);
1716
1717
ca96d60a 1718 // ----------------------------
59e0735e 1719 // Quality Assurance AntiLambda:
ca96d60a 1720 // Transverse momentum:
1721 // --- signal ---
1722 fAntiLambdaPtPosDaug =
80c0bcd3 1723 new TH2F("fAntiLambdaPtPosDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1724 fOutputQA->Add(fAntiLambdaPtPosDaug);
1725
1726 fAntiLambdaPtNegDaug =
80c0bcd3 1727 new TH2F("fAntiLambdaPtNegDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1728 fOutputQA->Add(fAntiLambdaPtNegDaug);
1729
1730 // --- background ---
1731 fAntiLambdaBckgPtPosDaug =
80c0bcd3 1732 new TH2F("fAntiLambdaBckgPtPosDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1733 fOutputQA->Add(fAntiLambdaBckgPtPosDaug);
1734
1735 fAntiLambdaBckgPtNegDaug =
80c0bcd3 1736 new TH2F("fAntiLambdaBckgPtNegDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax);
ca96d60a 1737 fOutputQA->Add(fAntiLambdaBckgPtNegDaug);
59e0735e 1738
1739 // Phi Eta
1740 // --- signal ---
1741 fAntiLambdaPhiEtaPosDaug =
80c0bcd3 1742 new TH3F("fAntiLambdaPhiEtaPosDaug","#bar{#Lambda}: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1743 fAntiLambdaPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi");
59e0735e 1744 fAntiLambdaPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1745 fAntiLambdaPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1746 fOutputQA->Add(fAntiLambdaPhiEtaPosDaug);
1747
1748 fAntiLambdaPhiEtaNegDaug =
80c0bcd3 1749 new TH3F("fAntiLambdaPhiEtaNegDaug","#bar{#Lambda}: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1750 fAntiLambdaPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi");
59e0735e 1751 fAntiLambdaPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1752 fAntiLambdaPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1753 fOutputQA->Add(fAntiLambdaPhiEtaNegDaug);
1754
1755 // --- background ---
1756 fAntiLambdaBckgPhiEtaPosDaug =
80c0bcd3 1757 new TH3F("fAntiLambdaBckgPhiEtaPosDaug","#bar{#Lambda}: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1758 fAntiLambdaBckgPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi");
59e0735e 1759 fAntiLambdaBckgPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1760 fAntiLambdaBckgPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1761 fOutputQA->Add(fAntiLambdaBckgPhiEtaPosDaug);
1762
1763 fAntiLambdaBckgPhiEtaNegDaug =
80c0bcd3 1764 new TH3F("fAntiLambdaBckgPhiEtaNegDaug","#bar{#Lambda}: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
1765 fAntiLambdaBckgPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi");
59e0735e 1766 fAntiLambdaBckgPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
80c0bcd3 1767 fAntiLambdaBckgPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1768 fOutputQA->Add(fAntiLambdaBckgPhiEtaNegDaug);
1769
1770 // Distance of closest approach
1771 // --- signal ---
1772 fAntiLambdaDCAPosDaug =
e280e70b 1773 new TH2F("fAntiLambdaDCAPosDaug","#bar{#Lambda}: dca Pos",66,0.,3.3,nbins,pMin,pMax);
59e0735e 1774 fAntiLambdaDCAPosDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1775 fAntiLambdaDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1776 fOutputQA->Add(fAntiLambdaDCAPosDaug);
1777
1778 fAntiLambdaDCANegDaug =
e280e70b 1779 new TH2F("fAntiLambdaDCANegDaug","#bar{#Lambda}: dca Neg",66,0.,3.3,nbins,pMin,pMax);
59e0735e 1780 fAntiLambdaDCANegDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1781 fAntiLambdaDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1782 fOutputQA->Add(fAntiLambdaDCANegDaug);
1783
1784 // --- background ---
1785 fAntiLambdaBckgDCAPosDaug =
e280e70b 1786 new TH2F("fAntiLambdaBckgDCAPosDaug","#bar{#Lambda} Bckg: dca Pos",66,0.,3.3,nbins,pMin,pMax);
59e0735e 1787 fAntiLambdaBckgDCAPosDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1788 fAntiLambdaBckgDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1789 fOutputQA->Add(fAntiLambdaBckgDCAPosDaug);
1790
1791 fAntiLambdaBckgDCANegDaug =
e280e70b 1792 new TH2F("fAntiLambdaBckgDCANegDaug","#bar{#Lambda} Bckg: dca Neg",66,0.,3.3,nbins,pMin,pMax);
59e0735e 1793 fAntiLambdaBckgDCANegDaug->GetXaxis()->SetTitle("dca");
80c0bcd3 1794 fAntiLambdaBckgDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1795 fOutputQA->Add(fAntiLambdaBckgDCANegDaug);
1796
59e0735e 1797 // Decay vertex reconstruction
1798 // --- signal ---
1799 fAntiLambdaDecayPos =
1800 new TH3F("fAntiLambdaDecayPos","#bar{#Lambda}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
1801 fAntiLambdaDecayPos->GetXaxis()->SetTitle("Pos. X");
1802 fAntiLambdaDecayPos->GetYaxis()->SetTitle("Pos. Y");
80c0bcd3 1803 fAntiLambdaDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1804 fOutputQA->Add(fAntiLambdaDecayPos);
1805
1806 fAntiLambdaDecayVertex =
348080d3 1807 new TH2F("fAntiLambdaDecayVertex","#bar{#Lambda}: decay length",100,0.,100.,nbins,pMin,pMax);
59e0735e 1808 fAntiLambdaDecayVertex->GetXaxis()->SetTitle("l_{T}");
80c0bcd3 1809 fAntiLambdaDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1810 fOutputQA->Add(fAntiLambdaDecayVertex);
1811
59e0735e 1812 // --- background ---
1813 fAntiLambdaBckgDecayPos =
1814 new TH3F("fAntiLambdaBckgDecayPos","#bar{#Lambda} Bckg: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
1815 fAntiLambdaBckgDecayPos->GetXaxis()->SetTitle("Pos. X");
1816 fAntiLambdaBckgDecayPos->GetYaxis()->SetTitle("Pos. Y");
80c0bcd3 1817 fAntiLambdaBckgDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1818 fOutputQA->Add(fAntiLambdaBckgDecayPos);
1819
1820 fAntiLambdaBckgDecayVertex =
348080d3 1821 new TH2F("fAntiLambdaBckgDecayVertex","#bar{#Lambda} Bckg: decay length",100,0.,100.,nbins,pMin,pMax);
59e0735e 1822 fAntiLambdaBckgDecayVertex->GetXaxis()->SetTitle("l_{T}");
80c0bcd3 1823 fAntiLambdaBckgDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1824 fOutputQA->Add(fAntiLambdaBckgDecayVertex);
1825
59e0735e 1826 // Cosine of the Pointing Angle
1827 // --- signal ---
1828 fAntiLambdaCPA =
b6f9da99 1829 new TH2F("fAntiLambdaCPA","#bar{#Lambda}: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax);
59e0735e 1830 fAntiLambdaCPA->GetXaxis()->SetTitle("cpa");
80c0bcd3 1831 fAntiLambdaCPA->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1832 fOutputQA->Add(fAntiLambdaCPA);
1833 // --- background ---
1834 fAntiLambdaBckgCPA =
b6f9da99 1835 new TH2F("fAntiLambdaBckgCPA","#bar{#Lambda} Bckg: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax);
59e0735e 1836 fAntiLambdaBckgCPA->GetXaxis()->SetTitle("cpa");
80c0bcd3 1837 fAntiLambdaBckgCPA->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1838 fOutputQA->Add(fAntiLambdaBckgCPA);
1839
1840 // DCA between daughters
1841 // --- signal ---
1842 fAntiLambdaDCAV0Daug =
1843 new TH2F("fAntiLambdaDCAV0Daug","#bar{#Lambda}: DCA daughters",60,0,1.2,nbins,pMin,pMax);
1844 fAntiLambdaDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
80c0bcd3 1845 fAntiLambdaDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1846 fOutputQA->Add(fAntiLambdaDCAV0Daug);
1847 // --- background ---
1848 fAntiLambdaBckgDCAV0Daug =
1849 new TH2F("fAntiLambdaBckgDCAV0Daug","#bar{#Lambda} Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax);
1850 fAntiLambdaBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
80c0bcd3 1851 fAntiLambdaBckgDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0");
59e0735e 1852 fOutputQA->Add(fAntiLambdaBckgDCAV0Daug);
1853
1854 // Number of TPC clusters:
1855 // --- signal ---
1856 fAntiLambdaNClustersTPC =
9cb4cfe3 1857 new TH3F("fAntiLambdaNClustersTPC","#bar{#Lambda};#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
59e0735e 1858 fOutputQA->Add(fAntiLambdaNClustersTPC);
1859 // --- background ---
1860 fAntiLambdaBckgNClustersTPC =
9cb4cfe3 1861 new TH3F("fAntiLambdaBckgNClustersTPC","#bar{#Lambda} Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
59e0735e 1862 fOutputQA->Add(fAntiLambdaBckgNClustersTPC);
1863
1864 // Number of ITS clusters:
1865 // --- signal ---
1866 fAntiLambdaNClustersITSPos =
80c0bcd3 1867 new TH3F("fAntiLambdaNClustersITSPos","#bar{#Lambda}: Pos. Daug;#varphi;Num. ITS Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1868 fOutputQA->Add(fAntiLambdaNClustersITSPos);
1869
1870 fAntiLambdaNClustersITSNeg =
80c0bcd3 1871 new TH3F("fAntiLambdaNClustersITSNeg","#bar{#Lambda}: Neg. Daug;#varphi;Num. ITS Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1872 fOutputQA->Add(fAntiLambdaNClustersITSNeg);
1873 // --- background ---
1874 fAntiLambdaBckgNClustersITSPos =
80c0bcd3 1875 new TH3F("fAntiLambdaBckgNClustersITSPos","#bar{#Lambda} Bckg: Pos. Daug;#varphi;Num. ITS Clusters;;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1876 fOutputQA->Add(fAntiLambdaBckgNClustersITSPos);
1877
1878 fAntiLambdaBckgNClustersITSNeg =
80c0bcd3 1879 new TH3F("fAntiLambdaBckgNClustersITSNeg","#bar{#Lambda} Bckg: Neg. Daug;#varphi;Num. ITS Clusters;;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),7,-0.5,6.5,nbins,pMin,pMax);
59e0735e 1880 fOutputQA->Add(fAntiLambdaBckgNClustersITSNeg);
6668159e 1881
1882 }
1883
6668159e 1884 // ============================================================= //
348080d3 1885
667b678a 1886 PostData(1, fOutput);
348080d3 1887 PostData(2, fOutputME);
1888 PostData(3, fOutputQA);
667b678a 1889
1890}
1891
1892//___________________________________________________________________________________________
1893
348080d3 1894static Int_t VtxBin(Double_t vtx)
1895{
1896 // Bin in vertez position Z
1897 Int_t bin = -1;
1898 for(Int_t i=0;i<kNVtxZ;i++)
80c0bcd3 1899 if ( (vtx>=kBinVtxZ[i]) && (vtx<kBinVtxZ[i+1]) )
348080d3 1900 bin = i;
1901
1902 return bin;
1903
1904}
1905
1906//___________________________________________________________________________________________
1907
1908static Int_t PtBin(Double_t pt)
1909{
1910 // Bin in pt
1911 Int_t bin = -1;
781e881f 1912 for(Int_t i=0;i<kN1;i++)
80c0bcd3 1913 if ( (pt>=kPtBinV0[i]) && (pt<kPtBinV0[i+1]) )
348080d3 1914 bin = i;
1915
1916 return bin;
1917
1918}
1919
1920//___________________________________________________________________________________________
1921
1922static Int_t CentBin(Double_t cent)
1923{
1924 // Bin in pt
1925 Int_t bin = -1;
1926 for(Int_t i=0;i<kNCent;i++)
80c0bcd3 1927 if ( (cent>=kBinCent[i]) && (cent<kBinCent[i+1]) )
348080d3 1928 bin = i;
1929
1930 return bin;
1931
1932}
1933
1934//___________________________________________________________________________________________
1935
1936Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptTrack(AliAODTrack *t)
667b678a 1937{
1938 // Track criteria for primaries particles
9cb4cfe3 1939
3002fb0e 1940 // TPC only tracks
348080d3 1941 if (TMath::Abs(t->Eta())>0.8 ) return kFALSE;
1942 if (!(t->TestFilterMask(1<<7))) return kFALSE;
59e0735e 1943
348080d3 1944 Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1);
9cb4cfe3 1945 if (nCrossedRowsTPC < 70) return kFALSE;
1946
348080d3 1947
3002fb0e 1948 // Hybrid tracks
9cb4cfe3 1949 //if( !(t->TestFilterBit(272)) ) return kFALSE;
3002fb0e 1950 //if(!t->IsHybridGlobalConstrainedGlobal()) return kFALSE;
1951
1952 // Point in the SPD
1953 Int_t SPDHits = t->HasPointOnITSLayer(0) + t->HasPointOnITSLayer(1);
348080d3 1954 if( SPDHits )
1955 fTriggerWiSPDHit->Fill(1.5);
1956
667b678a 1957 return kTRUE;
1958}
59e0735e 1959
667b678a 1960//___________________________________________________________________________________________
1961
ca96d60a 1962Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptTrackV0(const AliAODTrack *t)
667b678a 1963{
1964 // Track criteria for daughter particles of V0 candidate
667b678a 1965 if (!t->IsOn(AliAODTrack::kTPCrefit)) return kFALSE;
667b678a 1966 Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1);
ca96d60a 1967 if (nCrossedRowsTPC<fDaugNClsTPC) return kFALSE;
59e0735e 1968
667b678a 1969 return kTRUE;
1970}
1971
667b678a 1972//___________________________________________________________________________________________
1973
1974Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptV0(AliAODVertex *vtx, const AliAODv0 *v1)
1975{
1976 // Selection for accepting V0 candidates
1977
1978 if (v1->GetOnFlyStatus()) return kFALSE;
1979
1980 //if (v1->Pt() < pMin) return kFALSE; ***
1981
1982 const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(1);
1983 const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(0);
1984
1985 if( !ntrack1 || !ptrack1 ) return kFALSE;
1986 if( !AcceptTrackV0(ntrack1) ) return kFALSE;
1987 if( !AcceptTrackV0(ptrack1) ) return kFALSE;
1988
1989 if( ntrack1->Charge() == ptrack1->Charge())
1990 return kFALSE;
1991
1992 // Daughters: pseudo-rapidity cut
1993 if ( TMath::Abs(ntrack1->Eta()) > fMaxEtaDaughter ||
1994 TMath::Abs(ptrack1->Eta()) > fMaxEtaDaughter )
1995 return kFALSE;
1996
1997 // Daughters: transverse momentum cut
1998 if ( ( ntrack1->Pt() < fMinPtDaughter ) ||
1999 ( ptrack1->Pt() < fMinPtDaughter ) )
2000 return kFALSE;
2001
2002 // Daughters: Impact parameter of daughter to prim vtx
2003 Float_t xy = v1->DcaNegToPrimVertex();
2004 if (TMath::Abs(xy)<fDCAToPrimVtx) return kFALSE;
2005 xy = v1->DcaPosToPrimVertex();
2006 if (TMath::Abs(xy)<fDCAToPrimVtx) return kFALSE;
2007
2008 // Daughters: DCA
b6a9eae2 2009 Float_t dca = v1->DcaV0Daughters();
667b678a 2010 if (dca>fMaxDCADaughter) return kFALSE;
2011
2012 // V0: Cosine of the pointing angle
b6a9eae2 2013 Float_t cpa=v1->CosPointingAngle(vtx);
667b678a 2014 if (cpa<fMinCPA) return kFALSE;
2015
2016 // V0: Fiducial volume
2017 Double_t xyz[3]; v1->GetSecondaryVtx(xyz);
b6a9eae2 2018 Float_t r2=xyz[0]*xyz[0] + xyz[1]*xyz[1];
348080d3 2019 if (r2<5.*5.) return kFALSE;
667b678a 2020 if (r2>lMax*lMax) return kFALSE;
2021
2022 return kTRUE;
2023}
2024
2025//___________________________________________________________________________________________
2026
b6a9eae2 2027static Float_t dPHI(Float_t phi1, Float_t phi2)
667b678a 2028{
2029 // Calculate the phi difference between two tracks
b6a9eae2 2030 Float_t deltaPhi = phi1 - phi2;
667b678a 2031
2032 if (deltaPhi<-TMath::PiOver2()) deltaPhi = deltaPhi + 2*(TMath::Pi());
2033 if (deltaPhi>(3*TMath::PiOver2())) deltaPhi = deltaPhi - 2*(TMath::Pi());
2034 return deltaPhi;
2035}
2036
2037//___________________________________________________________________________________________
2038
b6a9eae2 2039static Float_t MyRapidity(Float_t rE, Float_t rPz)
667b678a 2040{
2041 // Local method for rapidity
2042 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
2043}
2044
2045//___________________________________________________________________________________________
2046
348080d3 2047static Int_t SameTrack(AliAODTrack *trk, const AliAODTrack *daugTrk)
667b678a 2048{
2049 // Local method to compaire the momentum between two tracks
2050
348080d3 2051 //double const kEpsilon = 0.01;
667b678a 2052 Int_t isSamePt = 0;
2053
348080d3 2054 /*
2055 Float_t p[3]; trk->GetPxPyPz(p);
2056 Float_t pNegTrk[3]; nTrk->GetPxPyPz(pNegTrk);
2057 Float_t pPosTrk[3]; pTrk->GetPxPyPz(pPosTrk);
667b678a 2058
b6f9da99 2059 if( ( fabs(p[0]-pNegTrk[0])<kEpsilon &&
348080d3 2060 fabs(p[1]-pNegTrk[1])<kEpsilon &&
2061 fabs(p[2]-pNegTrk[2])<kEpsilon )
667b678a 2062 isSamePt = 1;
6668159e 2063 */
348080d3 2064
2065 if( (TMath::Abs(daugTrk->GetID())+1)==(TMath::Abs(trk->GetID())) )
2066 isSamePt = 1;
667b678a 2067
6668159e 2068
667b678a 2069 return isSamePt;
2070
2071}
2072
2073//___________________________________________________________________________________________
2074
348080d3 2075static Float_t SpatialResolution(Float_t p1x,Float_t p1y,Float_t p2x,Float_t p2y,Float_t dist)
2076{
2077 // Obtains the spacial resolution between trigger and V0
2078 // within a distance in (deltaPhi,deltaEta) < 0.1
2079
2080 Float_t res = -100.;
2081
2082 res = TMath::Sqrt( p1x*p1x + p1y*p1y )*TMath::Sqrt( p2x*p2x + p2y*p2y );
2083 res = (p1x*p2x + p1y*p2y)/res;
2084
2085 res = TMath::ACos(res);
2086
2087 return res = TMath::Sin(res)*dist;
2088
2089}
2090
2091//___________________________________________________________________________________________
2092
773f3106 2093Bool_t AliAnalysisTaskLambdaOverK0sJets::GoodTPCSharedMap(const AliAODTrack *track){
2094 // Rejects tracks with shared clusters after filling a control histogram
2095 // This overload is used for primaries
2096
2097 // Get the shared maps
2098 const TBits sharedMap = track->GetTPCSharedMap();
2099 // Fill a control histogram
2100 //fPriHistShare->Fill(sharedMap.CountBits());
2101 // Reject shared clusters
2102 if((sharedMap.CountBits()) >= 1){
2103 // Bad track, has too many shared clusters!
2104 return kFALSE;
2105 }
2106 return kTRUE;
2107}
2108
2109//___________________________________________________________________________________________
2110
2111Bool_t AliAnalysisTaskLambdaOverK0sJets::GoodTPCSharedMap(AliAODTrack *track){
2112 // Rejects tracks with shared clusters after filling a control histogram
2113 // This overload is used for primaries
2114
2115 // Get the shared maps
2116 const TBits sharedMap = track->GetTPCSharedMap();
2117 // Fill a control histogram
2118 //fPriHistShare->Fill(sharedMap.CountBits());
2119 // Reject shared clusters
2120 if((sharedMap.CountBits()) >= 1){
2121 // Bad track, has too many shared clusters!
2122 return kFALSE;
2123 }
2124 return kTRUE;
2125}
2126
2127//___________________________________________________________________________________________
2128/* under developing
2129Float_t AliAnalysisTaskLambdaOverK0sJets::GetFractionTPCSharedCls(AliAODTrack *track1,const AliAODTrack *track2){
2130 // Rejects tracks with shared clusters after filling a control histogram
2131 // This overload is used for primaries
2132
2133 // Get the shared maps
2134 const TBits fTPCClusterMap1 = track1->GetTPCClusterMap();
2135 const TBits fTPCClusterMap2 = track2->GetTPCClusterMap();
2136 // Fill a control histogram
2137 //fPriHistShare->Fill(sharedMap.CountBits());
2138 // Reject shared clusters
2139
2140 for(Int_t i=0; i<=159; i++)
2141 cout << fTPCClusterMap1.CountBits(i) << " " << fTPCClusterMap2.CountBits(i) << endl;
2142
2143 return 1.;
2144
2145}
2146*/
2147//___________________________________________________________________________________________
2148
667b678a 2149void AliAnalysisTaskLambdaOverK0sJets::RecCascade(AliAODTrack *trk1,const AliAODTrack *trk2,const AliAODTrack *trkBch,TString histo)
2150{
2151 // Local method to reconstruct cascades candidates from the combinations of three tracks
2152 // The input tracks correspond to the trigger particle and the daughter tracks of the V0 candidate (correlation step)
2153 // The trigger particle track will be always consider as a possible daughter of the V0 which coming from the Cascade decay.
2154 // The daughters of the V0 candidates are switched to be the bachelor track for the Cascade reconstruction.
2155
b6a9eae2 2156 Float_t lMassBach=0., lPtot2Bach=0., lEBach=0.;
2157 Float_t lMassLambda=0., lPtot2Lambda=0., lELambda = 0.;
2158 Float_t pLambda[3] = {0.,0.,0.};
2159 Float_t pCascade[3] = {0.,0.,0.};
2160 Float_t lMassCascade = 0., lPtot2Cascade=0.;
667b678a 2161
2162 // Two loops are done to consider the posibility to reconstruct a Xi or an Omega
2163 for(Int_t i=0;i<2;i++){
2164
2165 // 0. Check the charge for both tracks: trk1 & trk2.
2166 // Usefull in the Lambda step.
2167 if( trk1->Charge() == trk2->Charge() )
2168 continue;
2169
2170 // 1. Bachelor: Allocation for the track
2171 if(i==0) // Xi
2172 lMassBach = TDatabasePDG::Instance()->GetParticle(kPiMinus)->Mass();
2173 else if(i==1) //Omega
2174 lMassBach = TDatabasePDG::Instance()->GetParticle(kKMinus)->Mass();
2175
2176 lPtot2Bach = TMath::Power(trkBch->P(),2);
2177
2178 lEBach = TMath::Sqrt(lPtot2Bach + lMassBach*lMassBach);
2179
2180 // 2. Lambda: Kinematical properties
2181 lMassLambda = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
2182
2183 pLambda[0] = trk1->Px() + trk2->Px();
2184 pLambda[1] = trk1->Py() + trk2->Py();
2185 pLambda[2] = trk1->Pz() + trk2->Pz();
2186
2187 lPtot2Lambda = pLambda[0]*pLambda[0] + pLambda[1]*pLambda[1] + pLambda[2]*pLambda[2];
2188
2189 lELambda = TMath::Sqrt(lPtot2Lambda + lMassLambda*lMassLambda);
2190
2191 // 3. Cascade: Reconstruction
2192 pCascade[0] = pLambda[0] + trkBch->Px();
2193 pCascade[1] = pLambda[1] + trkBch->Py();
2194 pCascade[2] = pLambda[2] + trkBch->Pz();
2195
2196 lPtot2Cascade = pCascade[0]*pCascade[0] + pCascade[1]*pCascade[1] + pCascade[2]*pCascade[2];
2197
2198 lMassCascade = TMath::Sqrt( TMath::Power(lEBach+lELambda,2) - lPtot2Cascade );
2199
2200 // 4. Filling histograms
2201 if( histo.Contains("K0s") ) {
f25a6d07 2202 if(i==0) // Xi
348080d3 2203 fV0MassCascade->Fill(lMassCascade,1);
2204 else if(i==1) //Omega
2205 fV0MassCascade->Fill(lMassCascade,3);
2206 }
2207 else if( histo.Contains("AntiLambda") ) {
2208 if(i==0) // Xi
2209 fV0MassCascade->Fill(lMassCascade,9);
f25a6d07 2210 else if(i==1) //Omega
348080d3 2211 fV0MassCascade->Fill(lMassCascade,11);
667b678a 2212 }
2213 else if( histo.Contains("Lambda") ) {
f25a6d07 2214 if(i==0) // Xi
348080d3 2215 fV0MassCascade->Fill(lMassCascade,5);
f25a6d07 2216 else if(i==1) //Omega
348080d3 2217 fV0MassCascade->Fill(lMassCascade,7);
667b678a 2218 }
2219
667b678a 2220 }
348080d3 2221
667b678a 2222}
2223
2224//___________________________________________________________________________________________
2225
348080d3 2226void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTriggered, Int_t iArray, Int_t idTrig)
667b678a 2227{
2228 // Three options for the 'step' variable:
2229 // 1) TriggerCheck
348080d3 2230 // 2) Reconstruction
667b678a 2231
fbaec09e 2232 AliAODTrack *trkTrig = 0x0;
348080d3 2233 Float_t ptTrig = -100.;
2234 Float_t phiTrig = -100.;
2235 Float_t etaTrig = -100.;
2236 Double_t pTrig[3];
f25a6d07 2237
348080d3 2238 if( (step==kTriggerCheck || isTriggered) && idTrig>=0 ){
2239 trkTrig = (AliAODTrack*)fAOD->GetTrack(idTrig);
667b678a 2240 ptTrig = trkTrig->Pt();
2241 phiTrig = trkTrig->Phi();
2242 etaTrig = trkTrig->Eta();
348080d3 2243 trkTrig->GetPxPyPz(pTrig);
667b678a 2244 }
2245
667b678a 2246 // *************************************************
2247 // Centrality selection
2248 AliCentrality *cent = fAOD->GetCentrality();
b6a9eae2 2249 Float_t centrality = cent->GetCentralityPercentile("V0M");
b6f9da99 2250 Int_t curCentBin = CentBin(centrality);
667b678a 2251
2252 // *************************************************
2253 // MC Event
2254 TClonesArray *stackMC = 0x0;
b6a9eae2 2255 Float_t mcXv=0., mcYv=0., mcZv=0.;
667b678a 2256
2257 if(fIsMC){
2258 TList *lst = fAOD->GetList();
2259 stackMC = (TClonesArray*)lst->FindObject(AliAODMCParticle::StdBranchName());
2260 if (!stackMC) {
2261 Printf("ERROR: stack not available");
2262 }
2263
2264 AliAODMCHeader *mcHdr =
2265 (AliAODMCHeader*)lst->FindObject(AliAODMCHeader::StdBranchName());
2266
2267 mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ();
2268 }
2269
2270 // *************************************************
2271 // V0 loop - AOD
2272 const AliAODVertex *vtx=fAOD->GetPrimaryVertex();
b6a9eae2 2273 Float_t xv=vtx->GetX(), yv=vtx->GetY(), zv=vtx->GetZ();
667b678a 2274 Int_t nV0sTot = fAOD->GetNumberOfV0s();
348080d3 2275
667b678a 2276 for (Int_t iV0 = 0; iV0 < nV0sTot; iV0++) {
2277
2278 AliAODv0 *v0=fAOD->GetV0(iV0);
2279 if (!v0) continue;
2280 if (!AcceptV0(fAOD->GetPrimaryVertex(),v0)) continue;
2281
2282 const AliAODTrack *ntrack=(AliAODTrack *)v0->GetDaughter(1);
2283 const AliAODTrack *ptrack=(AliAODTrack *)v0->GetDaughter(0);
59e0735e 2284
667b678a 2285 // Decay vertex
2286 Double_t xyz[3]; v0->GetSecondaryVtx(xyz);
348080d3 2287 Float_t dx=xyz[0]-xv, dy=xyz[1]-yv;//, dz=xyz[2]-zv;
ca96d60a 2288
59e0735e 2289 // Momentum: 2D & 3D
b6a9eae2 2290 Float_t pt=TMath::Sqrt(v0->Pt2V0());
348080d3 2291 //Float_t p=v0->P();
ca96d60a 2292
2293 // Decay length: 2D & 3D
2294 Float_t lt=TMath::Sqrt(dx*dx + dy*dy);
2295 //Float_t dl=TMath::Sqrt(dx*dx + dy*dy + dz*dz);
348080d3 2296
b6a9eae2 2297 Float_t dlK = 0.4977*lt/pt;
2298 Float_t dlL = 1.1157*lt/pt;
348080d3 2299 /*
2300 Float_t dlK = v0->MassK0Short()*dl/p;
2301 Float_t dlL = v0->MassLambda()*dl/p;
2302 Float_t dlAL = v0->MassAntiLambda()*dl/p;
59e0735e 2303 */
667b678a 2304
2305 // ctau
348080d3 2306 Bool_t ctK=kTRUE; if (dlK > fMaxCtau*2.68 || dlK < fMinCtau*2.68) ctK=kFALSE;
2307 Bool_t ctL=kTRUE; if (dlL > fMaxCtau*7.89 || dlL < fMinCtau*7.89) ctL=kFALSE;
2308 Bool_t ctAL=kTRUE; if (dlL > fMaxCtau*7.89 || dlL < fMinCtau*7.89) ctAL=kFALSE;
667b678a 2309
ca96d60a 2310 // ---- Daughter tracks properties:
2311 // Pt
2312 Float_t lPtNeg = ntrack->Pt();
2313 Float_t lPtPos = ptrack->Pt();
2314 // Momentum
2315 Double_t pNegDaug[3]; ntrack->GetPxPyPz(pNegDaug);
2316 Double_t pPosDaug[3]; ptrack->GetPxPyPz(pPosDaug);
2317 // Phi
2318 Float_t phiNeg = ntrack->Phi();
2319 Float_t phiPos = ptrack->Phi();
2320 // Eta
2321 Float_t etaNeg = ntrack->Eta();
2322 Float_t etaPos = ptrack->Eta();
2323 // Number of TPC Clusters
2324 Float_t nClsTPCPos = ptrack->GetTPCClusterInfo(2,1);
2325 Float_t nClsTPCNeg = ntrack->GetTPCClusterInfo(2,1);
2326 // Number of clusters of ITS
2327 Double_t posITSNcls = ptrack->GetITSNcls();
2328 Double_t negITSNcls = ntrack->GetITSNcls();
2329
2330 // ---- V0 candidate properties:
667b678a 2331 // Armenteros variables:
b6a9eae2 2332 Float_t lAlphaV0 = v0->AlphaV0();
2333 Float_t lPtArmV0 = v0->PtArmV0();
ca96d60a 2334 // dca to primary vertex
2335 Float_t dcaNeg = v0->DcaNegToPrimVertex();
2336 Float_t dcaPos = v0->DcaPosToPrimVertex();
2337 // dca between daughters
2338 Float_t dca = v0->DcaV0Daughters();
2339 // cpa
2340 Float_t cpa = v0->CosPointingAngle(fAOD->GetPrimaryVertex());
2341 // eta
2342 Float_t lEta = v0->PseudoRapV0();
2343 // phi
2344 Float_t lPhi = v0->Phi();
2345 //lPhi = ( (lPhi < 0) ? lPhi + 2*TMath::Pi() : lPhi );
2346
9cb4cfe3 2347 // rapidity
2348 Float_t rapK0s = v0->RapK0Short();
2349 Float_t rapLambda = v0->RapLambda();
2350
2351 if(fUseEtaCut){
2352 rapK0s = lEta;
2353 rapLambda = lEta;
2354 }
2355
2356 // **********************************
2357 // PID - tracks
2358 Float_t pPos = -100.;
2359 Float_t pNeg = -100.;
2360
2361 //Float_t dedxPos = -1000.;
2362 //Float_t dedxNeg = -1000.;
2363 //Float_t nsigPosPion = 0.;
2364 //Float_t nsigNegPion = 0.;
2365 Float_t nsigPosProton = 0.;
2366 Float_t nsigNegProton = 0.;
2367
2368 if(fUsePID && !fIsMC) {
2369 const AliAODPid *pidNeg = ntrack->GetDetPid();
2370 const AliAODPid *pidPos = ptrack->GetDetPid();
2371
2372 if (pidNeg && pidPos) {
2373 pPos = pidPos->GetTPCmomentum();
2374 pNeg = pidNeg->GetTPCmomentum();
2375 //dedxPos = pidPos->GetTPCsignal()/47.;
2376 //dedxNeg = pidNeg->GetTPCsignal()/47.;
2377
2378
2379 if(pPos<1.){
2380 //nsigPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kPion));
2381 nsigPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kProton));
2382 }
2383 if(pNeg<1.){
2384 //nsigNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kPion));
2385 nsigNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kProton));
2386 }
2387
2388 }
2389
2390 }
2391
539f7f28 2392 // **********************************
ca96d60a 2393 // Disentangle the V0 candidate
2394 Float_t massK0s = 0., mK0s = 0., sK0s = 0.;
2395 Float_t massLambda = 0., mLambda = 0., sL = 0.;
2396 Float_t massAntiLambda = 0., sAL = 0.;
2397
2398 Bool_t isCandidate2K0s = kFALSE;
2399 massK0s = v0->MassK0Short();
2400 mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
2401 if( fCollision.Contains("PbPb2010") )
2402 sK0s = kCteK0s2010[curCentBin] + kLinearK0s2010[curCentBin]*pt;
2403 else if( fCollision.Contains("PbPb2011") )
2404 sK0s = kCteK0s2011[curCentBin] + kLinearK0s2011[curCentBin]*pt;
2405 if ( TMath::Abs(mK0s-massK0s) < 3*sK0s ) isCandidate2K0s = kTRUE;
667b678a 2406
ca96d60a 2407 Bool_t isCandidate2Lambda = kFALSE;
2408 massLambda = v0->MassLambda();
2409 mLambda = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
2410 if( fCollision.Contains("PbPb2010") )
2411 sL = kCteLambda2010[curCentBin] + kLinearLambda2010[curCentBin]*pt;
2412 else if( fCollision.Contains("PbPb2011") )
2413 sL = kCteLambda2011[curCentBin] + kLinearLambda2011[curCentBin]*pt;
2414 if (TMath::Abs(mLambda-massLambda) < 3*sL) isCandidate2Lambda = kTRUE;
2415