]>
Commit | Line | Data |
---|---|---|
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> | |
23 | #include <TH3F.h> | |
24 | #include <TPDGCode.h> | |
25 | #include <TDatabasePDG.h> | |
26 | #include <TClonesArray.h> | |
27 | #include <TROOT.h> | |
28 | ||
29 | #include "AliOADBContainer.h" | |
30 | ||
31 | #include "AliAODMCHeader.h" | |
32 | #include "AliAODMCParticle.h" | |
33 | #include "AliGenHijingEventHeader.h" | |
34 | ||
35 | #include "AliAODEvent.h" | |
36 | #include "AliAODv0.h" | |
37 | #include "AliAODcascade.h" | |
38 | ||
39 | #include "AliCFContainer.h" | |
40 | #include "AliCentrality.h" | |
41 | ||
42 | #include "AliPID.h" | |
43 | #include "AliPIDResponse.h" | |
44 | #include "AliAODPid.h" | |
45 | ||
46 | #include "AliInputEventHandler.h" | |
47 | #include "AliAnalysisManager.h" | |
48 | ||
49 | #include "AliAnalysisTaskLambdaOverK0sJets.h" | |
50 | ||
51 | extern TROOT *gROOT; | |
52 | ||
29f14569 | 53 | |
667b678a | 54 | ClassImp(AliAnalysisTaskLambdaOverK0sJets) |
348080d3 | 55 | ClassImp(AliMiniParticle) |
667b678a | 56 | |
57 | // Global variables: | |
58 | static Int_t nbins = 100; // Number of bins for l, pt, mass for V0 | |
59 | static Int_t nbinsPhi = 120; // Number of bins for Phi | |
2757a40b | 60 | static Int_t nbinsdPhi = 20; // Number of bins for dPhi |
b6f9da99 | 61 | static Int_t nbinsdEta = 30; // Number of bins for dEta |
667b678a | 62 | static Int_t nbinPtLP = 200; |
63 | static Int_t nbinsVtx = 20; | |
64 | ||
b6a9eae2 | 65 | static Float_t pMin = 0.0; // Lower cut for transverse momentum |
66 | static Float_t pMax = 10.; // Max cut for transverse momentum for V0 | |
67 | static Float_t ptMaxLP = 50.; // Max cut for transverse momentum LP | |
667b678a | 68 | |
b6a9eae2 | 69 | static Float_t lMin = 0.0; // Limits in the histo for fidutial volume |
70 | static Float_t lMax = 100.; // Limits in the fidutial volume | |
667b678a | 71 | |
348080d3 | 72 | static Int_t nMaxEvMix = 250; |
73 | ||
667b678a | 74 | // |
75 | // | |
76 | // | |
77 | ||
78 | AliAnalysisTaskLambdaOverK0sJets::AliAnalysisTaskLambdaOverK0sJets(const char *name) : | |
79 | AliAnalysisTaskSE(name), | |
80 | ||
f4a57119 | 81 | 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 | 82 | |
ca96d60a | 83 | fMinPtDaughter(0.160), fMaxEtaDaughter(0.8), fMaxDCADaughter(1.0), fYMax(0.5), fDCAToPrimVtx(0.1), fMinCPA(0.998), fNSigma(3.0),fDaugNClsTPC(70.), fMinCtau(0.), fMaxCtau(3.), fIdTrigger(-1), fIsV0LP(0), fPtV0LP(0.), fIsSndCheck(0), |
6668159e | 84 | |
bd903641 | 85 | fOutput(0), fOutputQA(0), fOutputME(0), fMEList(0x0), fTriggerParticles(0x0), fChargedAssocParticles(0x0), fTriggerPartMC(0x0), fAssocParticles(0x0), fAssocPartMC(0x0), fXiTriggerPartMC(0x0), fEvents(0), fCentrality(0), fCentrality2(0), fCentralityTrig(0), fPrimaryVertexX(0), fPrimaryVertexY(0), fPrimaryVertexZ(0), |
667b678a | 86 | |
f4a57119 | 87 | fTriggerEventPlane(0), fTriggerMCPtCent(0), fTriggerMCResPt(0), fTriggerMCResEta(0), fTriggerMCResPhi(0), fTriggerPtCent(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 | 88 | |
ca96d60a | 89 | fInjectedParticles(0), |
90 | ||
91 | fK0sMCPt(0), fK0sMCPtRap(0), fK0sMCPtRap2(0), fK0sMCPtRapVtx(0), fK0sMCPtRapEmbeded(0), fK0sMCPtRapVtxEmbeded(0), fK0sAssocPt(0), fK0sAssocPtArm(0), fK0sAssocPtRap(0), fK0sAssocPtRapEmbeded(0), fK0sMCResEta(0), fK0sMCResPhi(0), fLambdaMCPt(0), fLambdaMCPtRap(0), fLambdaMCPtRap2(0), fLambdaMCPtRapVtx(0), fLambdaMCPtRapEmbeded(0), fLambdaMCPtRapVtxEmbeded(0), fLambdaMCFromXi(0), fLambdaAssocPt(0), fLambdaAssocPtRap(0), fLambdaAssocFromXi(0), fLambdaMCResEta(0), fLambdaMCResPhi(0), fAntiLambdaMCPt(0), fAntiLambdaMCPtRap(0), fAntiLambdaMCPtRap2(0), fAntiLambdaMCPtRapVtx(0), fAntiLambdaMCPtRapEmbeded(0), fAntiLambdaMCPtRapVtxEmbeded(0), fAntiLambdaMCFromXi(0), fAntiLambdaAssocPt(0), fAntiLambdaAssocPtRap(0), fAntiLambdaAssocFromXi(0), fAntiLambdaMCResEta(0), fAntiLambdaMCResPhi(0), | |
92d8f256 | 92 | |
93 | fHistArmenterosPodolanski(0), fHistArmPodBckg(0), | |
b6a9eae2 | 94 | |
bd903641 | 95 | fK0sMass(0), fK0sMassEmbeded(0), fK0sMassPtEta(0), fK0sMassPtPhi(0), fK0sDaughtersPt(0), fK0sDCADaugToPrimVtx(0), fK0sSpatialRes(0), fK0sBckgDecLength(0), fK0sBckgDCADaugToPrimVtx(0), fK0sBckgEtaPhi(0), fK0sBckgPhiRadio(0), fK0sBckgDCANegDaugToPrimVtx(0), fK0sBckgDCAPosDaugToPrimVtx(0), fV0MassCascade(0), |
348080d3 | 96 | |
bd903641 | 97 | fLambdaMass(0), fLambdaMassEmbeded(0), fLambdaMass2(0), fLambdaMass2Embeded(0), fLambdaMassPtEta(0), fLambdaMassPtPhi(0), fLambdaDaughtersPt(0), fLambdaDCADaugToPrimVtx(0), fLambdaSpatialRes(0), fLambdaBckgDecLength(0), fLambdaBckgDCADaugToPrimVtx(0), fLambdaBckgEtaPhi(0), fLambdaBckgPhiRadio(0), fLambdaBckgDCANegDaugToPrimVtx(0), fLambdaBckgDCAPosDaugToPrimVtx(0), |
f25a6d07 | 98 | |
bd903641 | 99 | fAntiLambdaMass(0), fAntiLambdaMassEmbeded(0), fAntiLambdaMass2(0), fAntiLambdaMass2Embeded(0), fAntiLambdaMassPtEta(0), fAntiLambdaMassPtPhi(0), fAntiLambdaDaughtersPt(0), fAntiLambdaDCADaugToPrimVtx(0), fAntiLambdaSpatialRes(0), fAntiLambdaBckgDecLength(0), fAntiLambdaBckgDCADaugToPrimVtx(0), fAntiLambdaBckgEtaPhi(0), fAntiLambdaBckgPhiRadio(0), fAntiLambdaBckgDCANegDaugToPrimVtx(0), fAntiLambdaBckgDCAPosDaugToPrimVtx(0), |
f4a57119 | 100 | |
101 | fXiMinusPtMCAssoc(0), fXiMinusPtMCTrigger(0), | |
6668159e | 102 | |
ca96d60a | 103 | 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 | 104 | |
ca96d60a | 105 | 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 | 106 | |
ca96d60a | 107 | 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 | 108 | |
109 | { | |
110 | // Dummy Constructor | |
111 | ||
ca96d60a | 112 | // Particles properties in MC |
fbaec09e | 113 | for (Int_t i=0; i<kNCent; i++){ |
ca96d60a | 114 | |
59e0735e | 115 | // K0s |
b6f9da99 | 116 | fK0sMCPtPhiEta[i] = 0; |
117 | fK0sAssocPtPhiEta[i] = 0; | |
ca96d60a | 118 | // -- Natural particles |
119 | fK0sAssocPtMassArm[i] = 0; | |
120 | fK0sAssocMassPtVtx[i] = 0; | |
121 | fK0sAssocMassPtDCADaug[i] = 0; | |
122 | fK0sAssocMassPtCPA[i] = 0; | |
123 | fK0sAssocMassPtDCAPV[i] = 0; | |
124 | fK0sAssocMassPtDaugNClsTPC[i] = 0; | |
125 | // -- Embeded particles | |
126 | fK0sAssocPtMassArmEmbeded[i] = 0; | |
127 | fK0sAssocMassPtVtxEmbeded[i] = 0; | |
128 | fK0sAssocMassPtDCADaug[i] = 0; | |
129 | fK0sAssocMassPtCPAEmbeded[i] = 0; | |
130 | fK0sAssocMassPtDCAPVEmbeded[i] = 0; | |
131 | fK0sAssocMassPtDaugNClsTPCEmbeded[i] = 0; | |
bd903641 | 132 | // -- Mass vs rapidity vs pt vs centrlaity |
133 | fK0sMassPtRap[i] = 0; | |
fbaec09e | 134 | |
135 | // Lambda | |
136 | fLambdaMCPtPhiEta[i] = 0; | |
137 | fLambdaAssocPtPhiEta[i] = 0; | |
ca96d60a | 138 | // -- Natural particles |
139 | fLambdaAssocMassPtRap[i] = 0; | |
140 | fLambdaAssocMassPtRap2[i] = 0; | |
141 | fLambdaAssocMassPtVtx[i] = 0; | |
142 | fLambdaAssocMassPtDCADaug[i] = 0; | |
143 | fLambdaAssocMassPtCPA[i] = 0; | |
144 | fLambdaAssocMassPtDCAPV[i] = 0; | |
145 | fLambdaAssocMassPtDaugNClsTPC[i] = 0; | |
146 | // -- Embeded particles | |
147 | fLambdaAssocMassPtRapEmbeded[i] = 0; | |
148 | fLambdaAssocMassPtRapEmbeded2[i] = 0; | |
149 | fLambdaAssocMassPtVtxEmbeded[i] = 0; | |
150 | fLambdaAssocMassPtDCADaug[i] = 0; | |
151 | fLambdaAssocMassPtCPAEmbeded[i] = 0; | |
152 | fLambdaAssocMassPtDCAPVEmbeded[i] = 0; | |
153 | fLambdaAssocMassPtDaugNClsTPCEmbeded[i] = 0; | |
bd903641 | 154 | // -- Mass vs rapidity vs pt vs centrlaity |
155 | fLambdaMassPtRap[i] = 0; | |
ca96d60a | 156 | |
fbaec09e | 157 | // AntiLambda |
158 | fAntiLambdaMCPtPhiEta[i] = 0; | |
159 | fAntiLambdaAssocPtPhiEta[i] = 0; | |
ca96d60a | 160 | // -- Natural particles |
161 | fAntiLambdaAssocMassPtRap[i] = 0; | |
162 | fAntiLambdaAssocMassPtRap2[i] = 0; | |
163 | fAntiLambdaAssocMassPtVtx[i] = 0; | |
164 | fAntiLambdaAssocMassPtDCADaug[i] = 0; | |
165 | fAntiLambdaAssocMassPtCPA[i] = 0; | |
166 | fAntiLambdaAssocMassPtDCAPV[i] = 0; | |
167 | fAntiLambdaAssocMassPtDaugNClsTPC[i] = 0; | |
168 | // -- Embeded particles | |
169 | fAntiLambdaAssocMassPtRapEmbeded[i] = 0; | |
170 | fAntiLambdaAssocMassPtRapEmbeded2[i] = 0; | |
171 | fAntiLambdaAssocMassPtVtxEmbeded[i] = 0; | |
172 | fAntiLambdaAssocMassPtDCADaug[i] = 0; | |
173 | fAntiLambdaAssocMassPtCPAEmbeded[i] = 0; | |
174 | fAntiLambdaAssocMassPtDCAPVEmbeded[i] = 0; | |
175 | fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[i] = 0; | |
bd903641 | 176 | // -- Mass vs rapidity vs pt vs centrlaity |
177 | fAntiLambdaMassPtRap[i] = 0; | |
fbaec09e | 178 | } |
179 | ||
ca96d60a | 180 | // Correlations in MC |
fbaec09e | 181 | for (Int_t i=0; i<kNCent*kN1; i++){ |
182 | // K0s | |
667b678a | 183 | fK0sdPhidEtaMC[i] = 0; |
59e0735e | 184 | // Lambda |
667b678a | 185 | fLambdadPhidEtaMC[i] = 0; |
59e0735e | 186 | // AntiLambda |
187 | fAntiLambdadPhidEtaMC[i] = 0; | |
44972668 | 188 | } |
189 | ||
f4a57119 | 190 | for (Int_t i=0; i<kNCent*kN2; i++){ |
191 | // Xi-: associated particle | |
192 | fXiMinusdPhidEtaMC[i] = 0; // Pt of Trigger particle as in the analysis | |
193 | fXiMinusdPhidEtaMC2[i] = 0; // Higher Pt of Trigger particle | |
194 | } | |
195 | ||
196 | for (Int_t i=0; i<kNCent*kN3; i++) | |
197 | fXiMinusdPhidEtaMC3[i] = 0; // Xi is the leading particle in the event | |
198 | ||
ca96d60a | 199 | // Correlations |
44972668 | 200 | for (Int_t i=0; i<(kNCent*kN1*kNVtxZ); i++){ |
201 | // K0s | |
202 | fK0sdPhidEtaPtL[i] = 0; | |
44972668 | 203 | // Lambda |
204 | fLambdadPhidEtaPtL[i] = 0; | |
44972668 | 205 | // AntiLambda |
ca96d60a | 206 | fAntiLambdadPhidEtaPtL[i] = 0; |
348080d3 | 207 | } |
208 | ||
ca96d60a | 209 | // Gamma Conversion correlation |
348080d3 | 210 | for (Int_t i=0; i<kNCent; i++) |
211 | fGammaConversiondPhidEta[i] = 0; | |
212 | ||
bd903641 | 213 | // h-h correlations |
214 | for (Int_t i=0; i<(kNCent*kNc*kNVtxZ); i++) | |
215 | fChargeddPhidEta[i] = 0; | |
216 | ||
348080d3 | 217 | // Mixed events distributions |
bd903641 | 218 | for (Int_t i=0; i<(kNc*kNVtxZ*kNCent); i++) |
219 | fChargeddPhidEtaME[i] = 0; | |
220 | ||
348080d3 | 221 | for (Int_t i=0; i<(kN1*kNVtxZ*kNCent); i++){ |
222 | fK0sdPhidEtaME[i] = 0; | |
223 | fLambdadPhidEtaME[i] = 0; | |
224 | fAntiLambdadPhidEtaME[i] = 0; | |
667b678a | 225 | } |
226 | ||
227 | // Constructor. Initialization of pointers | |
228 | DefineOutput(1, TList::Class()); | |
6668159e | 229 | DefineOutput(2, TList::Class()); |
348080d3 | 230 | DefineOutput(3, TList::Class()); |
6668159e | 231 | |
667b678a | 232 | |
233 | } | |
234 | ||
235 | //___________________________________________________________________________________________ | |
236 | ||
348080d3 | 237 | AliAnalysisTaskLambdaOverK0sJets::~AliAnalysisTaskLambdaOverK0sJets() |
238 | { | |
239 | ||
240 | // Destructor | |
241 | if(fMEList){ | |
242 | ||
243 | for(Int_t icent=0; icent<kNCent; icent++){ | |
244 | for(Int_t iz=0; iz<kNVtxZ; iz++){ | |
245 | fMEList[icent*kNVtxZ+iz]->Delete(); delete fMEList[icent*kNVtxZ+iz]; | |
246 | } | |
247 | } | |
248 | delete[] fMEList; fMEList=0x0; | |
249 | } | |
250 | ||
251 | if(fTriggerParticles) { | |
252 | delete fTriggerParticles; | |
253 | fTriggerParticles=0x0; | |
254 | } | |
255 | ||
bd903641 | 256 | if(fChargedAssocParticles) { |
257 | delete fChargedAssocParticles; | |
258 | fChargedAssocParticles=0x0; | |
259 | } | |
260 | ||
b6f9da99 | 261 | if(fTriggerPartMC) { |
262 | delete fTriggerPartMC; | |
263 | fTriggerPartMC=0x0; | |
264 | } | |
265 | ||
348080d3 | 266 | if(fAssocParticles) { |
267 | delete fAssocParticles; | |
268 | fAssocParticles=0x0; | |
269 | } | |
b6f9da99 | 270 | |
271 | if(fAssocPartMC) { | |
272 | delete fAssocPartMC; | |
273 | fAssocPartMC=0x0; | |
274 | } | |
f4a57119 | 275 | |
276 | if(fXiTriggerPartMC) { | |
277 | delete fXiTriggerPartMC; | |
278 | fXiTriggerPartMC=0x0; | |
279 | } | |
b6f9da99 | 280 | |
348080d3 | 281 | |
282 | } | |
283 | ||
284 | //___________________________________________________________________________________________ | |
285 | ||
667b678a | 286 | void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects() |
287 | { | |
288 | // Creating the histograms that are needed for the output | |
289 | ||
290 | fOutput = new TList(); | |
291 | fOutput->SetOwner(); | |
292 | ||
6668159e | 293 | fOutputQA = new TList(); |
294 | fOutputQA->SetOwner(); | |
295 | ||
348080d3 | 296 | fOutputME = new TList(); |
297 | fOutputME->SetOwner(); | |
298 | ||
348080d3 | 299 | fMEList = new TList*[kNCent*kNVtxZ]; |
300 | for(Int_t icent=0; icent<kNCent; icent++){ | |
301 | for(Int_t iz=0; iz<kNVtxZ; iz++){ | |
302 | fMEList[icent*kNVtxZ+iz] = new TList(); | |
303 | fMEList[icent*kNVtxZ+iz]->SetOwner(kFALSE); | |
304 | } | |
305 | } | |
306 | ||
b6f9da99 | 307 | char hNameHist[100]; |
348080d3 | 308 | |
667b678a | 309 | // ====== General characteristics of the event and tracks ====== // |
310 | ||
311 | // Counter for the number of events in each step: | |
312 | fEvents=new TH1F("fEvents","Number of events",14,-0.5,13.5); | |
313 | fEvents->GetXaxis()->SetBinLabel(1,"calls to UserExec()"); | |
314 | fEvents->GetXaxis()->SetBinLabel(2,"AOD available"); | |
315 | fEvents->GetXaxis()->SetBinLabel(3,"CINT1B"); | |
316 | fEvents->GetXaxis()->SetBinLabel(4,"V0M Cent"); | |
317 | fEvents->GetXaxis()->SetBinLabel(5,"Vtx > 3 part"); | |
318 | fEvents->GetXaxis()->SetBinLabel(6,"|VtxZ| < 10 cm"); | |
319 | fEvents->GetXaxis()->SetBinLabel(7,"Mult && Cent"); | |
320 | fEvents->GetXaxis()->SetBinLabel(8,"Bad ID Trigger"); | |
321 | fEvents->GetXaxis()->SetBinLabel(9,"V0 is LP"); | |
322 | fEvents->GetXaxis()->SetBinLabel(10,"Trigger is V0 daug"); | |
323 | fEvents->GetXaxis()->SetBinLabel(11,"Trigger is V0 daug && 2nd check"); | |
324 | fEvents->GetXaxis()->SetBinLabel(12,"Triggered"); | |
325 | fEvents->GetXaxis()->SetBinLabel(13,"NOT Triggered"); | |
59e0735e | 326 | fEvents->GetXaxis()->SetBinLabel(14,"V0 is LP in MC"); |
667b678a | 327 | fEvents->GetYaxis()->SetTitle("Counts"); |
328 | fOutput->Add(fEvents); | |
329 | ||
330 | // Centrality: | |
59e0735e | 331 | fCentrality = new TH1F("fCentrality","Centrality;Centrality (%);Events",100,0.,100.); |
667b678a | 332 | fOutput->Add(fCentrality); |
333 | ||
53e7de27 | 334 | fCentrality2 = new TH1F("fCentrality2","Centrality in events with |VtxZ|<10 cm;Centrality (%);Events",100,0.,100.); |
335 | fOutput->Add(fCentrality2); | |
336 | ||
ca96d60a | 337 | fCentralityTrig = new TH2F("fCentralityTrig","Centrality in events per trigger selection;Centrality (%);Triger Selection",100,0.,100.,3,0.5,3.5); |
338 | fCentralityTrig->GetYaxis()->SetBinLabel(1,"kCentral"); | |
f4a57119 | 339 | fCentralityTrig->GetYaxis()->SetBinLabel(2,"kSemiCentral"); |
340 | fCentralityTrig->GetYaxis()->SetBinLabel(3,"kMB"); | |
ca96d60a | 341 | fOutput->Add(fCentralityTrig); |
342 | ||
667b678a | 343 | // Primary Vertex: |
59e0735e | 344 | fPrimaryVertexX = new TH1F("fPrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5); |
667b678a | 345 | fOutput->Add(fPrimaryVertexX); |
346 | ||
59e0735e | 347 | fPrimaryVertexY = new TH1F("fPrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5); |
667b678a | 348 | fOutput->Add(fPrimaryVertexY); |
349 | ||
59e0735e | 350 | fPrimaryVertexZ = new TH1F("fPrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20); |
667b678a | 351 | fOutput->Add(fPrimaryVertexZ); |
ca96d60a | 352 | |
667b678a | 353 | |
354 | // ====== Trigger Particle characteristics ====== // | |
ca96d60a | 355 | |
356 | // Difference between Event plane and the Trigger particles: | |
f4a57119 | 357 | fTriggerEventPlane = new TH1F("fTriggerEventPlane", ";#varphi_{EP}-#varphi_{Trig};Events",50,0.,TMath::Pi()); |
ca96d60a | 358 | fOutput->Add(fTriggerEventPlane); |
667b678a | 359 | |
360 | // MC: Pt Trigger particle vs centrality: | |
59e0735e | 361 | if(fIsMC){ |
f4a57119 | 362 | fTriggerMCPtCent = new TH2F("fTriggerMCPtCent","Trigger particle MC;#it{p}_{T} (GeV/#it{c});centrality (%)",2*nbinPtLP,pMin,2*ptMaxLP,100,0.,100.); |
348080d3 | 363 | fOutput->Add(fTriggerMCPtCent); |
b6f9da99 | 364 | |
f4a57119 | 365 | 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 | 366 | fOutput->Add(fTriggerMCResPt); |
367 | ||
f4a57119 | 368 | 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 | 369 | fOutput->Add(fTriggerMCResEta); |
370 | ||
f4a57119 | 371 | 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 | 372 | fOutput->Add(fTriggerMCResPhi); |
59e0735e | 373 | } |
667b678a | 374 | |
375 | // Pt Trigger particle vs centrality: | |
f4a57119 | 376 | 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 | 377 | fOutput->Add(fTriggerPtCent); |
378 | ||
ca96d60a | 379 | fNTrigPerEvt = new TH2F("fNTrigPerEvt","Number of Trigger Particles Per Event;Counts;Centrality",51,-0.5,50.5,100,0.,100); |
348080d3 | 380 | fOutput->Add(fNTrigPerEvt); |
381 | ||
382 | fTriggerWiSPDHit = new TH1F("fTriggerWiSPDHit","Number of Trigger Particles wi SPD Hits",3,0.,3.); | |
383 | fOutput->Add(fTriggerWiSPDHit); | |
384 | ||
667b678a | 385 | // Phi vs pseudorapidity: |
f4a57119 | 386 | fTriggerEtaPhi = new TH2F("fTriggerEtaPhi","Trigger particle;#varphi (rad);#eta",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.); |
667b678a | 387 | fOutput->Add(fTriggerEtaPhi); |
388 | ||
389 | // Check if Trigger particle comes from a V0 daughter: | |
390 | fCheckTriggerFromV0Daug = | |
348080d3 | 391 | new TH1F("fCheckTriggerFromV0Daug","Trigger particle from a V0 daughter;;Counts",4,-0.5,3.5); |
667b678a | 392 | fCheckTriggerFromV0Daug->GetXaxis()->SetTitle("Flag"); |
348080d3 | 393 | fCheckTriggerFromV0Daug->GetXaxis()->SetBinLabel(1,"NOT V0 daug"); |
394 | fCheckTriggerFromV0Daug->GetXaxis()->SetBinLabel(2,"V0 daug"); | |
395 | fCheckTriggerFromV0Daug->GetXaxis()->SetBinLabel(3,"V0 daug & V0 LP"); | |
667b678a | 396 | fOutput->Add(fCheckTriggerFromV0Daug); |
397 | ||
f4a57119 | 398 | fTriggerComingFromDaug = new TH1F("fTriggerComingFromDaug","Trigger particle from a V0 daughter;#it{p}_{T} (GeV/#it{c});Counts",240, 0, 12); |
667b678a | 399 | fOutput->Add(fTriggerComingFromDaug); |
400 | ||
f4a57119 | 401 | fTriggerIsV0 = new TH1F("fTriggerIsV0","V0 candidate is a LP;#it{p}_{T} (GeV/#it{c});Counts",nbinPtLP,pMin,ptMaxLP); |
667b678a | 402 | fOutput->Add(fTriggerIsV0); |
403 | ||
348080d3 | 404 | // ------------------- > Comaring properties of this trigger with the daughters |
405 | // K0s | |
b6f9da99 | 406 | 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.); |
407 | fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(1,"Pos Daug X"); | |
408 | fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(2,"Pos Daug Y"); | |
409 | fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(3,"Pos Daug Z"); | |
410 | fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(4,"Neg Daug X"); | |
411 | fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(5,"Neg Daug Y"); | |
412 | fCheckIDTrigPtK0s->GetYaxis()->SetBinLabel(6,"Neg Daug Z"); | |
6668159e | 413 | fOutput->Add(fCheckIDTrigPtK0s); |
414 | ||
f4a57119 | 415 | 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 | 416 | fCheckIDTrigPhiK0s->GetYaxis()->SetBinLabel(1,"Pos Daug"); |
417 | fCheckIDTrigPhiK0s->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
6668159e | 418 | fOutput->Add(fCheckIDTrigPhiK0s); |
419 | ||
ca96d60a | 420 | 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 | 421 | fCheckIDTrigEtaK0s->GetYaxis()->SetBinLabel(1,"Pos Daug"); |
422 | fCheckIDTrigEtaK0s->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
348080d3 | 423 | fOutput->Add(fCheckIDTrigEtaK0s); |
424 | ||
f4a57119 | 425 | fCheckIDTrigNclsK0s = new TH3F("fCheckIDTrigNclsK0s","K^{0}_{S};NCls TPC;;p_{V0}",131,49.5,180.5,3,-0.5,2.5,100,1.,11.); |
426 | fCheckIDTrigNclsK0s->GetYaxis()->SetBinLabel(1,"Pos Daug"); | |
427 | fCheckIDTrigNclsK0s->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
428 | fOutput->Add(fCheckIDTrigNclsK0s); | |
429 | ||
348080d3 | 430 | // Lambda |
ca96d60a | 431 | fCheckIDTrigPtLambda = new TH3F("fCheckIDTrigPtLambda","#Lambda",40,-0.1,0.1,7,-0.5,6.5,100,1.,11.); |
b6f9da99 | 432 | fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(1,"Pos Daug X"); |
433 | fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(2,"Pos Daug Y"); | |
434 | fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(3,"Pos Daug Z"); | |
435 | fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(4,"Neg Daug X"); | |
436 | fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(5,"Neg Daug Y"); | |
437 | fCheckIDTrigPtLambda->GetYaxis()->SetBinLabel(6,"Neg Daug Z"); | |
6668159e | 438 | fOutput->Add(fCheckIDTrigPtLambda); |
439 | ||
ca96d60a | 440 | fCheckIDTrigPhiLambda = new TH3F("fCheckIDTrigPhiLambda","#Lambda",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.); |
b6f9da99 | 441 | fCheckIDTrigPhiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug"); |
442 | fCheckIDTrigPhiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
6668159e | 443 | fOutput->Add(fCheckIDTrigPhiLambda); |
444 | ||
ca96d60a | 445 | fCheckIDTrigEtaLambda = new TH3F("fCheckIDTrigEtaLambda","#Lambda",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.); |
b6f9da99 | 446 | fCheckIDTrigEtaLambda->GetYaxis()->SetBinLabel(1,"Pos Daug"); |
447 | fCheckIDTrigEtaLambda->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
348080d3 | 448 | fOutput->Add(fCheckIDTrigEtaLambda); |
449 | ||
f4a57119 | 450 | fCheckIDTrigNclsLambda = new TH3F("fCheckIDTrigNclsLambda","#Lambda;NCls TPC;;p_{V0}",131,49.5,180.5,3,-0.5,2.5,100,1.,11.); |
451 | fCheckIDTrigNclsLambda->GetYaxis()->SetBinLabel(1,"Pos Daug"); | |
452 | fCheckIDTrigNclsLambda->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
453 | fOutput->Add(fCheckIDTrigNclsLambda); | |
454 | ||
348080d3 | 455 | // AntiLambda |
b6f9da99 | 456 | fCheckIDTrigPtAntiLambda = new TH3F("fCheckIDTrigPtAntiLambda","#bar{#Lambda}",40,-0.2,0.2,7,-0.5,6.5,100,1.,11.); |
457 | fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug X"); | |
458 | fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(2,"Pos Daug Y"); | |
459 | fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(3,"Pos Daug Z"); | |
460 | fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(4,"Neg Daug X"); | |
461 | fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(5,"Neg Daug Y"); | |
462 | fCheckIDTrigPtAntiLambda->GetYaxis()->SetBinLabel(6,"Neg Daug Z"); | |
348080d3 | 463 | fOutput->Add(fCheckIDTrigPtAntiLambda); |
464 | ||
ca96d60a | 465 | fCheckIDTrigPhiAntiLambda = new TH3F("fCheckIDTrigPhiAntiLambda","#bar{#Lambda}",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.); |
b6f9da99 | 466 | fCheckIDTrigPhiAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug"); |
467 | fCheckIDTrigPhiAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
348080d3 | 468 | fOutput->Add(fCheckIDTrigPhiAntiLambda); |
469 | ||
ca96d60a | 470 | fCheckIDTrigEtaAntiLambda = new TH3F("fCheckIDTrigEtaAntiLambda","#bar{#Lambda}",40,-0.1,0.1,3,-0.5,2.5,100,1.,11.); |
b6f9da99 | 471 | fCheckIDTrigEtaAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug"); |
472 | fCheckIDTrigEtaAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
348080d3 | 473 | fOutput->Add(fCheckIDTrigEtaAntiLambda); |
667b678a | 474 | |
f4a57119 | 475 | fCheckIDTrigNclsAntiLambda = new TH3F("fCheckIDTrigNclsAntiLambda","#bar{#Lambda};NCls TPC;;p_{V0}",131,49.5,180.5,3,-0.5,2.5,100,1.,11.); |
476 | fCheckIDTrigNclsAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug"); | |
477 | fCheckIDTrigNclsAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug"); | |
478 | fOutput->Add(fCheckIDTrigNclsAntiLambda); | |
479 | ||
667b678a | 480 | // ====== MC-true and MC-Association information ====== // |
481 | if(fIsMC){ | |
482 | ||
348080d3 | 483 | fInjectedParticles = new TH1F("fInjectedParticles","Injected particles;;Counts",2,0.,2.); |
484 | fInjectedParticles->GetXaxis()->SetBinLabel(1,"Injected"); | |
485 | fInjectedParticles->GetXaxis()->SetBinLabel(2,"Natural"); | |
486 | fOutput->Add(fInjectedParticles); | |
667b678a | 487 | |
348080d3 | 488 | // K0s MC-true: |
f4a57119 | 489 | fK0sMCPt = new TH1F("fK0sMCPt", "K^{0}_{S} MC;#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax); |
348080d3 | 490 | fOutput->Add(fK0sMCPt); |
b6a9eae2 | 491 | |
f4a57119 | 492 | 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 | 493 | fOutput->Add(fK0sMCPtRap); |
b6f9da99 | 494 | |
f4a57119 | 495 | 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 | 496 | fOutput->Add(fK0sMCPtRap2); |
53e7de27 | 497 | |
f4a57119 | 498 | fK0sMCPtRapVtx = new TH3F("fK0sMCPtRapVtx", "K^{0}_{S} MC |VtxZ|<3 cm;#it{p}_{T} (GeV/#it{c});VtxZ;centrality",nbins,pMin,pMax,20,-10.,10.,100,0.,100.); |
ca96d60a | 499 | fOutput->Add(fK0sMCPtRapVtx); |
500 | ||
f4a57119 | 501 | 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 | 502 | fOutput->Add(fK0sMCPtRapEmbeded); |
31f87a49 | 503 | |
f4a57119 | 504 | fK0sMCPtRapVtxEmbeded = new TH3F("fK0sMCPtRapVtxEmbeded", "K^{0}_{S} Embeded MC |VtxZ|<3 cm;#it{p}_{T} (GeV/#it{c});VtxZ;centrality",nbins,pMin,pMax,20,-10.,10.,100,0.,100.); |
ca96d60a | 505 | fOutput->Add(fK0sMCPtRapVtxEmbeded); |
667b678a | 506 | |
b6f9da99 | 507 | for(Int_t jj=0;jj<kNCent;jj++){ |
508 | snprintf(hNameHist,100, "fK0sMCPtPhiEta_Cent_%d",jj); | |
f4a57119 | 509 | 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 | 510 | fOutput->Add(fK0sMCPtPhiEta[jj]); |
511 | } | |
667b678a | 512 | |
348080d3 | 513 | // K0s MC-Association: |
514 | fK0sAssocPt = | |
f4a57119 | 515 | new TH1F("fK0sAssocPt","K^{0}_{S} Assoc: L_{T} vs #it{p}_{T};#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax); |
348080d3 | 516 | fOutput->Add(fK0sAssocPt); |
59e0735e | 517 | |
348080d3 | 518 | fK0sAssocPtArm = |
f4a57119 | 519 | 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 | 520 | fOutput->Add(fK0sAssocPtArm); |
59e0735e | 521 | |
f4a57119 | 522 | 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 | 523 | fOutput->Add(fK0sAssocPtRap); |
53e7de27 | 524 | |
f4a57119 | 525 | 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 | 526 | fOutput->Add(fK0sAssocPtRapEmbeded); |
348080d3 | 527 | |
b6f9da99 | 528 | for(Int_t jj=0;jj<kNCent;jj++){ |
529 | snprintf(hNameHist,100, "fK0sAssocPtPhiEta_Cent_%d",jj); | |
f4a57119 | 530 | 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 | 531 | fOutput->Add(fK0sAssocPtPhiEta[jj]); |
532 | } | |
ca96d60a | 533 | |
534 | // Histogramas para estudios sistematicos de la eficiencia | |
535 | for(Int_t i=0; i<kNCent; i++){ | |
536 | ||
537 | /// ------- Natural particles | |
538 | snprintf(hNameHist,100, "fK0sAssocPtMassArm_Cent_%d",i); | |
f4a57119 | 539 | fK0sAssocPtMassArm[i] = new TH3F(hNameHist,"K^{0}_{S} Assoc;Mass (GeV/c^{2});#it{p}_{T} (GeV/#it{c});rap",nbins,0.398,0.598,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 540 | fOutput->Add(fK0sAssocPtMassArm[i]); |
541 | ||
542 | snprintf(hNameHist,100, "fK0sAssocMassPtVtx_Cent_%d",i); | |
f4a57119 | 543 | fK0sAssocMassPtVtx[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; VtxZ",nbins,0.398,0.598,nbins,pMin,pMax,20,-10.,10.); |
ca96d60a | 544 | fOutput->Add(fK0sAssocMassPtVtx[i]); |
545 | ||
546 | snprintf(hNameHist,100, "fK0sAssocMassPtDCADaug_Cent_%d",i); | |
f4a57119 | 547 | fK0sAssocMassPtDCADaug[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; DCADaug",nbins,0.398,0.598,nbins,pMin,pMax,60,0,1.2); |
ca96d60a | 548 | fOutput->Add(fK0sAssocMassPtDCADaug[i]); |
549 | ||
550 | snprintf(hNameHist,100, "fK0sAssocMassPtCPA_Cent_%d",i); | |
f4a57119 | 551 | fK0sAssocMassPtCPA[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; CPA",nbins,0.398,0.598,nbins,pMin,pMax,25,0.9975,1.); |
ca96d60a | 552 | fOutput->Add(fK0sAssocMassPtCPA[i]); |
553 | ||
554 | snprintf(hNameHist,100, "fK0sAssocMassPtDCAPV_Cent_%d",i); | |
f4a57119 | 555 | fK0sAssocMassPtDCAPV[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; DCA to Prim. Vtx",nbins,0.398,0.598,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 556 | fOutput->Add(fK0sAssocMassPtDCAPV[i]); |
557 | ||
558 | ||
559 | snprintf(hNameHist,100, "fK0sAssocMassPtDaugNClsTPC_Cent_%d",i); | |
f4a57119 | 560 | fK0sAssocMassPtDaugNClsTPC[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; # TPC Cls",nbins,0.398,0.598,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 561 | fOutput->Add(fK0sAssocMassPtDaugNClsTPC[i]); |
562 | ||
563 | /// ----- Embeded particles | |
564 | snprintf(hNameHist,100, "fK0sAssocPtMassArmEmbeded_Cent_%d",i); | |
f4a57119 | 565 | fK0sAssocPtMassArmEmbeded[i] = new TH3F(hNameHist,"K^{0}_{S} Assoc Embeded;Mass (GeV/c^{2});#it{p}_{T} (GeV/#it{c});rap",nbins,0.398,0.598,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 566 | fOutput->Add(fK0sAssocPtMassArmEmbeded[i]); |
567 | ||
568 | snprintf(hNameHist,100, "fK0sAssocMassPtVtxEmbeded_Cent_%d",i); | |
f4a57119 | 569 | fK0sAssocMassPtVtxEmbeded[i] = new TH3F(hNameHist, "K^{0}_{S} Embeded; mass; #it{p}_{T}; VtxZ",nbins,0.398,0.598,nbins,pMin,pMax,20,-10.,10.); |
ca96d60a | 570 | fOutput->Add(fK0sAssocMassPtVtxEmbeded[i]); |
571 | ||
572 | snprintf(hNameHist,100, "fK0sAssocMassPtDCADaugEmbeded_Cent_%d",i); | |
f4a57119 | 573 | fK0sAssocMassPtDCADaugEmbeded[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; DCADaug",nbins,0.398,0.598,nbins,pMin,pMax,60,0,1.2); |
ca96d60a | 574 | fOutput->Add(fK0sAssocMassPtDCADaugEmbeded[i]); |
575 | ||
576 | snprintf(hNameHist,100, "fK0sAssocMassPtCPAEmbeded_Cent_%d",i); | |
f4a57119 | 577 | fK0sAssocMassPtCPAEmbeded[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; CPA",nbins,0.398,0.598,nbins,pMin,pMax,25,0.9975,1.); |
ca96d60a | 578 | fOutput->Add(fK0sAssocMassPtCPAEmbeded[i]); |
579 | ||
580 | snprintf(hNameHist,100, "fK0sAssocMassPtDCAPVEmbeded_Cent_%d",i); | |
f4a57119 | 581 | fK0sAssocMassPtDCAPVEmbeded[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; DCA to Prim. Vtx",nbins,0.398,0.598,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 582 | fOutput->Add(fK0sAssocMassPtDCAPVEmbeded[i]); |
583 | ||
584 | ||
585 | snprintf(hNameHist,100, "fK0sAssocMassPtDaugNClsTPCEmbeded_Cent_%d",i); | |
f4a57119 | 586 | fK0sAssocMassPtDaugNClsTPCEmbeded[i] = new TH3F(hNameHist, "K^{0}_{S}; mass; #it{p}_{T}; # TPC Cls",nbins,0.398,0.598,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 587 | fOutput->Add(fK0sAssocMassPtDaugNClsTPCEmbeded[i]); |
588 | ||
589 | } | |
b6f9da99 | 590 | |
f4a57119 | 591 | 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 | 592 | fOutput->Add(fK0sMCResEta); |
59e0735e | 593 | |
f4a57119 | 594 | 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 | 595 | fOutput->Add(fK0sMCResPhi); |
59e0735e | 596 | |
348080d3 | 597 | // Lambda MC-true: |
f4a57119 | 598 | fLambdaMCPt = new TH1F("fLambdaMCPt","#Lambda MC;#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax); |
348080d3 | 599 | fOutput->Add(fLambdaMCPt); |
59e0735e | 600 | |
f4a57119 | 601 | 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 | 602 | fOutput->Add(fLambdaMCPtRap); |
b6f9da99 | 603 | |
f4a57119 | 604 | 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 | 605 | fOutput->Add(fLambdaMCPtRap2); |
53e7de27 | 606 | |
f4a57119 | 607 | fLambdaMCPtRapVtx = new TH3F("fLambdaMCPtRapVtx","#Lambda MC |VtxZ|<3 cm;#it{p}_{T} (GeV/#it{c});zv;centrality",nbins,pMin,pMax,20,-10.,10.,100,0.,100.); |
ca96d60a | 608 | fOutput->Add(fLambdaMCPtRapVtx); |
609 | ||
f4a57119 | 610 | 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 | 611 | fOutput->Add(fLambdaMCPtRapEmbeded); |
348080d3 | 612 | |
f4a57119 | 613 | fLambdaMCPtRapVtxEmbeded = new TH3F("fLambdaMCPtRapVtxEmbeded","#Lambda Embeded MC |VtxZ|<3 cm;#it{p}_{T} (GeV/#it{c});zv;centrality",nbins,pMin,pMax,20,-10.,10.,100,0.,100.); |
ca96d60a | 614 | fOutput->Add(fLambdaMCPtRapVtxEmbeded); |
615 | ||
f4a57119 | 616 | fLambdaMCFromXi = new TH2F("fLambdaMCFromXi", "#Lambda from Xi MC;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.); |
31f87a49 | 617 | fOutput->Add(fLambdaMCFromXi); |
618 | ||
b6f9da99 | 619 | for(Int_t jj=0;jj<kNCent;jj++){ |
620 | snprintf(hNameHist,100, "fLambdaMCPtPhiEta_Cent_%d",jj); | |
f4a57119 | 621 | 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 | 622 | fOutput->Add(fLambdaMCPtPhiEta[jj]); |
623 | } | |
59e0735e | 624 | |
348080d3 | 625 | // Lambda MC-Association: |
626 | fLambdaAssocPt = | |
f4a57119 | 627 | new TH1F("fLambdaAssocPt","#Lambda Assoc: L_{T} vs #it{p}_{T};#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax); |
348080d3 | 628 | fOutput->Add(fLambdaAssocPt); |
59e0735e | 629 | |
f4a57119 | 630 | 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 | 631 | fOutput->Add(fLambdaAssocPtRap); |
53e7de27 | 632 | |
f4a57119 | 633 | fLambdaAssocFromXi = new TH2F("fLambdaAssocFromXi", "#Lambda from Xi Assoc;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.); |
31f87a49 | 634 | fOutput->Add(fLambdaAssocFromXi); |
635 | ||
b6f9da99 | 636 | for(Int_t jj=0;jj<kNCent;jj++){ |
637 | snprintf(hNameHist,100, "fLambdaAssocPtPhiEta_Cent_%d",jj); | |
f4a57119 | 638 | 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 | 639 | fOutput->Add(fLambdaAssocPtPhiEta[jj]); |
640 | } | |
ca96d60a | 641 | |
642 | // Histogramas para estudios sistematicos de la eficiencia | |
643 | for(Int_t i=0; i<kNCent; i++){ | |
644 | // --------- Natural particles | |
645 | snprintf(hNameHist,100, "fLambdaAssocMassPtRap_Cent_%d",i); | |
f4a57119 | 646 | fLambdaAssocMassPtRap[i] = new TH3F(hNameHist, "#Lambda: mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 647 | fOutput->Add(fLambdaAssocMassPtRap[i]); |
648 | ||
649 | snprintf(hNameHist,100, "fLambdaAssocMassPtRap2_Cent_%d",i); | |
f4a57119 | 650 | fLambdaAssocMassPtRap2[i] = new TH3F(hNameHist, "#Lambda: mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 651 | fOutput->Add(fLambdaAssocMassPtRap2[i]); |
652 | ||
653 | snprintf(hNameHist,100, "fLambdaAssocMassPtVtx_Cent_%d",i); | |
f4a57119 | 654 | fLambdaAssocMassPtVtx[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; VtxZ",nbins,1.065,1.165,nbins,pMin,pMax,20,-10.,10.); |
ca96d60a | 655 | fOutput->Add(fLambdaAssocMassPtVtx[i]); |
656 | ||
657 | snprintf(hNameHist,100, "fLambdaAssocMassPtDCADaug_Cent_%d",i); | |
f4a57119 | 658 | fLambdaAssocMassPtDCADaug[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; DCADaug",nbins,1.065,1.165,nbins,pMin,pMax,60,0,1.2); |
ca96d60a | 659 | fOutput->Add(fLambdaAssocMassPtDCADaug[i]); |
660 | ||
661 | snprintf(hNameHist,100, "fLambdaAssocMassPtCPA_Cent_%d",i); | |
f4a57119 | 662 | fLambdaAssocMassPtCPA[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; CPA",nbins,1.065,1.165,nbins,pMin,pMax,25,0.9975,1.); |
ca96d60a | 663 | fOutput->Add(fLambdaAssocMassPtCPA[i]); |
664 | ||
665 | snprintf(hNameHist,100, "fLambdaAssocMassPtDCAPV_Cent_%d",i); | |
f4a57119 | 666 | fLambdaAssocMassPtDCAPV[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; DCA to Prim. Vtx",nbins,1.065,1.165,nbins,pMin,pMax,7,0.5,7.5); |
ca96d60a | 667 | fOutput->Add(fLambdaAssocMassPtDCAPV[i]); |
668 | ||
669 | snprintf(hNameHist,100, "fLambdaAssocMassPtDaugNClsTPC_Cent_%d",i); | |
f4a57119 | 670 | fLambdaAssocMassPtDaugNClsTPC[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; # TPC Cls",nbins,1.065,1.165,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 671 | fOutput->Add(fLambdaAssocMassPtDaugNClsTPC[i]); |
672 | ||
673 | // ------------ Embeded particles | |
674 | snprintf(hNameHist,100, "fLambdaAssocMassPtRapEmbeded_Cent_%d",i); | |
f4a57119 | 675 | fLambdaAssocMassPtRapEmbeded[i] = new TH3F(hNameHist, "#Lambda Embeded; mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 676 | fOutput->Add(fLambdaAssocMassPtRapEmbeded[i]); |
677 | ||
678 | snprintf(hNameHist,100, "fLambdaAssocMassPtRapEmbeded2_Cent_%d",i); | |
f4a57119 | 679 | fLambdaAssocMassPtRapEmbeded2[i] = new TH3F(hNameHist, "#Lambda Embeded; mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 680 | fOutput->Add(fLambdaAssocMassPtRapEmbeded2[i]); |
681 | ||
682 | snprintf(hNameHist,100, "fLambdaAssocMassPtVtxEmbeded_Cent_%d",i); | |
f4a57119 | 683 | fLambdaAssocMassPtVtxEmbeded[i] = new TH3F(hNameHist, "#Lambda Embeded; mass; #it{p}_{T}; VtxZ",nbins,1.065,1.165,nbins,pMin,pMax,20,-10.,10.); |
ca96d60a | 684 | fOutput->Add(fLambdaAssocMassPtVtxEmbeded[i]); |
685 | ||
686 | snprintf(hNameHist,100, "fLambdaAssocMassPtDCADaugEmbeded_Cent_%d",i); | |
f4a57119 | 687 | fLambdaAssocMassPtDCADaugEmbeded[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; DCADaug",nbins,1.065,1.165,nbins,pMin,pMax,60,0,1.2); |
ca96d60a | 688 | fOutput->Add(fLambdaAssocMassPtDCADaugEmbeded[i]); |
b6f9da99 | 689 | |
ca96d60a | 690 | snprintf(hNameHist,100, "fLambdaAssocMassPtCPAEmbeded_Cent_%d",i); |
f4a57119 | 691 | fLambdaAssocMassPtCPAEmbeded[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; CPA",nbins,1.065,1.165,nbins,pMin,pMax,25,0.9975,1.); |
ca96d60a | 692 | fOutput->Add(fLambdaAssocMassPtCPAEmbeded[i]); |
693 | ||
694 | snprintf(hNameHist,100, "fLambdaAssocMassPtDCAPVEmbeded_Cent_%d",i); | |
f4a57119 | 695 | fLambdaAssocMassPtDCAPVEmbeded[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; DCA to Prim. Vtx",nbins,1.065,1.165,nbins,pMin,pMax,7,0.5,7.5); |
ca96d60a | 696 | fOutput->Add(fLambdaAssocMassPtDCAPVEmbeded[i]); |
697 | ||
698 | ||
699 | snprintf(hNameHist,100, "fLambdaAssocMassPtDaugNClsTPCEmbeded_Cent_%d",i); | |
f4a57119 | 700 | fLambdaAssocMassPtDaugNClsTPCEmbeded[i] = new TH3F(hNameHist, "#Lambda; mass; #it{p}_{T}; # TPC Cls",nbins,1.065,1.165,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 701 | fOutput->Add(fLambdaAssocMassPtDaugNClsTPCEmbeded[i]); |
702 | } | |
703 | ||
f4a57119 | 704 | 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 | 705 | fOutput->Add(fLambdaMCResEta); |
59e0735e | 706 | |
f4a57119 | 707 | 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 | 708 | fOutput->Add(fLambdaMCResPhi); |
ca96d60a | 709 | |
348080d3 | 710 | // AntiLambda MC-true: |
f4a57119 | 711 | fAntiLambdaMCPt = new TH1F("fAntiLambdaMCPt","#bar{#Lambda} MC;#it{p}_{T} (GeV/#it{c});Counts",nbins,pMin,pMax); |
348080d3 | 712 | fOutput->Add(fAntiLambdaMCPt); |
ca96d60a | 713 | |
f4a57119 | 714 | 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 | 715 | fOutput->Add(fAntiLambdaMCPtRap); |
ca96d60a | 716 | |
f4a57119 | 717 | 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 | 718 | fOutput->Add(fAntiLambdaMCPtRap2); |
53e7de27 | 719 | |
f4a57119 | 720 | fAntiLambdaMCPtRapVtx = new TH3F("fAntiLambdaMCPtRapVtx","#bar{#Lambda} MC |VtxZ|<3;#it{p}_{T} (GeV/#it{c});zv;centrality",nbins,pMin,pMax,20,-10.,10.,100,0.,100.); |
ca96d60a | 721 | fOutput->Add(fAntiLambdaMCPtRapVtx); |
722 | ||
f4a57119 | 723 | 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 | 724 | fOutput->Add(fAntiLambdaMCPtRapEmbeded); |
ca96d60a | 725 | |
f4a57119 | 726 | fAntiLambdaMCPtRapVtxEmbeded = new TH3F("fAntiLambdaMCPtRapVtxEmbeded","#bar{#Lambda} Embeded MC |VtxZ|<3;#it{p}_{T} (GeV/#it{c});zv;centrality",nbins,pMin,pMax,20,-10.,10.,100,0.,100.); |
ca96d60a | 727 | fOutput->Add(fAntiLambdaMCPtRapVtxEmbeded); |
728 | ||
f4a57119 | 729 | fAntiLambdaMCFromXi = new TH2F("fAntiLambdaMCFromXi", "#bar{#Lambda} from Xi MC;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.); |
31f87a49 | 730 | fOutput->Add(fAntiLambdaMCFromXi); |
731 | ||
b6f9da99 | 732 | for(Int_t jj=0;jj<kNCent;jj++){ |
733 | snprintf(hNameHist,100, "fAntiLambdaMCPtPhiEta_Cent_%d",jj); | |
f4a57119 | 734 | 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 | 735 | fOutput->Add(fAntiLambdaMCPtPhiEta[jj]); |
736 | } | |
ca96d60a | 737 | |
348080d3 | 738 | // AntiLambda MC-Association: |
739 | fAntiLambdaAssocPt = | |
f4a57119 | 740 | new TH1F("fAntiLambdaAssocPt","#bar{#Lambda} Assoc: L_{T} vs #it{p}_{T};#it{p}_{T} (GeV/#it{c})",nbins,pMin,pMax); |
348080d3 | 741 | fOutput->Add(fAntiLambdaAssocPt); |
ca96d60a | 742 | |
f4a57119 | 743 | 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 | 744 | fOutput->Add(fAntiLambdaAssocPtRap); |
745 | ||
f4a57119 | 746 | fAntiLambdaAssocFromXi = new TH2F("fAntiLambdaAssocFromXi", "#bar{#Lambda} from Xi MC;#it{p}_{T} (GeV/#it{c});centrality",nbins,pMin,pMax,100,0.,100.); |
31f87a49 | 747 | fOutput->Add(fAntiLambdaAssocFromXi); |
748 | ||
b6f9da99 | 749 | for(Int_t jj=0;jj<kNCent;jj++){ |
750 | snprintf(hNameHist,100, "fAntiLambdaAssocPtPhiEta_Cent_%d",jj); | |
f4a57119 | 751 | 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 | 752 | fOutput->Add(fAntiLambdaAssocPtPhiEta[jj]); |
753 | } | |
754 | ||
ca96d60a | 755 | // Histogramas para estudios sistematicos de la eficiencia |
756 | for(Int_t i=0; i<kNCent; i++){ | |
757 | // --------- Natural particles | |
758 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRap_Cent_%d",i); | |
f4a57119 | 759 | fAntiLambdaAssocMassPtRap[i] = new TH3F(hNameHist, "#bar{#Lambda}: mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 760 | fOutput->Add(fAntiLambdaAssocMassPtRap[i]); |
761 | ||
762 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRap2_Cent_%d",i); | |
f4a57119 | 763 | fAntiLambdaAssocMassPtRap2[i] = new TH3F(hNameHist, "#bar{#Lambda}: mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 764 | fOutput->Add(fAntiLambdaAssocMassPtRap2[i]); |
765 | ||
766 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtVtx_Cent_%d",i); | |
f4a57119 | 767 | fAntiLambdaAssocMassPtVtx[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; VtxZ",nbins,1.065,1.165,nbins,pMin,pMax,20,-10.,10.); |
ca96d60a | 768 | fOutput->Add(fAntiLambdaAssocMassPtVtx[i]); |
769 | ||
770 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCADaug_Cent_%d",i); | |
f4a57119 | 771 | fAntiLambdaAssocMassPtDCADaug[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; DCADaug",nbins,1.065,1.165,nbins,pMin,pMax,60,0,1.2); |
ca96d60a | 772 | fOutput->Add(fAntiLambdaAssocMassPtDCADaug[i]); |
773 | ||
774 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtCPA_Cent_%d",i); | |
f4a57119 | 775 | fAntiLambdaAssocMassPtCPA[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; CPA",nbins,1.065,1.165,nbins,pMin,pMax,25,0.9975,1.); |
ca96d60a | 776 | fOutput->Add(fAntiLambdaAssocMassPtCPA[i]); |
777 | ||
778 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCAPV_Cent_%d",i); | |
f4a57119 | 779 | fAntiLambdaAssocMassPtDCAPV[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; DCA to Prim. Vtx",nbins,1.065,1.165,nbins,pMin,pMax,7,0.5,7.5); |
ca96d60a | 780 | fOutput->Add(fAntiLambdaAssocMassPtDCAPV[i]); |
781 | ||
782 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDaugNClsTPC_Cent_%d",i); | |
f4a57119 | 783 | fAntiLambdaAssocMassPtDaugNClsTPC[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; # TPC Cls",nbins,1.065,1.165,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 784 | fOutput->Add(fAntiLambdaAssocMassPtDaugNClsTPC[i]); |
785 | ||
786 | // ------------ Embeded particles | |
787 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRapEmbeded_Cent_%d",i); | |
f4a57119 | 788 | fAntiLambdaAssocMassPtRapEmbeded[i] = new TH3F(hNameHist, "#bar{#Lambda} Embeded; mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 789 | fOutput->Add(fAntiLambdaAssocMassPtRapEmbeded[i]); |
790 | ||
791 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtRapEmbeded2_Cent_%d",i); | |
f4a57119 | 792 | fAntiLambdaAssocMassPtRapEmbeded2[i] = new TH3F(hNameHist, "#bar{#Lambda} Embeded; mass, #it{p}_{T}, rap",nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); |
ca96d60a | 793 | fOutput->Add(fAntiLambdaAssocMassPtRapEmbeded2[i]); |
794 | ||
795 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtVtxEmbeded_Cent_%d",i); | |
f4a57119 | 796 | fAntiLambdaAssocMassPtVtxEmbeded[i] = new TH3F(hNameHist, "#bar{#Lambda} Embeded; mass; #it{p}_{T}; VtxZ",nbins,1.065,1.165,nbins,pMin,pMax,20,-10.,10.); |
ca96d60a | 797 | fOutput->Add(fAntiLambdaAssocMassPtVtxEmbeded[i]); |
798 | ||
799 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCADaugEmbeded_Cent_%d",i); | |
f4a57119 | 800 | fAntiLambdaAssocMassPtDCADaugEmbeded[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; DCADaug",nbins,1.065,1.165,nbins,pMin,pMax,60,0,1.2); |
ca96d60a | 801 | fOutput->Add(fAntiLambdaAssocMassPtDCADaugEmbeded[i]); |
802 | ||
803 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtCPAEmbeded_Cent_%d",i); | |
f4a57119 | 804 | fAntiLambdaAssocMassPtCPAEmbeded[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; CPA",nbins,1.065,1.165,nbins,pMin,pMax,25,0.9975,1.); |
ca96d60a | 805 | fOutput->Add(fAntiLambdaAssocMassPtCPAEmbeded[i]); |
806 | ||
807 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDCAPVEmbeded_Cent_%d",i); | |
f4a57119 | 808 | fAntiLambdaAssocMassPtDCAPVEmbeded[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; DCA to Prim. Vtx",nbins,1.065,1.165,nbins,pMin,pMax,7,0.5,7.5); |
ca96d60a | 809 | fOutput->Add(fAntiLambdaAssocMassPtDCAPVEmbeded[i]); |
810 | ||
811 | ||
812 | snprintf(hNameHist,100, "fAntiLambdaAssocMassPtDaugNClsTPCEmbeded_Cent_%d",i); | |
f4a57119 | 813 | fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[i] = new TH3F(hNameHist, "#bar{#Lambda}; mass; #it{p}_{T}; # TPC Cls",nbins,1.065,1.165,nbins,pMin,pMax,4,0.5,4.5); |
ca96d60a | 814 | fOutput->Add(fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[i]); |
815 | } | |
816 | ||
f4a57119 | 817 | 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 | 818 | fOutput->Add(fAntiLambdaMCResEta); |
59e0735e | 819 | |
f4a57119 | 820 | 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 | 821 | fOutput->Add(fAntiLambdaMCResPhi); |
59e0735e | 822 | |
ca96d60a | 823 | } //End MC |
667b678a | 824 | |
ca96d60a | 825 | // ======================================================== // |
826 | // ========== Reconstruction information in AOD =========== // | |
667b678a | 827 | fHistArmenterosPodolanski = |
828 | new TH3F("fHistArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm", | |
ca96d60a | 829 | 100,-1.0,1.0,50,0,0.5,7,-0.5,6.5); |
59e0735e | 830 | fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(1,"K^{0}_{S} Inv. Mass Peak"); |
831 | fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(2,"K^{0}_{S} Bckg"); | |
832 | fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(3,"#Lambda Inv. Mass Peak"); | |
833 | fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(4,"#Lambda Bckg"); | |
834 | fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(5,"#bar{#Lambda} Inv. Mass Peak"); | |
835 | fHistArmenterosPodolanski->GetZaxis()->SetBinLabel(6,"#bar{#Lambda} Bckg"); | |
667b678a | 836 | fOutput->Add(fHistArmenterosPodolanski); |
ca96d60a | 837 | |
667b678a | 838 | fHistArmPodBckg = |
839 | new TH3F("fHistArmPodBckg","Background: Armenteros-Podolanski phase space;#alpha;p_{t} arm", | |
ca96d60a | 840 | 100,-1.0,1.0,50,0,0.5,4,-0.5,3.5); |
59e0735e | 841 | fHistArmPodBckg->GetZaxis()->SetBinLabel(1,"K^{0}_{S}: Trig events"); |
842 | fHistArmPodBckg->GetZaxis()->SetBinLabel(2,"#Lambda: Trig events"); | |
843 | fHistArmPodBckg->GetZaxis()->SetBinLabel(3,"#bar{#Lambda}: Trig events"); | |
667b678a | 844 | fOutput->Add(fHistArmPodBckg); |
ca96d60a | 845 | |
667b678a | 846 | // ****** K0s ****** |
ca96d60a | 847 | fK0sMass = |
f4a57119 | 848 | 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 | 849 | fOutput->Add(fK0sMass); |
ca96d60a | 850 | |
851 | fK0sMassEmbeded = | |
f4a57119 | 852 | new TH3F("fK0sMassEmbeded", "K^{0}_{s} Embeded: mass vs #it{p}_{T}",nbins,0.398,0.598,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 853 | fK0sMassEmbeded->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 854 | fK0sMassEmbeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 855 | fK0sMassEmbeded->GetZaxis()->SetTitle("centrality"); |
856 | fOutput->Add(fK0sMassEmbeded); | |
667b678a | 857 | |
f4a57119 | 858 | fK0sMassPtEta = |
859 | new TH3F("fK0sMassPtEta","K^{0}_{s}: Mass vs #it{p}_{T} vs #eta;Mass;#it{p}_{T} (GeV/#it{c});#eta", | |
860 | nbins,0.398,0.598,nbins,pMin,pMax,20,-1.0,1.0); | |
861 | fOutput->Add(fK0sMassPtEta); | |
ca96d60a | 862 | |
bd903641 | 863 | for(Int_t i=0; i<kNCent; i++){ |
864 | fK0sMassPtRap[i] = | |
865 | new TH3F(Form("fK0sMassPtRap_cent_%.0lf_%.0lf",kBinCent[i],kBinCent[i+1]),"K^{0}_{s}: mass vs #it{p}_{T} vs yMass;#it{p}_{T} (GeV/#it{c});y", | |
866 | nbins,0.398,0.598,nbins,pMin,pMax,20,-1.0,1.0); | |
867 | fOutput->Add(fK0sMassPtRap[i]); | |
868 | } | |
ca96d60a | 869 | |
870 | fK0sMassPtPhi = | |
f4a57119 | 871 | 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 | 872 | nbins,0.398,0.598,nbins,pMin,pMax,nbinsPhi,0.,2.*TMath::Pi()); |
667b678a | 873 | fOutput->Add(fK0sMassPtPhi); |
ca96d60a | 874 | |
667b678a | 875 | // Correlations: |
667b678a | 876 | fK0sDCADaugToPrimVtx |
f4a57119 | 877 | = 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 | 878 | 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP); |
667b678a | 879 | fOutput->Add(fK0sDCADaugToPrimVtx); |
880 | ||
348080d3 | 881 | // Spatial Resoltuion between trigger- and asosciated- particles |
f4a57119 | 882 | fK0sSpatialRes = new TH3F("fK0sSpatialRes","K^{0}_{S}: Spatial resolution;#Delta#varphi (rad);trig-assoc. resolution (cm);dec. length (cm)", |
348080d3 | 883 | 20,-0.1,0.1,100,0.,10,2*nbins,lMin,lMax); |
884 | fOutput->Add(fK0sSpatialRes); | |
667b678a | 885 | |
348080d3 | 886 | for(Int_t jj=0;jj<kNCent;jj++){ |
887 | for(Int_t k=0;k<kN1;k++){ | |
888 | ||
889 | // Monte-Carlo level: | |
890 | if(fIsMC){ | |
fbaec09e | 891 | snprintf(hNameHist,100, "fK0sdPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1]); |
f4a57119 | 892 | fK0sdPhidEtaMC[jj*kN1+k] = new TH3F(hNameHist,"K^{0}_{S} MC: #Delta#varphi vs #Delta#eta vs p_{T,l}", |
348080d3 | 893 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
894 | nbinsdEta,-1.5,1.5, | |
895 | nbinsVtx,-10.,10.); | |
f4a57119 | 896 | fK0sdPhidEtaMC[jj*kN1+k]->GetXaxis()->SetTitle("#Delta#varphi (rad)"); |
348080d3 | 897 | fK0sdPhidEtaMC[jj*kN1+k]->GetYaxis()->SetTitle("#Delta#eta"); |
898 | fK0sdPhidEtaMC[jj*kN1+k]->GetZaxis()->SetTitle("Vertex Z (cm)"); | |
899 | fOutput->Add(fK0sdPhidEtaMC[jj*kN1+k]); | |
900 | } | |
901 | ||
902 | // Reconstruction level: | |
44972668 | 903 | for(Int_t ll=0;ll<kNVtxZ;ll++){ |
904 | snprintf(hNameHist,100, "fK0sdPhidEtaPtL_%.2f_%.2f_Cent_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1],ll); | |
f4a57119 | 905 | fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll] = new TH3F(hNameHist,"K^{0}_{S}: #Delta#varphi vs #Delta#eta vs Inv. Mass", |
44972668 | 906 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
907 | nbinsdEta,-1.5,1.5, | |
83d0a277 | 908 | nbins,0.398,0.598); |
f4a57119 | 909 | fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetXaxis()->SetTitle("#Delta#varphi (rad)"); |
44972668 | 910 | fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetYaxis()->SetTitle("#Delta#eta"); |
911 | fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetZaxis()->SetTitle("Inv. Mass"); | |
912 | fOutput->Add(fK0sdPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]); | |
913 | } | |
348080d3 | 914 | } |
667b678a | 915 | } |
348080d3 | 916 | |
667b678a | 917 | // Correlations (side-band): |
918 | fK0sBckgDecLength | |
919 | = new TH2F("fK0sBckgDecLength","K^{0}_{S} Bckg: c#tau vs. p_{T,l}", | |
920 | 100,0.,15.,nbinPtLP,pMin,ptMaxLP); | |
921 | fK0sBckgDecLength->GetXaxis()->SetTitle("c#tau (cm)"); | |
f4a57119 | 922 | fK0sBckgDecLength->GetYaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
667b678a | 923 | fOutput->Add(fK0sBckgDecLength); |
924 | ||
925 | fK0sBckgDCADaugToPrimVtx | |
926 | = new TH3F("fK0sBckgDCADaugToPrimVtx","K^{0}_{S} Bckg: dca daughter vs. p_{T,l}", | |
927 | 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP); | |
928 | fK0sBckgDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)"); | |
929 | fK0sBckgDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)"); | |
f4a57119 | 930 | fK0sBckgDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
667b678a | 931 | fOutput->Add(fK0sBckgDCADaugToPrimVtx); |
932 | ||
933 | fK0sBckgEtaPhi = | |
f4a57119 | 934 | new TH2F("fK0sBckgEtaPhi","K^{0}_{s} Bckg: #varphi vs #eta", |
667b678a | 935 | nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.); |
f4a57119 | 936 | fK0sBckgEtaPhi->GetXaxis()->SetTitle("#varphi (rad)"); |
667b678a | 937 | fK0sBckgEtaPhi->GetYaxis()->SetTitle("#eta"); |
938 | fOutput->Add(fK0sBckgEtaPhi); | |
939 | ||
940 | fK0sBckgPhiRadio | |
f4a57119 | 941 | = new TH2F("fK0sBckgPhiRadio","K^{0}_{S} Bckg: #varphi vs l_{T}", |
667b678a | 942 | nbinsPhi,0.,2.*TMath::Pi(),2*nbins,lMin,lMax); |
f4a57119 | 943 | fK0sBckgPhiRadio->GetXaxis()->SetTitle("#varphi (rad)"); |
667b678a | 944 | fK0sBckgPhiRadio->GetYaxis()->SetTitle("l_{T} (cm)"); |
945 | fOutput->Add(fK0sBckgPhiRadio); | |
946 | ||
947 | fK0sBckgDCANegDaugToPrimVtx | |
948 | = new TH2F("fK0sBckgDCANegDaugToPrimVtx","K^{0}_{S} Bckg: dca NegDaughter", | |
b6f9da99 | 949 | 7,-0.5,6.5,90,0.,3.3); |
667b678a | 950 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetTitle("MC Production"); |
951 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec"); | |
952 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary"); | |
b6f9da99 | 953 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's"); |
954 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades"); | |
955 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv."); | |
956 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother"); | |
957 | fK0sBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other"); | |
667b678a | 958 | fK0sBckgDCANegDaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg Daug (cm)"); |
959 | fOutput->Add(fK0sBckgDCANegDaugToPrimVtx); | |
960 | ||
961 | fK0sBckgDCAPosDaugToPrimVtx | |
962 | = new TH2F("fK0sBckgDCAPosDaugToPrimVtx","K^{0}_{S} Bckg: dca PosDaughter", | |
b6f9da99 | 963 | 7,-0.5,6.5,90,0.,3.3); |
667b678a | 964 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetTitle("MC Production"); |
965 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec"); | |
966 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary"); | |
b6f9da99 | 967 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's"); |
968 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades"); | |
969 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv."); | |
970 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother"); | |
971 | fK0sBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other"); | |
667b678a | 972 | fK0sBckgDCAPosDaugToPrimVtx->GetYaxis()->SetTitle("DCA Pos Daug (cm)"); |
973 | fOutput->Add(fK0sBckgDCAPosDaugToPrimVtx); | |
974 | ||
348080d3 | 975 | fV0MassCascade |
976 | = 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); | |
977 | fOutput->Add(fV0MassCascade); | |
667b678a | 978 | |
979 | ||
980 | // ****** Lambda ****** | |
981 | fLambdaMass = | |
f4a57119 | 982 | new TH3F("fLambdaMass","Mass vs #it{p}_{T} for \\Lambda",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
667b678a | 983 | fLambdaMass->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 984 | fLambdaMass->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
128e003c | 985 | fLambdaMass->GetZaxis()->SetTitle("centrality"); |
667b678a | 986 | fOutput->Add(fLambdaMass); |
987 | ||
ca96d60a | 988 | fLambdaMassEmbeded = |
f4a57119 | 989 | new TH3F("fLambdaMassEmbeded","Mass vs #it{p}_{T} for \\Lambda Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 990 | fLambdaMassEmbeded->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 991 | fLambdaMassEmbeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 992 | fLambdaMassEmbeded->GetZaxis()->SetTitle("centrality"); |
993 | fOutput->Add(fLambdaMassEmbeded); | |
994 | ||
995 | fLambdaMass2 = | |
f4a57119 | 996 | new TH3F("fLambdaMass2","Mass vs #it{p}_{T} for \\Lambda",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 997 | fLambdaMass2->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 998 | fLambdaMass2->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 999 | fLambdaMass2->GetZaxis()->SetTitle("centrality"); |
1000 | fOutput->Add(fLambdaMass2); | |
1001 | ||
1002 | fLambdaMass2Embeded = | |
f4a57119 | 1003 | new TH3F("fLambdaMass2Embeded","Mass vs #it{p}_{T} for \\Lambda Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 1004 | fLambdaMass2Embeded->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 1005 | fLambdaMass2Embeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 1006 | fLambdaMass2Embeded->GetZaxis()->SetTitle("centrality"); |
1007 | fOutput->Add(fLambdaMass2Embeded); | |
1008 | ||
f4a57119 | 1009 | fLambdaMassPtEta = |
1010 | new TH3F("fLambdaMassPtEta","\\Lambda: mass vs #it{p}_{T} vs #eta;Mass (GeV/#it{c}^2);#it{p}_{T} (GeV/#it{c});#eta", | |
1011 | nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); | |
1012 | fOutput->Add(fLambdaMassPtEta); | |
1013 | ||
bd903641 | 1014 | for(Int_t i=0; i<kNCent; i++){ |
1015 | fLambdaMassPtRap[i] = | |
1016 | 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", | |
1017 | nbins,1.065,1.165,nbins,pMin,pMax,20,-1.0,1.0); | |
1018 | fOutput->Add(fLambdaMassPtRap[i]); | |
1019 | } | |
667b678a | 1020 | |
59e0735e | 1021 | fLambdaMassPtPhi = |
f4a57119 | 1022 | 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 | 1023 | nbins,1.065,1.165,nbins,pMin,pMax,nbinsPhi,0.,2.*TMath::Pi()); |
667b678a | 1024 | fOutput->Add(fLambdaMassPtPhi); |
1025 | ||
667b678a | 1026 | // Correlations: |
667b678a | 1027 | fLambdaDCADaugToPrimVtx |
1028 | = new TH3F("fLambdaDCADaugToPrimVtx","#Lambda Bckg: dca daughter vs. p_{T,l}", | |
1029 | 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP); | |
1030 | fLambdaDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)"); | |
1031 | fLambdaDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)"); | |
f4a57119 | 1032 | fLambdaDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
667b678a | 1033 | fOutput->Add(fLambdaDCADaugToPrimVtx); |
1034 | ||
348080d3 | 1035 | // Spatial Resoltuion between trigger- and asosciated- particles |
f4a57119 | 1036 | fLambdaSpatialRes = new TH3F("fLambdaSpatialRes","#Lambda: Spatial resolution;#Delta#varphi (rad);trig-assoc. resolution (cm);dec. length (cm)", |
348080d3 | 1037 | 20,-0.1,0.1,100,0.,10,2*nbins,lMin,lMax); |
1038 | fOutput->Add(fLambdaSpatialRes); | |
1039 | ||
1040 | ||
1041 | for(Int_t jj=0;jj<kNCent;jj++){ | |
1042 | for(Int_t k=0;k<kN1;k++){ | |
1043 | ||
1044 | // Monte-Carlo level: | |
1045 | if(fIsMC){ | |
fbaec09e | 1046 | snprintf(hNameHist,100, "fLambdadPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1]); |
f4a57119 | 1047 | fLambdadPhidEtaMC[jj*kN1+k] = new TH3F(hNameHist,"#Lambda MC: #Delta#varphi vs #Delta#eta vs p_{T,l}", |
348080d3 | 1048 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1049 | nbinsdEta,-1.5,1.5, | |
1050 | nbinsVtx,-10.,10.); | |
f4a57119 | 1051 | fLambdadPhidEtaMC[jj*kN1+k]->GetXaxis()->SetTitle("#Delta#varphi (rad)"); |
348080d3 | 1052 | fLambdadPhidEtaMC[jj*kN1+k]->GetYaxis()->SetTitle("#Delta#eta"); |
1053 | fLambdadPhidEtaMC[jj*kN1+k]->GetZaxis()->SetTitle("Vertex Z (cm)"); | |
1054 | fOutput->Add(fLambdadPhidEtaMC[jj*kN1+k]); | |
1055 | } | |
667b678a | 1056 | |
348080d3 | 1057 | // Reconstruction level: |
44972668 | 1058 | for(Int_t ll=0;ll<kNVtxZ;ll++){ |
1059 | snprintf(hNameHist,100, "fLambdadPhidEtaPtL_%.2f_%.2f_Cent_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1],ll); | |
f4a57119 | 1060 | fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll] = new TH3F(hNameHist,"#Lambda: #Delta#varphi vs #Delta#eta vs p_{T,l}", |
44972668 | 1061 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1062 | nbinsdEta,-1.5,1.5, | |
1063 | nbins,1.065,1.165); | |
f4a57119 | 1064 | fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetXaxis()->SetTitle("#Delta#varphi (rad)"); |
44972668 | 1065 | fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetYaxis()->SetTitle("#Delta#eta"); |
1066 | fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetZaxis()->SetTitle("Inv. Mass"); | |
1067 | fOutput->Add(fLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]); | |
1068 | } | |
348080d3 | 1069 | } |
667b678a | 1070 | } |
667b678a | 1071 | |
1072 | // Correlations (side-band): | |
1073 | fLambdaBckgDecLength | |
1074 | = new TH2F("fLambdaBckgDecLength","#Lambda Bckg: c#tau vs. p_{T,l}", | |
1075 | 100,0.,25.,nbinPtLP,pMin,ptMaxLP); | |
1076 | fLambdaBckgDecLength->GetXaxis()->SetTitle("c#tau (cm)"); | |
f4a57119 | 1077 | fLambdaBckgDecLength->GetYaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
667b678a | 1078 | fOutput->Add(fLambdaBckgDecLength); |
1079 | ||
1080 | fLambdaBckgDCADaugToPrimVtx | |
1081 | = new TH3F("fLambdaBckgDCADaugToPrimVtx","#Lambda Bckg: dca daughter vs. p_{T,l}", | |
1082 | 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP); | |
1083 | fLambdaBckgDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)"); | |
1084 | fLambdaBckgDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)"); | |
f4a57119 | 1085 | fLambdaBckgDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
667b678a | 1086 | fOutput->Add(fLambdaBckgDCADaugToPrimVtx); |
1087 | ||
1088 | fLambdaBckgEtaPhi = | |
f4a57119 | 1089 | new TH2F("fLambdaBckgEtaPhi","#Lambda Bckg: #varphi vs #eta", |
667b678a | 1090 | nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.); |
f4a57119 | 1091 | fLambdaBckgEtaPhi->GetXaxis()->SetTitle("#varphi (rad)"); |
667b678a | 1092 | fLambdaBckgEtaPhi->GetYaxis()->SetTitle("#eta"); |
1093 | fOutput->Add(fLambdaBckgEtaPhi); | |
1094 | ||
1095 | fLambdaBckgPhiRadio | |
f4a57119 | 1096 | = new TH2F("fLambdaBckgPhiRadio","#Lambda Bckg: #varphi vs l_{T}", |
667b678a | 1097 | nbinsPhi,0.,2.*TMath::Pi(),2*nbins,lMin,lMax); |
f4a57119 | 1098 | fLambdaBckgPhiRadio->GetXaxis()->SetTitle("#varphi (rad)"); |
667b678a | 1099 | fLambdaBckgPhiRadio->GetYaxis()->SetTitle("l_{T} (cm)"); |
1100 | fOutput->Add(fLambdaBckgPhiRadio); | |
1101 | ||
1102 | ||
1103 | fLambdaBckgDCANegDaugToPrimVtx | |
1104 | = new TH2F("fLambdaBckgDCANegDaugToPrimVtx","#Lambda Bckg: dca NegDaughter", | |
b6f9da99 | 1105 | 7,-0.5,6.5,90,0.,3.3); |
667b678a | 1106 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetTitle("MC Production"); |
1107 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec"); | |
1108 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary"); | |
b6f9da99 | 1109 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's"); |
1110 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades"); | |
1111 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv."); | |
1112 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother"); | |
1113 | fLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other"); | |
667b678a | 1114 | fLambdaBckgDCANegDaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg Daug (cm)"); |
1115 | fOutput->Add(fLambdaBckgDCANegDaugToPrimVtx); | |
1116 | ||
1117 | ||
1118 | fLambdaBckgDCAPosDaugToPrimVtx | |
1119 | = new TH2F("fLambdaBckgDCAPosDaugToPrimVtx","#Lambda Bckg: dca PosDaughter", | |
b6f9da99 | 1120 | 7,-0.5,6.5,90,0.,3.3); |
667b678a | 1121 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetTitle("MC Production"); |
1122 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec"); | |
1123 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary"); | |
b6f9da99 | 1124 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's"); |
1125 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades"); | |
1126 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv."); | |
1127 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother"); | |
1128 | fLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other"); | |
667b678a | 1129 | fLambdaBckgDCAPosDaugToPrimVtx->GetYaxis()->SetTitle("DCA Pos Daug (cm)"); |
1130 | fOutput->Add(fLambdaBckgDCAPosDaugToPrimVtx); | |
1131 | ||
1132 | ||
59e0735e | 1133 | // ****** AntiLambda ****** |
1134 | fAntiLambdaMass = | |
f4a57119 | 1135 | new TH3F("fAntiLambdaMass","Mass vs #it{p}_{T} for #bar{#Lambda}",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
59e0735e | 1136 | fAntiLambdaMass->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 1137 | fAntiLambdaMass->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
128e003c | 1138 | fAntiLambdaMass->GetZaxis()->SetTitle("centrality"); |
59e0735e | 1139 | fOutput->Add(fAntiLambdaMass); |
1140 | ||
ca96d60a | 1141 | fAntiLambdaMassEmbeded = |
f4a57119 | 1142 | new TH3F("fAntiLambdaMassEmbeded","Mass vs #it{p}_{T} for #bar{#Lambda} Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 1143 | fAntiLambdaMassEmbeded->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 1144 | fAntiLambdaMassEmbeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 1145 | fAntiLambdaMassEmbeded->GetZaxis()->SetTitle("centrality"); |
1146 | fOutput->Add(fAntiLambdaMassEmbeded); | |
1147 | ||
1148 | fAntiLambdaMass2 = | |
f4a57119 | 1149 | new TH3F("fAntiLambdaMass2","Mass vs #it{p}_{T} for #bar{#Lambda}",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 1150 | fAntiLambdaMass2->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 1151 | fAntiLambdaMass2->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 1152 | fAntiLambdaMass2->GetZaxis()->SetTitle("centrality"); |
1153 | fOutput->Add(fAntiLambdaMass2); | |
1154 | ||
1155 | fAntiLambdaMass2Embeded = | |
f4a57119 | 1156 | new TH3F("fAntiLambdaMass2Embeded","Mass vs #it{p}_{T} for #bar{#Lambda} Embeded",nbins,1.065,1.165,nbins,pMin,pMax,100,0.,100.); |
ca96d60a | 1157 | fAntiLambdaMass2Embeded->GetXaxis()->SetTitle("Mass (GeV/c^2)"); |
f4a57119 | 1158 | fAntiLambdaMass2Embeded->GetYaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); |
ca96d60a | 1159 | fAntiLambdaMass2Embeded->GetZaxis()->SetTitle("centrality"); |
1160 | fOutput->Add(fAntiLambdaMass2Embeded); | |
1161 | ||
f4a57119 | 1162 | fAntiLambdaMassPtEta = |
1163 | 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); | |
1164 | fOutput->Add(fAntiLambdaMassPtEta); | |
1165 | ||
bd903641 | 1166 | for(Int_t i=0; i<kNCent; i++){ |
1167 | fAntiLambdaMassPtRap[i] = | |
1168 | 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); | |
1169 | fOutput->Add(fAntiLambdaMassPtRap[i]); | |
1170 | } | |
59e0735e | 1171 | |
348080d3 | 1172 | fAntiLambdaMassPtPhi = |
f4a57119 | 1173 | 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 | 1174 | nbins,1.065,1.165,nbins,pMin,pMax,nbinsPhi,0.,2.*TMath::Pi()); |
59e0735e | 1175 | fOutput->Add(fAntiLambdaMassPtPhi); |
1176 | ||
1177 | ||
1178 | // Correlations: | |
59e0735e | 1179 | fAntiLambdaDCADaugToPrimVtx |
1180 | = new TH3F("fAntiLambdaDCADaugToPrimVtx","#bar{#Lambda} Bckg: dca daughter vs. p_{T,l}", | |
1181 | 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP); | |
1182 | fAntiLambdaDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)"); | |
1183 | fAntiLambdaDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)"); | |
f4a57119 | 1184 | fAntiLambdaDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
59e0735e | 1185 | fOutput->Add(fAntiLambdaDCADaugToPrimVtx); |
1186 | ||
348080d3 | 1187 | // Spatial Resoltuion between trigger- and asosciated- particles |
f4a57119 | 1188 | fAntiLambdaSpatialRes = new TH3F("fAntiLambdaSpatialRes","#bar{#Lambda}: Spatial resolution;#Delta#varphi (rad);trig-assoc. resolution (cm);dec. length (cm)", |
348080d3 | 1189 | 20,-0.1,0.1,100,0.,10,2*nbins,lMin,lMax); |
1190 | fOutput->Add(fAntiLambdaSpatialRes); | |
1191 | ||
1192 | for(Int_t jj=0;jj<kNCent;jj++){ | |
1193 | for(Int_t k=0;k<kN1;k++){ | |
1194 | ||
1195 | // Monte-Carlo level: | |
1196 | if(fIsMC){ | |
fbaec09e | 1197 | snprintf(hNameHist,100, "fAntiLambdadPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1]); |
f4a57119 | 1198 | fAntiLambdadPhidEtaMC[jj*kN1+k] = new TH3F(hNameHist,"#bar{#Lambda} MC: #Delta#varphi vs #Delta#eta vs p_{T,l}", |
348080d3 | 1199 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1200 | nbinsdEta,-1.5,1.5, | |
1201 | nbinsVtx,-10.,10.); | |
f4a57119 | 1202 | fAntiLambdadPhidEtaMC[jj*kN1+k]->GetXaxis()->SetTitle("#Delta#varphi (rad)"); |
348080d3 | 1203 | fAntiLambdadPhidEtaMC[jj*kN1+k]->GetYaxis()->SetTitle("#Delta#eta"); |
1204 | fAntiLambdadPhidEtaMC[jj*kN1+k]->GetZaxis()->SetTitle("Vertex Z (cm)"); | |
1205 | fOutput->Add(fAntiLambdadPhidEtaMC[jj*kN1+k]); | |
1206 | } | |
59e0735e | 1207 | |
348080d3 | 1208 | // Reconstruction level: |
44972668 | 1209 | for(Int_t ll=0;ll<kNVtxZ;ll++){ |
1210 | snprintf(hNameHist,100, "fAntiLambdadPhidEtaPtL_%.2f_%.2f_Cent_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[jj],kBinCent[jj+1],ll); | |
f4a57119 | 1211 | fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll] = new TH3F(hNameHist,"#bar{#Lambda}: #Delta#varphi vs #Delta#eta vs p_{T,l}", |
44972668 | 1212 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1213 | nbinsdEta,-1.5,1.5, | |
1214 | nbins,1.065,1.165); | |
f4a57119 | 1215 | fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetXaxis()->SetTitle("#Delta#varphi (rad)"); |
44972668 | 1216 | fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetYaxis()->SetTitle("#Delta#eta"); |
1217 | fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]->GetZaxis()->SetTitle("Inv. Mass"); | |
1218 | fOutput->Add(fAntiLambdadPhidEtaPtL[jj*kN1*kNVtxZ + k*kNVtxZ + ll]); | |
1219 | } | |
348080d3 | 1220 | } |
59e0735e | 1221 | } |
59e0735e | 1222 | |
1223 | // Correlations (side-band): | |
1224 | fAntiLambdaBckgDecLength | |
1225 | = new TH2F("fAntiLambdaBckgDecLength","#bar{#Lambda} Bckg: c#tau vs. p_{T,l}", | |
1226 | 100,0.,25.,nbinPtLP,pMin,ptMaxLP); | |
1227 | fAntiLambdaBckgDecLength->GetXaxis()->SetTitle("c#tau (cm)"); | |
f4a57119 | 1228 | fAntiLambdaBckgDecLength->GetYaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
59e0735e | 1229 | fOutput->Add(fAntiLambdaBckgDecLength); |
1230 | ||
1231 | fAntiLambdaBckgDCADaugToPrimVtx | |
1232 | = new TH3F("fAntiLambdaBckgDCADaugToPrimVtx","#bar{#Lambda} Bckg: dca daughter vs. p_{T,l}", | |
1233 | 90,0.,3.3,90,0.,3.3,nbinPtLP,pMin,ptMaxLP); | |
1234 | fAntiLambdaBckgDCADaugToPrimVtx->GetXaxis()->SetTitle("DCA Pos daug (cm)"); | |
1235 | fAntiLambdaBckgDCADaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg daug (cm)"); | |
f4a57119 | 1236 | fAntiLambdaBckgDCADaugToPrimVtx->GetZaxis()->SetTitle("p_{T,l} (GeV/#it{c})"); |
59e0735e | 1237 | fOutput->Add(fAntiLambdaBckgDCADaugToPrimVtx); |
1238 | ||
1239 | fAntiLambdaBckgEtaPhi = | |
f4a57119 | 1240 | new TH2F("fAntiLambdaBckgEtaPhi","#bar{#Lambda} Bckg: #varphi vs #eta;#varphi (rad);l_{T} (cm)", |
59e0735e | 1241 | nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.); |
59e0735e | 1242 | fOutput->Add(fAntiLambdaBckgEtaPhi); |
1243 | ||
1244 | fAntiLambdaBckgPhiRadio | |
f4a57119 | 1245 | = new TH2F("fAntiLambdaBckgPhiRadio","#bar{#Lambda} Bckg: #varphi vs l_{T};#varphi (rad);l_{T} (cm)", |
59e0735e | 1246 | nbinsPhi,0.,2.*TMath::Pi(),2*nbins,lMin,lMax); |
59e0735e | 1247 | fOutput->Add(fAntiLambdaBckgPhiRadio); |
1248 | ||
1249 | ||
1250 | fAntiLambdaBckgDCANegDaugToPrimVtx | |
1251 | = new TH2F("fAntiLambdaBckgDCANegDaugToPrimVtx","#bar{#Lambda} Bckg: dca NegDaughter", | |
b6f9da99 | 1252 | 7,-0.5,6.5,90,0.,3.3); |
59e0735e | 1253 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetTitle("MC Production"); |
1254 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec"); | |
1255 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary"); | |
b6f9da99 | 1256 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's"); |
1257 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades"); | |
1258 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv."); | |
1259 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother"); | |
1260 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other"); | |
59e0735e | 1261 | fAntiLambdaBckgDCANegDaugToPrimVtx->GetYaxis()->SetTitle("DCA Neg Daug (cm)"); |
1262 | fOutput->Add(fAntiLambdaBckgDCANegDaugToPrimVtx); | |
1263 | ||
1264 | ||
1265 | fAntiLambdaBckgDCAPosDaugToPrimVtx | |
1266 | = new TH2F("fAntiLambdaBckgDCAPosDaugToPrimVtx","#bar{#Lambda} Bckg: dca PosDaughter", | |
b6f9da99 | 1267 | 7,-0.5,6.5,90,0.,3.3); |
59e0735e | 1268 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetTitle("MC Production"); |
1269 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(1,"Rec"); | |
1270 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(2,"Primary"); | |
b6f9da99 | 1271 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(3,"V0's"); |
1272 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(4,"Cascades"); | |
1273 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(5,"Gamma conv."); | |
1274 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(6,"Unidentified mother"); | |
1275 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetXaxis()->SetBinLabel(7,"Other"); | |
59e0735e | 1276 | fAntiLambdaBckgDCAPosDaugToPrimVtx->GetYaxis()->SetTitle("DCA Pos Daug (cm)"); |
1277 | fOutput->Add(fAntiLambdaBckgDCAPosDaugToPrimVtx); | |
1278 | ||
59e0735e | 1279 | |
f4a57119 | 1280 | // Xi: correlations in MC |
1281 | if(fIsMC){ // Monte-Carlo level: | |
1282 | ||
1283 | // Pt of Xi as associated particles | |
1284 | fXiMinusPtMCAssoc = new TH2F("fXiMinusPtMCAssoc","Xi Minus MC (Assocaiated particle);#it{p}_{T} (GeV/#it{c});Centrality",50,0.,50.,100,0.,100.); | |
1285 | fOutput->Add(fXiMinusPtMCAssoc); | |
1286 | ||
1287 | // Pt of Xi as trigger particles | |
1288 | fXiMinusPtMCTrigger = new TH2F("fXiMinusPtMCTrigger","Xi Minus MC (Leadinf particle);#it{p}_{T} (GeV/#it{c});Centrality",50,0.,50.,100,0.,100.); | |
1289 | fOutput->Add(fXiMinusPtMCTrigger); | |
1290 | ||
1291 | // Correlations: h-Xi | |
1292 | for(Int_t jj=0;jj<kNCent;jj++){ | |
1293 | for(Int_t k=0;k<kN2;k++){ | |
1294 | ||
1295 | snprintf(hNameHist,100, "fXiMinusdPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV02[k],kPtBinV02[k+1],kBinCent[jj],kBinCent[jj+1]); | |
1296 | fXiMinusdPhidEtaMC[jj*kN2+k] = new TH3F(hNameHist,"Xi Minus MC: #Delta#varphi vs #Delta#eta vs p_{T,l}; #Delta#varphi (rad); #Delta#eta; Vertex Z (cm)", | |
1297 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), | |
1298 | nbinsdEta,-1.5,1.5, | |
1299 | nbinsVtx,-10.,10.); | |
1300 | fOutput->Add(fXiMinusdPhidEtaMC[jj*kN2+k]); | |
1301 | ||
1302 | ||
1303 | snprintf(hNameHist,100, "fXiMinusdPhidEtaMC2_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV02[k],kPtBinV02[k+1],kBinCent[jj],kBinCent[jj+1]); | |
1304 | fXiMinusdPhidEtaMC2[jj*kN2+k] = new TH3F(hNameHist,"Xi Minus MC: #Delta#varphi vs #Delta#eta vs p_{T,l}; #Delta#varphi (rad); #Delta#eta; Vertex Z (cm)", | |
1305 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), | |
1306 | nbinsdEta,-1.5,1.5, | |
1307 | nbinsVtx,-10.,10.); | |
1308 | fOutput->Add(fXiMinusdPhidEtaMC2[jj*kN2+k]); | |
1309 | ||
1310 | } | |
1311 | } | |
1312 | ||
1313 | // Correlations: Xi-h | |
1314 | for(Int_t jj=0;jj<kNCent;jj++){ | |
1315 | for(Int_t k=0;k<kN3;k++){ | |
1316 | snprintf(hNameHist,100, "fXiMinusdPhidEtaMC3_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV02[k],kPtBinV02[k+1],kBinCent[jj],kBinCent[jj+1]); | |
1d875c3e | 1317 | fXiMinusdPhidEtaMC3[jj*kN3+k] = new TH3F(hNameHist,"Xi Minus MC (LP): #Delta#varphi vs #Delta#eta vs p_{T,l}; #Delta#varphi (rad); #Delta#eta; Vertex Z (cm)", |
f4a57119 | 1318 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1319 | nbinsdEta,-1.5,1.5, | |
1320 | nbinsVtx,-10.,10.); | |
1321 | fOutput->Add(fXiMinusdPhidEtaMC3[jj*kN3+k]); | |
1322 | } | |
1323 | } | |
1324 | ||
1325 | } // End MC condition | |
1326 | ||
348080d3 | 1327 | // Gamma conversion |
1328 | for(Int_t jj=0;jj<kNCent;jj++){ | |
1329 | snprintf(hNameHist,100, "fGammaConversiondPhidEta_Cent_%.0f_%.0f",kBinCent[jj],kBinCent[jj+1]); | |
f4a57119 | 1330 | fGammaConversiondPhidEta[jj] = new TH3F(hNameHist,"Gamma Conversion: #Delta#varphi vs #Delta#eta;#Delta#varphi (rad);#Delta#eta;Vertex Z (cm)", |
348080d3 | 1331 | 2*nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1332 | nbinsdEta,-1.5,1.5, | |
1333 | nbinsVtx,-10.,10.); | |
1334 | fOutput->Add(fGammaConversiondPhidEta[jj]); | |
1335 | } | |
1336 | ||
bd903641 | 1337 | // hh correlations |
1338 | for(Int_t jj=0;jj<kNCent;jj++){ | |
1339 | for(Int_t k=0;k<kNc;k++){ | |
1340 | for(Int_t ll=0;ll<kNVtxZ;ll++){ | |
1341 | snprintf(hNameHist,100, "fChargeddPhidEta_Cent_%.0f_%.0f_pt_%.2lf_%.2lf_%d",kBinCent[jj],kBinCent[jj+1],kPtBinCharged[k],kPtBinCharged[k+1],ll); | |
1342 | fChargeddPhidEta[jj*kNc*kNVtxZ + k*kNVtxZ + ll] = new TH2F(hNameHist,"hh correlations: #Delta#varphi vs #Delta#eta;#Delta#varphi (rad);#Delta#eta)", | |
1343 | 72,-TMath::PiOver2(),3*TMath::PiOver2(), | |
1344 | nbinsdEta,-1.5,1.5); | |
1345 | fOutput->Add(fChargeddPhidEta[jj*kNc*kNVtxZ + k*kNVtxZ + ll | |
1346 | ]); | |
1347 | } | |
1348 | } | |
1349 | } | |
1350 | ||
1351 | ||
348080d3 | 1352 | // ============================================================= // |
1353 | ||
bd903641 | 1354 | // Charged ME: |
1355 | for(Int_t ll=0;ll<kNCent;ll++){ | |
1356 | for(Int_t k=0;k<kNc;k++){ | |
1357 | for(Int_t j=0;j<kNVtxZ;j++){ | |
1358 | ||
1359 | snprintf(hNameHist,100,"fChargeddPhidEtaME_%.2f_%.2f_%.0f_%.0f_%d",kPtBinCharged[k],kPtBinCharged[k+1],kBinCent[ll],kBinCent[ll+1],j); | |
1360 | fChargeddPhidEtaME[ll*kNc*kNVtxZ + k*kNVtxZ + j] = new TH2F(hNameHist,"Charged particles: #Delta#varphi vs #Delta#eta in ME;#Delta#varphi (rad);#Delta#eta", | |
1361 | 72,-TMath::PiOver2(),3*TMath::PiOver2(), | |
1362 | nbinsdEta,-1.5,1.5); | |
1363 | fOutputME->Add(fChargeddPhidEtaME[ll*kNc*kNVtxZ + k*kNVtxZ + j]); | |
1364 | } | |
1365 | } | |
1366 | } | |
1367 | ||
348080d3 | 1368 | // K0s in ME: |
1369 | for(Int_t ll=0;ll<kNCent;ll++){ | |
1370 | for(Int_t k=0;k<kN1;k++){ | |
1371 | for(Int_t j=0;j<kNVtxZ;j++){ | |
1372 | ||
fbaec09e | 1373 | snprintf(hNameHist,100,"fK0sdPhidEtaME_%.2f_%.2f_%.0f_%.0f_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[ll],kBinCent[ll+1],j); |
f4a57119 | 1374 | 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 | 1375 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1376 | nbinsdEta,-1.5,1.5); | |
1377 | fOutputME->Add(fK0sdPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j]); | |
1378 | } | |
1379 | } | |
1380 | } | |
1381 | ||
1382 | // Lambda in ME: | |
1383 | for(Int_t ll=0;ll<kNCent;ll++){ | |
1384 | for(Int_t k=0;k<kN1;k++){ | |
1385 | for(Int_t j=0;j<kNVtxZ;j++){ | |
1386 | ||
fbaec09e | 1387 | snprintf(hNameHist,100,"fLambdadPhidEtaME_%.2f_%.2f_%.0lf_%.0lf_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[ll],kBinCent[ll+1],j); |
f4a57119 | 1388 | fLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j] = new TH2F(hNameHist,"#Lambda: #Delta#varphi vs #Delta#eta in ME;#Delta#varphi (rad);#Delta#eta", |
348080d3 | 1389 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1390 | nbinsdEta,-1.5,1.5); | |
1391 | fOutputME->Add(fLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j]); | |
1392 | } | |
1393 | } | |
1394 | } | |
1395 | ||
1396 | // AntiLambda in ME: | |
1397 | for(Int_t ll=0;ll<kNCent;ll++){ | |
1398 | for(Int_t k=0;k<kN1;k++){ | |
1399 | for(Int_t j=0;j<kNVtxZ;j++){ | |
1400 | ||
fbaec09e | 1401 | snprintf(hNameHist,100,"fAntiLambdadPhidEtaME_%.2f_%.2f_%.0lf_%.0lf_%d",kPtBinV0[k],kPtBinV0[k+1],kBinCent[ll],kBinCent[ll+1],j); |
f4a57119 | 1402 | 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 | 1403 | nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(), |
1404 | nbinsdEta,-1.5,1.5); | |
1405 | fOutputME->Add(fAntiLambdadPhidEtaME[ll*kN1*kNVtxZ + k*kNVtxZ + j]); | |
1406 | } | |
1407 | } | |
1408 | } | |
1409 | ||
1410 | ||
6668159e | 1411 | // ============================================================= // |
1412 | ||
1413 | if(fDoQA){ | |
1414 | ||
ca96d60a | 1415 | // ---------------------------- |
6668159e | 1416 | // Quality Assurance K0s: |
6668159e | 1417 | |
ca96d60a | 1418 | // Transverse momentum: |
1419 | // --- signal --- | |
1420 | fK0sPtPosDaug = | |
f4a57119 | 1421 | new TH2F("fK0sPtPosDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1422 | fOutputQA->Add(fK0sPtPosDaug); |
6668159e | 1423 | |
ca96d60a | 1424 | fK0sPtNegDaug = |
f4a57119 | 1425 | new TH2F("fK0sPtNegDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1426 | fOutputQA->Add(fK0sPtNegDaug); |
6668159e | 1427 | |
ca96d60a | 1428 | // --- background --- |
1429 | fK0sBckgPtPosDaug = | |
f4a57119 | 1430 | new TH2F("fK0sBckgPtPosDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1431 | fOutputQA->Add(fK0sBckgPtPosDaug); |
1432 | ||
1433 | fK0sBckgPtNegDaug = | |
f4a57119 | 1434 | new TH2F("fK0sBckgPtNegDaug","K^{0}_{S}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1435 | fOutputQA->Add(fK0sBckgPtNegDaug); |
6668159e | 1436 | |
1437 | // Phi Eta | |
1438 | // --- signal --- | |
1439 | fK0sPhiEtaPosDaug = | |
f4a57119 | 1440 | 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 | 1441 | fOutputQA->Add(fK0sPhiEtaPosDaug); |
1442 | ||
1443 | fK0sPhiEtaNegDaug = | |
f4a57119 | 1444 | 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 | 1445 | fOutputQA->Add(fK0sPhiEtaNegDaug); |
1446 | ||
1447 | // --- background --- | |
1448 | fK0sBckgPhiEtaPosDaug = | |
f4a57119 | 1449 | 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 | 1450 | fOutputQA->Add(fK0sBckgPhiEtaPosDaug); |
1451 | ||
1452 | fK0sBckgPhiEtaNegDaug = | |
f4a57119 | 1453 | 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 | 1454 | fOutputQA->Add(fK0sBckgPhiEtaNegDaug); |
1455 | ||
59e0735e | 1456 | // Distance of closest approach: |
6668159e | 1457 | // --- signal --- |
1458 | fK0sDCAPosDaug = | |
f4a57119 | 1459 | new TH2F("fK0sDCAPosDaug","K^{0}_{S}: dca Pos;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1460 | fOutputQA->Add(fK0sDCAPosDaug); |
1461 | ||
1462 | fK0sDCANegDaug = | |
f4a57119 | 1463 | new TH2F("fK0sDCANegDaug","K^{0}_{S}: dca Neg;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1464 | fOutputQA->Add(fK0sDCANegDaug); |
1465 | ||
1466 | // --- background --- | |
1467 | fK0sBckgDCAPosDaug = | |
f4a57119 | 1468 | new TH2F("fK0sBckgDCAPosDaug","K^{0}_{S} Bckg: dca Pos;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1469 | fOutputQA->Add(fK0sBckgDCAPosDaug); |
1470 | ||
1471 | fK0sBckgDCANegDaug = | |
f4a57119 | 1472 | new TH2F("fK0sBckgDCANegDaug","K^{0}_{S} Bckg: dca Neg;dca;#it{p}_{T} V0",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1473 | fOutputQA->Add(fK0sBckgDCANegDaug); |
1474 | ||
59e0735e | 1475 | // Decay vertex reconstruction: |
6668159e | 1476 | // --- signal --- |
1477 | fK0sDecayPos = | |
1478 | new TH3F("fK0sDecayPos","K^{0}_{S}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax); | |
1479 | fK0sDecayPos->GetXaxis()->SetTitle("Pos. X"); | |
1480 | fK0sDecayPos->GetYaxis()->SetTitle("Pos. Y"); | |
f4a57119 | 1481 | fK0sDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1482 | fOutputQA->Add(fK0sDecayPos); |
1483 | ||
1484 | fK0sDecayVertex = | |
348080d3 | 1485 | new TH2F("fK0sDecayVertex","K^{0}_{S}: decay length",100,0.,100.,nbins,pMin,pMax); |
6668159e | 1486 | fK0sDecayVertex->GetXaxis()->SetTitle("l_{T}"); |
f4a57119 | 1487 | fK0sDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1488 | fOutputQA->Add(fK0sDecayVertex); |
1489 | ||
6668159e | 1490 | // --- background --- |
1491 | fK0sBckgDecayPos = | |
1492 | new TH3F("fK0sBckgDecayPos","K^{0}_{S}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax); | |
1493 | fK0sBckgDecayPos->GetXaxis()->SetTitle("Pos. X"); | |
1494 | fK0sBckgDecayPos->GetYaxis()->SetTitle("Pos. Y"); | |
f4a57119 | 1495 | fK0sBckgDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1496 | fOutputQA->Add(fK0sBckgDecayPos); |
1497 | ||
1498 | fK0sBckgDecayVertex = | |
1499 | new TH2F("fK0sBckgDecayVertex","K^{0}_{S} Bckg: decay vertex",100,0.,100.,nbins,pMin,pMax); | |
1500 | fK0sBckgDecayVertex->GetXaxis()->SetTitle("l_{T}"); | |
f4a57119 | 1501 | fK0sBckgDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1502 | fOutputQA->Add(fK0sBckgDecayVertex); |
1503 | ||
59e0735e | 1504 | // Cosine of the Pointing Angle: |
6668159e | 1505 | // --- signal --- |
1506 | fK0sCPA = | |
b6f9da99 | 1507 | new TH2F("fK0sCPA","K^{0}_{S}: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax); |
6668159e | 1508 | fK0sCPA->GetXaxis()->SetTitle("cpa"); |
f4a57119 | 1509 | fK0sCPA->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1510 | fOutputQA->Add(fK0sCPA); |
1511 | // --- background --- | |
1512 | fK0sBckgCPA = | |
b6f9da99 | 1513 | new TH2F("fK0sBckgCPA","K^{0}_{S} Bckg: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax); |
6668159e | 1514 | fK0sBckgCPA->GetXaxis()->SetTitle("cpa"); |
f4a57119 | 1515 | fK0sBckgCPA->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1516 | fOutputQA->Add(fK0sBckgCPA); |
1517 | ||
59e0735e | 1518 | // DCA between daughters: |
6668159e | 1519 | // --- signal --- |
1520 | fK0sDCAV0Daug = | |
1521 | new TH2F("fK0sDCAV0Daug","K^{0}_{S}: DCA daughters",60,0,1.2,nbins,pMin,pMax); | |
1522 | fK0sDCAV0Daug->GetXaxis()->SetTitle("dca between daughters"); | |
f4a57119 | 1523 | fK0sDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1524 | fOutputQA->Add(fK0sDCAV0Daug); |
1525 | // --- background --- | |
1526 | fK0sBckgDCAV0Daug = | |
1527 | new TH2F("fK0sBckgDCAV0Daug","K^{0}_{S} Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax); | |
1528 | fK0sBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters"); | |
f4a57119 | 1529 | fK0sBckgDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1530 | fOutputQA->Add(fK0sBckgDCAV0Daug); |
1531 | ||
59e0735e | 1532 | // Number of TPC clusters: |
1533 | // --- signal --- | |
31f87a49 | 1534 | fK0sNClustersTPC = // Positive momentum to positive daugther - Negative momentum to negative daugther |
f4a57119 | 1535 | new TH3F("fK0sNClustersTPC","K^{0}_{S};#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax); |
59e0735e | 1536 | fOutputQA->Add(fK0sNClustersTPC); |
1537 | // --- background --- | |
31f87a49 | 1538 | fK0sBckgNClustersTPC = // Positive momentum to positive daugther - Negative momentum to negative daugther |
f4a57119 | 1539 | new TH3F("fK0sBckgNClustersTPC","K^{0}_{S} Bckg;#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax); |
59e0735e | 1540 | fOutputQA->Add(fK0sBckgNClustersTPC); |
1541 | ||
1542 | // Number of ITS clusters: | |
1543 | // --- signal --- | |
1544 | fK0sNClustersITSPos = | |
f4a57119 | 1545 | 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 | 1546 | fOutputQA->Add(fK0sNClustersITSPos); |
1547 | ||
1548 | fK0sNClustersITSNeg = | |
f4a57119 | 1549 | 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 | 1550 | fOutputQA->Add(fK0sNClustersITSNeg); |
1551 | // --- background --- | |
1552 | fK0sBckgNClustersITSPos = | |
f4a57119 | 1553 | 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 | 1554 | fOutputQA->Add(fK0sBckgNClustersITSPos); |
1555 | ||
1556 | fK0sBckgNClustersITSNeg = | |
f4a57119 | 1557 | 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 | 1558 | fOutputQA->Add(fK0sBckgNClustersITSNeg); |
1559 | ||
ca96d60a | 1560 | // ---------------------------- |
6668159e | 1561 | // Quality Assurance Lambda: |
ca96d60a | 1562 | |
1563 | // Transverse momentum: | |
1564 | // --- signal --- | |
1565 | fLambdaPtPosDaug = | |
f4a57119 | 1566 | new TH2F("fLambdaPtPosDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1567 | fOutputQA->Add(fLambdaPtPosDaug); |
1568 | ||
1569 | fLambdaPtNegDaug = | |
f4a57119 | 1570 | new TH2F("fLambdaPtNegDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1571 | fOutputQA->Add(fLambdaPtNegDaug); |
1572 | ||
1573 | // --- background --- | |
1574 | fLambdaBckgPtPosDaug = | |
f4a57119 | 1575 | new TH2F("fLambdaBckgPtPosDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1576 | fOutputQA->Add(fLambdaBckgPtPosDaug); |
1577 | ||
1578 | fLambdaBckgPtNegDaug = | |
f4a57119 | 1579 | new TH2F("fLambdaBckgPtNegDaug","#Lambda: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1580 | fOutputQA->Add(fLambdaBckgPtNegDaug); |
6668159e | 1581 | |
1582 | // Phi Eta | |
1583 | // --- signal --- | |
1584 | fLambdaPhiEtaPosDaug = | |
f4a57119 | 1585 | new TH3F("fLambdaPhiEtaPosDaug","#Lambda: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1586 | fLambdaPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi"); | |
6668159e | 1587 | fLambdaPhiEtaPosDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1588 | fLambdaPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1589 | fOutputQA->Add(fLambdaPhiEtaPosDaug); |
1590 | ||
1591 | fLambdaPhiEtaNegDaug = | |
f4a57119 | 1592 | new TH3F("fLambdaPhiEtaNegDaug","#Lambda: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1593 | fLambdaPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi"); | |
6668159e | 1594 | fLambdaPhiEtaNegDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1595 | fLambdaPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1596 | fOutputQA->Add(fLambdaPhiEtaNegDaug); |
1597 | ||
1598 | // --- background --- | |
1599 | fLambdaBckgPhiEtaPosDaug = | |
f4a57119 | 1600 | new TH3F("fLambdaBckgPhiEtaPosDaug","#Lambda: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1601 | fLambdaBckgPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi"); | |
6668159e | 1602 | fLambdaBckgPhiEtaPosDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1603 | fLambdaBckgPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1604 | fOutputQA->Add(fLambdaBckgPhiEtaPosDaug); |
1605 | ||
1606 | fLambdaBckgPhiEtaNegDaug = | |
f4a57119 | 1607 | new TH3F("fLambdaBckgPhiEtaNegDaug","#Lambda: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1608 | fLambdaBckgPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi"); | |
6668159e | 1609 | fLambdaBckgPhiEtaNegDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1610 | fLambdaBckgPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1611 | fOutputQA->Add(fLambdaBckgPhiEtaNegDaug); |
1612 | ||
1613 | // Distance of closest approach | |
1614 | // --- signal --- | |
1615 | fLambdaDCAPosDaug = | |
e280e70b | 1616 | new TH2F("fLambdaDCAPosDaug","#Lambda: dca Pos",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1617 | fLambdaDCAPosDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1618 | fLambdaDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1619 | fOutputQA->Add(fLambdaDCAPosDaug); |
1620 | ||
1621 | fLambdaDCANegDaug = | |
e280e70b | 1622 | new TH2F("fLambdaDCANegDaug","#Lambda: dca Neg",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1623 | fLambdaDCANegDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1624 | fLambdaDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1625 | fOutputQA->Add(fLambdaDCANegDaug); |
1626 | ||
1627 | // --- background --- | |
1628 | fLambdaBckgDCAPosDaug = | |
e280e70b | 1629 | new TH2F("fLambdaBckgDCAPosDaug","#Lambda Bckg: dca Pos",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1630 | fLambdaBckgDCAPosDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1631 | fLambdaBckgDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1632 | fOutputQA->Add(fLambdaBckgDCAPosDaug); |
1633 | ||
1634 | fLambdaBckgDCANegDaug = | |
e280e70b | 1635 | new TH2F("fLambdaBckgDCANegDaug","#Lambda Bckg: dca Neg",66,0.,3.3,nbins,pMin,pMax); |
6668159e | 1636 | fLambdaBckgDCANegDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1637 | fLambdaBckgDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1638 | fOutputQA->Add(fLambdaBckgDCANegDaug); |
1639 | ||
6668159e | 1640 | |
1641 | // Decay vertex reconstruction | |
1642 | // --- signal --- | |
1643 | fLambdaDecayPos = | |
1644 | new TH3F("fLambdaDecayPos","#Lambda: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax); | |
1645 | fLambdaDecayPos->GetXaxis()->SetTitle("Pos. X"); | |
1646 | fLambdaDecayPos->GetYaxis()->SetTitle("Pos. Y"); | |
f4a57119 | 1647 | fLambdaDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1648 | fOutputQA->Add(fLambdaDecayPos); |
1649 | ||
1650 | fLambdaDecayVertex = | |
348080d3 | 1651 | new TH2F("fLambdaDecayVertex","#Lambda: decay length",100,0.,100.,nbins,pMin,pMax); |
6668159e | 1652 | fLambdaDecayVertex->GetXaxis()->SetTitle("l_{T}"); |
f4a57119 | 1653 | fLambdaDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1654 | fOutputQA->Add(fLambdaDecayVertex); |
1655 | ||
6668159e | 1656 | // --- background --- |
1657 | fLambdaBckgDecayPos = | |
1658 | new TH3F("fLambdaBckgDecayPos","#Lambda Bckg: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax); | |
1659 | fLambdaBckgDecayPos->GetXaxis()->SetTitle("Pos. X"); | |
1660 | fLambdaBckgDecayPos->GetYaxis()->SetTitle("Pos. Y"); | |
f4a57119 | 1661 | fLambdaBckgDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1662 | fOutputQA->Add(fLambdaBckgDecayPos); |
1663 | ||
1664 | fLambdaBckgDecayVertex = | |
348080d3 | 1665 | new TH2F("fLambdaBckgDecayVertex","#Lambda Bckg: decay length",100,0.,100.,nbins,pMin,pMax); |
6668159e | 1666 | fLambdaBckgDecayVertex->GetXaxis()->SetTitle("l_{T}"); |
f4a57119 | 1667 | fLambdaBckgDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1668 | fOutputQA->Add(fLambdaBckgDecayVertex); |
1669 | ||
6668159e | 1670 | // Cosine of the Pointing Angle |
1671 | // --- signal --- | |
1672 | fLambdaCPA = | |
b6f9da99 | 1673 | new TH2F("fLambdaCPA","#Lambda: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax); |
6668159e | 1674 | fLambdaCPA->GetXaxis()->SetTitle("cpa"); |
f4a57119 | 1675 | fLambdaCPA->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1676 | fOutputQA->Add(fLambdaCPA); |
1677 | // --- background --- | |
1678 | fLambdaBckgCPA = | |
b6f9da99 | 1679 | new TH2F("fLambdaBckgCPA","#Lambda Bckg: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax); |
6668159e | 1680 | fLambdaBckgCPA->GetXaxis()->SetTitle("cpa"); |
f4a57119 | 1681 | fLambdaBckgCPA->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1682 | fOutputQA->Add(fLambdaBckgCPA); |
1683 | ||
1684 | // DCA between daughters | |
1685 | // --- signal --- | |
1686 | fLambdaDCAV0Daug = | |
1687 | new TH2F("fLambdaDCAV0Daug","#Lambda: DCA daughters",60,0,1.2,nbins,pMin,pMax); | |
1688 | fLambdaDCAV0Daug->GetXaxis()->SetTitle("dca between daughters"); | |
f4a57119 | 1689 | fLambdaDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1690 | fOutputQA->Add(fLambdaDCAV0Daug); |
1691 | // --- background --- | |
1692 | fLambdaBckgDCAV0Daug = | |
1693 | new TH2F("fLambdaBckgDCAV0Daug","#Lambda Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax); | |
1694 | fLambdaBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters"); | |
f4a57119 | 1695 | fLambdaBckgDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
6668159e | 1696 | fOutputQA->Add(fLambdaBckgDCAV0Daug); |
59e0735e | 1697 | |
1698 | // Number of TPC clusters: | |
1699 | // --- signal --- | |
1700 | fLambdaNClustersTPC = | |
f4a57119 | 1701 | new TH3F("fLambdaNClustersTPC","#Lambda;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax); |
59e0735e | 1702 | fOutputQA->Add(fLambdaNClustersTPC); |
1703 | // --- background --- | |
1704 | fLambdaBckgNClustersTPC = | |
f4a57119 | 1705 | new TH3F("fLambdaBckgNClustersTPC","#Lambda Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax); |
59e0735e | 1706 | fOutputQA->Add(fLambdaBckgNClustersTPC); |
1707 | ||
1708 | // Number of ITS clusters: | |
1709 | // --- signal --- | |
1710 | fLambdaNClustersITSPos = | |
f4a57119 | 1711 | 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 | 1712 | fOutputQA->Add(fLambdaNClustersITSPos); |
1713 | ||
1714 | fLambdaNClustersITSNeg = | |
f4a57119 | 1715 | 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 | 1716 | fOutputQA->Add(fLambdaNClustersITSNeg); |
1717 | // --- background --- | |
1718 | fLambdaBckgNClustersITSPos = | |
f4a57119 | 1719 | 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 | 1720 | fOutputQA->Add(fLambdaBckgNClustersITSPos); |
1721 | ||
1722 | fLambdaBckgNClustersITSNeg = | |
f4a57119 | 1723 | 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 | 1724 | fOutputQA->Add(fLambdaBckgNClustersITSNeg); |
1725 | ||
1726 | ||
ca96d60a | 1727 | // ---------------------------- |
59e0735e | 1728 | // Quality Assurance AntiLambda: |
ca96d60a | 1729 | // Transverse momentum: |
1730 | // --- signal --- | |
1731 | fAntiLambdaPtPosDaug = | |
f4a57119 | 1732 | new TH2F("fAntiLambdaPtPosDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1733 | fOutputQA->Add(fAntiLambdaPtPosDaug); |
1734 | ||
1735 | fAntiLambdaPtNegDaug = | |
f4a57119 | 1736 | new TH2F("fAntiLambdaPtNegDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1737 | fOutputQA->Add(fAntiLambdaPtNegDaug); |
1738 | ||
1739 | // --- background --- | |
1740 | fAntiLambdaBckgPtPosDaug = | |
f4a57119 | 1741 | new TH2F("fAntiLambdaBckgPtPosDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1742 | fOutputQA->Add(fAntiLambdaBckgPtPosDaug); |
1743 | ||
1744 | fAntiLambdaBckgPtNegDaug = | |
f4a57119 | 1745 | new TH2F("fAntiLambdaBckgPtNegDaug","#bar{#Lambda}: #it{p}_{T};#it{p}_{T};#it{p}_{T} V0",nbins,pMin,pMax,nbins,pMin,pMax); |
ca96d60a | 1746 | fOutputQA->Add(fAntiLambdaBckgPtNegDaug); |
59e0735e | 1747 | |
1748 | // Phi Eta | |
1749 | // --- signal --- | |
1750 | fAntiLambdaPhiEtaPosDaug = | |
f4a57119 | 1751 | new TH3F("fAntiLambdaPhiEtaPosDaug","#bar{#Lambda}: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1752 | fAntiLambdaPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi"); | |
59e0735e | 1753 | fAntiLambdaPhiEtaPosDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1754 | fAntiLambdaPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1755 | fOutputQA->Add(fAntiLambdaPhiEtaPosDaug); |
1756 | ||
1757 | fAntiLambdaPhiEtaNegDaug = | |
f4a57119 | 1758 | new TH3F("fAntiLambdaPhiEtaNegDaug","#bar{#Lambda}: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1759 | fAntiLambdaPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi"); | |
59e0735e | 1760 | fAntiLambdaPhiEtaNegDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1761 | fAntiLambdaPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1762 | fOutputQA->Add(fAntiLambdaPhiEtaNegDaug); |
1763 | ||
1764 | // --- background --- | |
1765 | fAntiLambdaBckgPhiEtaPosDaug = | |
f4a57119 | 1766 | new TH3F("fAntiLambdaBckgPhiEtaPosDaug","#bar{#Lambda}: #varphi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1767 | fAntiLambdaBckgPhiEtaPosDaug->GetXaxis()->SetTitle("#varphi"); | |
59e0735e | 1768 | fAntiLambdaBckgPhiEtaPosDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1769 | fAntiLambdaBckgPhiEtaPosDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1770 | fOutputQA->Add(fAntiLambdaBckgPhiEtaPosDaug); |
1771 | ||
1772 | fAntiLambdaBckgPhiEtaNegDaug = | |
f4a57119 | 1773 | new TH3F("fAntiLambdaBckgPhiEtaNegDaug","#bar{#Lambda}: #varphi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax); |
1774 | fAntiLambdaBckgPhiEtaNegDaug->GetXaxis()->SetTitle("#varphi"); | |
59e0735e | 1775 | fAntiLambdaBckgPhiEtaNegDaug->GetYaxis()->SetTitle("#eta"); |
f4a57119 | 1776 | fAntiLambdaBckgPhiEtaNegDaug->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1777 | fOutputQA->Add(fAntiLambdaBckgPhiEtaNegDaug); |
1778 | ||
1779 | // Distance of closest approach | |
1780 | // --- signal --- | |
1781 | fAntiLambdaDCAPosDaug = | |
e280e70b | 1782 | new TH2F("fAntiLambdaDCAPosDaug","#bar{#Lambda}: dca Pos",66,0.,3.3,nbins,pMin,pMax); |
59e0735e | 1783 | fAntiLambdaDCAPosDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1784 | fAntiLambdaDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1785 | fOutputQA->Add(fAntiLambdaDCAPosDaug); |
1786 | ||
1787 | fAntiLambdaDCANegDaug = | |
e280e70b | 1788 | new TH2F("fAntiLambdaDCANegDaug","#bar{#Lambda}: dca Neg",66,0.,3.3,nbins,pMin,pMax); |
59e0735e | 1789 | fAntiLambdaDCANegDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1790 | fAntiLambdaDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1791 | fOutputQA->Add(fAntiLambdaDCANegDaug); |
1792 | ||
1793 | // --- background --- | |
1794 | fAntiLambdaBckgDCAPosDaug = | |
e280e70b | 1795 | new TH2F("fAntiLambdaBckgDCAPosDaug","#bar{#Lambda} Bckg: dca Pos",66,0.,3.3,nbins,pMin,pMax); |
59e0735e | 1796 | fAntiLambdaBckgDCAPosDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1797 | fAntiLambdaBckgDCAPosDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1798 | fOutputQA->Add(fAntiLambdaBckgDCAPosDaug); |
1799 | ||
1800 | fAntiLambdaBckgDCANegDaug = | |
e280e70b | 1801 | new TH2F("fAntiLambdaBckgDCANegDaug","#bar{#Lambda} Bckg: dca Neg",66,0.,3.3,nbins,pMin,pMax); |
59e0735e | 1802 | fAntiLambdaBckgDCANegDaug->GetXaxis()->SetTitle("dca"); |
f4a57119 | 1803 | fAntiLambdaBckgDCANegDaug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1804 | fOutputQA->Add(fAntiLambdaBckgDCANegDaug); |
1805 | ||
59e0735e | 1806 | // Decay vertex reconstruction |
1807 | // --- signal --- | |
1808 | fAntiLambdaDecayPos = | |
1809 | new TH3F("fAntiLambdaDecayPos","#bar{#Lambda}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax); | |
1810 | fAntiLambdaDecayPos->GetXaxis()->SetTitle("Pos. X"); | |
1811 | fAntiLambdaDecayPos->GetYaxis()->SetTitle("Pos. Y"); | |
f4a57119 | 1812 | fAntiLambdaDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1813 | fOutputQA->Add(fAntiLambdaDecayPos); |
1814 | ||
1815 | fAntiLambdaDecayVertex = | |
348080d3 | 1816 | new TH2F("fAntiLambdaDecayVertex","#bar{#Lambda}: decay length",100,0.,100.,nbins,pMin,pMax); |
59e0735e | 1817 | fAntiLambdaDecayVertex->GetXaxis()->SetTitle("l_{T}"); |
f4a57119 | 1818 | fAntiLambdaDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1819 | fOutputQA->Add(fAntiLambdaDecayVertex); |
1820 | ||
59e0735e | 1821 | // --- background --- |
1822 | fAntiLambdaBckgDecayPos = | |
1823 | new TH3F("fAntiLambdaBckgDecayPos","#bar{#Lambda} Bckg: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax); | |
1824 | fAntiLambdaBckgDecayPos->GetXaxis()->SetTitle("Pos. X"); | |
1825 | fAntiLambdaBckgDecayPos->GetYaxis()->SetTitle("Pos. Y"); | |
f4a57119 | 1826 | fAntiLambdaBckgDecayPos->GetZaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1827 | fOutputQA->Add(fAntiLambdaBckgDecayPos); |
1828 | ||
1829 | fAntiLambdaBckgDecayVertex = | |
348080d3 | 1830 | new TH2F("fAntiLambdaBckgDecayVertex","#bar{#Lambda} Bckg: decay length",100,0.,100.,nbins,pMin,pMax); |
59e0735e | 1831 | fAntiLambdaBckgDecayVertex->GetXaxis()->SetTitle("l_{T}"); |
f4a57119 | 1832 | fAntiLambdaBckgDecayVertex->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1833 | fOutputQA->Add(fAntiLambdaBckgDecayVertex); |
1834 | ||
59e0735e | 1835 | // Cosine of the Pointing Angle |
1836 | // --- signal --- | |
1837 | fAntiLambdaCPA = | |
b6f9da99 | 1838 | new TH2F("fAntiLambdaCPA","#bar{#Lambda}: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax); |
59e0735e | 1839 | fAntiLambdaCPA->GetXaxis()->SetTitle("cpa"); |
f4a57119 | 1840 | fAntiLambdaCPA->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1841 | fOutputQA->Add(fAntiLambdaCPA); |
1842 | // --- background --- | |
1843 | fAntiLambdaBckgCPA = | |
b6f9da99 | 1844 | new TH2F("fAntiLambdaBckgCPA","#bar{#Lambda} Bckg: cosine of the pointing angle",100,0.98,1.,nbins,pMin,pMax); |
59e0735e | 1845 | fAntiLambdaBckgCPA->GetXaxis()->SetTitle("cpa"); |
f4a57119 | 1846 | fAntiLambdaBckgCPA->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1847 | fOutputQA->Add(fAntiLambdaBckgCPA); |
1848 | ||
1849 | // DCA between daughters | |
1850 | // --- signal --- | |
1851 | fAntiLambdaDCAV0Daug = | |
1852 | new TH2F("fAntiLambdaDCAV0Daug","#bar{#Lambda}: DCA daughters",60,0,1.2,nbins,pMin,pMax); | |
1853 | fAntiLambdaDCAV0Daug->GetXaxis()->SetTitle("dca between daughters"); | |
f4a57119 | 1854 | fAntiLambdaDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1855 | fOutputQA->Add(fAntiLambdaDCAV0Daug); |
1856 | // --- background --- | |
1857 | fAntiLambdaBckgDCAV0Daug = | |
1858 | new TH2F("fAntiLambdaBckgDCAV0Daug","#bar{#Lambda} Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax); | |
1859 | fAntiLambdaBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters"); | |
f4a57119 | 1860 | fAntiLambdaBckgDCAV0Daug->GetYaxis()->SetTitle("#it{p}_{T} V0"); |
59e0735e | 1861 | fOutputQA->Add(fAntiLambdaBckgDCAV0Daug); |
1862 | ||
1863 | // Number of TPC clusters: | |
1864 | // --- signal --- | |
1865 | fAntiLambdaNClustersTPC = | |
f4a57119 | 1866 | new TH3F("fAntiLambdaNClustersTPC","#bar{#Lambda};#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax); |
59e0735e | 1867 | fOutputQA->Add(fAntiLambdaNClustersTPC); |
1868 | // --- background --- | |
1869 | fAntiLambdaBckgNClustersTPC = | |
f4a57119 | 1870 | new TH3F("fAntiLambdaBckgNClustersTPC","#bar{#Lambda} Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax); |
59e0735e | 1871 | fOutputQA->Add(fAntiLambdaBckgNClustersTPC); |
1872 | ||
1873 | // Number of ITS clusters: | |
1874 | // --- signal --- | |
1875 | fAntiLambdaNClustersITSPos = | |
f4a57119 | 1876 | 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 | 1877 | fOutputQA->Add(fAntiLambdaNClustersITSPos); |
1878 | ||
1879 | fAntiLambdaNClustersITSNeg = | |
f4a57119 | 1880 | 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 | 1881 | fOutputQA->Add(fAntiLambdaNClustersITSNeg); |
1882 | // --- background --- | |
1883 | fAntiLambdaBckgNClustersITSPos = | |
f4a57119 | 1884 | 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 | 1885 | fOutputQA->Add(fAntiLambdaBckgNClustersITSPos); |
1886 | ||
1887 | fAntiLambdaBckgNClustersITSNeg = | |
f4a57119 | 1888 | 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 | 1889 | fOutputQA->Add(fAntiLambdaBckgNClustersITSNeg); |
6668159e | 1890 | |
1891 | } | |
1892 | ||
6668159e | 1893 | // ============================================================= // |
348080d3 | 1894 | |
667b678a | 1895 | PostData(1, fOutput); |
348080d3 | 1896 | PostData(2, fOutputME); |
1897 | PostData(3, fOutputQA); | |
667b678a | 1898 | |
1899 | } | |
1900 | ||
1901 | //___________________________________________________________________________________________ | |
1902 | ||
348080d3 | 1903 | static Int_t VtxBin(Double_t vtx) |
1904 | { | |
1905 | // Bin in vertez position Z | |
1906 | Int_t bin = -1; | |
1907 | for(Int_t i=0;i<kNVtxZ;i++) | |
f4a57119 | 1908 | if ( (vtx>=kBinVtxZ[i]) && (vtx<kBinVtxZ[i+1]) ) |
348080d3 | 1909 | bin = i; |
1910 | ||
1911 | return bin; | |
1912 | ||
1913 | } | |
1914 | ||
1915 | //___________________________________________________________________________________________ | |
1916 | ||
1917 | static Int_t PtBin(Double_t pt) | |
1918 | { | |
1919 | // Bin in pt | |
1920 | Int_t bin = -1; | |
781e881f | 1921 | for(Int_t i=0;i<kN1;i++) |
f4a57119 | 1922 | if ( (pt>=kPtBinV0[i]) && (pt<kPtBinV0[i+1]) ) |
348080d3 | 1923 | bin = i; |
1924 | ||
1925 | return bin; | |
1926 | ||
1927 | } | |
1928 | ||
1929 | //___________________________________________________________________________________________ | |
1930 | ||
1931 | static Int_t CentBin(Double_t cent) | |
1932 | { | |
1933 | // Bin in pt | |
1934 | Int_t bin = -1; | |
1935 | for(Int_t i=0;i<kNCent;i++) | |
f4a57119 | 1936 | if ( (cent>=kBinCent[i]) && (cent<kBinCent[i+1]) ) |
348080d3 | 1937 | bin = i; |
1938 | ||
1939 | return bin; | |
1940 | ||
1941 | } | |
1942 | ||
1943 | //___________________________________________________________________________________________ | |
1944 | ||
1945 | Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptTrack(AliAODTrack *t) | |
667b678a | 1946 | { |
1947 | // Track criteria for primaries particles | |
bd903641 | 1948 | /* |
1949 | // TPC only tracks | |
348080d3 | 1950 | if (TMath::Abs(t->Eta())>0.8 ) return kFALSE; |
1951 | if (!(t->TestFilterMask(1<<7))) return kFALSE; | |
1952 | ||
1953 | Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1); | |
1954 | if (nCrossedRowsTPC < 70) return kFALSE; | |
348080d3 | 1955 | */ |
59e0735e | 1956 | |
bd903641 | 1957 | // Hybrid tracks |
1958 | if( !(t->TestFilterBit(272)) ) return kFALSE; | |
1959 | //if(!t->IsHybridGlobalConstrainedGlobal()) return kFALSE; | |
1960 | ||
1961 | // Point in the SPD | |
1962 | Int_t SPDHits = t->HasPointOnITSLayer(0) + t->HasPointOnITSLayer(1); | |
348080d3 | 1963 | if( SPDHits ) |
1964 | fTriggerWiSPDHit->Fill(1.5); | |
1965 | ||
667b678a | 1966 | return kTRUE; |
1967 | } | |
59e0735e | 1968 | |
667b678a | 1969 | //___________________________________________________________________________________________ |
1970 | ||
ca96d60a | 1971 | Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptTrackV0(const AliAODTrack *t) |
667b678a | 1972 | { |
1973 | // Track criteria for daughter particles of V0 candidate | |
667b678a | 1974 | if (!t->IsOn(AliAODTrack::kTPCrefit)) return kFALSE; |
667b678a | 1975 | Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1); |
ca96d60a | 1976 | if (nCrossedRowsTPC<fDaugNClsTPC) return kFALSE; |
59e0735e | 1977 | |
667b678a | 1978 | return kTRUE; |
1979 | } | |
1980 | ||
667b678a | 1981 | //___________________________________________________________________________________________ |
1982 | ||
1983 | Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptV0(AliAODVertex *vtx, const AliAODv0 *v1) | |
1984 | { | |
1985 | // Selection for accepting V0 candidates | |
1986 | ||
1987 | if (v1->GetOnFlyStatus()) return kFALSE; | |
1988 | ||
1989 | //if (v1->Pt() < pMin) return kFALSE; *** | |
1990 | ||
1991 | const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(1); | |
1992 | const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(0); | |
1993 | ||
1994 | if( !ntrack1 || !ptrack1 ) return kFALSE; | |
1995 | if( !AcceptTrackV0(ntrack1) ) return kFALSE; | |
1996 | if( !AcceptTrackV0(ptrack1) ) return kFALSE; | |
1997 | ||
1998 | if( ntrack1->Charge() == ptrack1->Charge()) | |
1999 | return kFALSE; | |
2000 | ||
2001 | // Daughters: pseudo-rapidity cut | |
2002 | if ( TMath::Abs(ntrack1->Eta()) > fMaxEtaDaughter || | |
2003 | TMath::Abs(ptrack1->Eta()) > fMaxEtaDaughter ) | |
2004 | return kFALSE; | |
2005 | ||
2006 | // Daughters: transverse momentum cut | |
2007 | if ( ( ntrack1->Pt() < fMinPtDaughter ) || | |
2008 | ( ptrack1->Pt() < fMinPtDaughter ) ) | |
2009 | return kFALSE; | |
2010 | ||
2011 | // Daughters: Impact parameter of daughter to prim vtx | |
2012 | Float_t xy = v1->DcaNegToPrimVertex(); | |
2013 | if (TMath::Abs(xy)<fDCAToPrimVtx) return kFALSE; | |
2014 | xy = v1->DcaPosToPrimVertex(); | |
2015 | if (TMath::Abs(xy)<fDCAToPrimVtx) return kFALSE; | |
2016 | ||
2017 | // Daughters: DCA | |
b6a9eae2 | 2018 | Float_t dca = v1->DcaV0Daughters(); |
667b678a | 2019 | if (dca>fMaxDCADaughter) return kFALSE; |
2020 | ||
2021 | // V0: Cosine of the pointing angle | |
b6a9eae2 | 2022 | Float_t cpa=v1->CosPointingAngle(vtx); |
667b678a | 2023 | if (cpa<fMinCPA) return kFALSE; |
2024 | ||
2025 | // V0: Fiducial volume | |
2026 | Double_t xyz[3]; v1->GetSecondaryVtx(xyz); | |
b6a9eae2 | 2027 | Float_t r2=xyz[0]*xyz[0] + xyz[1]*xyz[1]; |
348080d3 | 2028 | if (r2<5.*5.) return kFALSE; |
667b678a | 2029 | if (r2>lMax*lMax) return kFALSE; |
2030 | ||
2031 | return kTRUE; | |
2032 | } | |
2033 | ||
2034 | //___________________________________________________________________________________________ | |
2035 | ||
b6a9eae2 | 2036 | static Float_t dPHI(Float_t phi1, Float_t phi2) |
667b678a | 2037 | { |
2038 | // Calculate the phi difference between two tracks | |
b6a9eae2 | 2039 | Float_t deltaPhi = phi1 - phi2; |
667b678a | 2040 | |
2041 | if (deltaPhi<-TMath::PiOver2()) deltaPhi = deltaPhi + 2*(TMath::Pi()); | |
2042 | if (deltaPhi>(3*TMath::PiOver2())) deltaPhi = deltaPhi - 2*(TMath::Pi()); | |
2043 | return deltaPhi; | |
2044 | } | |
2045 | ||
2046 | //___________________________________________________________________________________________ | |
2047 | ||
b6a9eae2 | 2048 | static Float_t MyRapidity(Float_t rE, Float_t rPz) |
667b678a | 2049 | { |
2050 | // Local method for rapidity | |
2051 | return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13)); | |
2052 | } | |
2053 | ||
2054 | //___________________________________________________________________________________________ | |
2055 | ||
348080d3 | 2056 | static Int_t SameTrack(AliAODTrack *trk, const AliAODTrack *daugTrk) |
667b678a | 2057 | { |
2058 | // Local method to compaire the momentum between two tracks | |
2059 | ||
348080d3 | 2060 | //double const kEpsilon = 0.01; |
667b678a | 2061 | Int_t isSamePt = 0; |
2062 | ||
348080d3 | 2063 | /* |
2064 | Float_t p[3]; trk->GetPxPyPz(p); | |
2065 | Float_t pNegTrk[3]; nTrk->GetPxPyPz(pNegTrk); | |
2066 | Float_t pPosTrk[3]; pTrk->GetPxPyPz(pPosTrk); | |
667b678a | 2067 | |
b6f9da99 | 2068 | if( ( fabs(p[0]-pNegTrk[0])<kEpsilon && |
348080d3 | 2069 | fabs(p[1]-pNegTrk[1])<kEpsilon && |
2070 | fabs(p[2]-pNegTrk[2])<kEpsilon ) | |
667b678a | 2071 | isSamePt = 1; |
6668159e | 2072 | */ |
348080d3 | 2073 | |
2074 | if( (TMath::Abs(daugTrk->GetID())+1)==(TMath::Abs(trk->GetID())) ) | |
2075 | isSamePt = 1; | |
667b678a | 2076 | |
6668159e | 2077 | /* |
348080d3 | 2078 | if( (TMath::Abs(nTrk->GetID()))==(TMath::Abs(trk->GetID())) || |
2079 | (TMath::Abs(pTrk->GetID()))==(TMath::Abs(trk->GetID())) ) isSamePt = 1; | |
6668159e | 2080 | */ |
2081 | ||
667b678a | 2082 | return isSamePt; |
2083 | ||
2084 | } | |
2085 | ||
2086 | //___________________________________________________________________________________________ | |
2087 | ||
348080d3 | 2088 | static Float_t SpatialResolution(Float_t p1x,Float_t p1y,Float_t p2x,Float_t p2y,Float_t dist) |
2089 | { | |
2090 | // Obtains the spacial resolution between trigger and V0 | |
2091 | // within a distance in (deltaPhi,deltaEta) < 0.1 | |
2092 | ||
2093 | Float_t res = -100.; | |
2094 | ||
2095 | res = TMath::Sqrt( p1x*p1x + p1y*p1y )*TMath::Sqrt( p2x*p2x + p2y*p2y ); | |
2096 | res = (p1x*p2x + p1y*p2y)/res; | |
2097 | ||
2098 | res = TMath::ACos(res); | |
2099 | ||
2100 | return res = TMath::Sin(res)*dist; | |
2101 | ||
2102 | } | |
2103 | ||
2104 | //___________________________________________________________________________________________ | |
2105 | ||
667b678a | 2106 | void AliAnalysisTaskLambdaOverK0sJets::RecCascade(AliAODTrack *trk1,const AliAODTrack *trk2,const AliAODTrack *trkBch,TString histo) |
2107 | { | |
2108 | // Local method to reconstruct cascades candidates from the combinations of three tracks | |
2109 | // The input tracks correspond to the trigger particle and the daughter tracks of the V0 candidate (correlation step) | |
2110 | // The trigger particle track will be always consider as a possible daughter of the V0 which coming from the Cascade decay. | |
2111 | // The daughters of the V0 candidates are switched to be the bachelor track for the Cascade reconstruction. | |
2112 | ||
b6a9eae2 | 2113 | Float_t lMassBach=0., lPtot2Bach=0., lEBach=0.; |
2114 | Float_t lMassLambda=0., lPtot2Lambda=0., lELambda = 0.; | |
2115 | Float_t pLambda[3] = {0.,0.,0.}; | |
2116 | Float_t pCascade[3] = {0.,0.,0.}; | |
2117 | Float_t lMassCascade = 0., lPtot2Cascade=0.; | |
667b678a | 2118 | |
2119 | // Two loops are done to consider the posibility to reconstruct a Xi or an Omega | |
2120 | for(Int_t i=0;i<2;i++){ | |
2121 | ||
2122 | // 0. Check the charge for both tracks: trk1 & trk2. | |
2123 | // Usefull in the Lambda step. | |
2124 | if( trk1->Charge() == trk2->Charge() ) | |
2125 | continue; | |
2126 | ||
2127 | // 1. Bachelor: Allocation for the track | |
2128 | if(i==0) // Xi | |
2129 | lMassBach = TDatabasePDG::Instance()->GetParticle(kPiMinus)->Mass(); | |
2130 | else if(i==1) //Omega | |
2131 | lMassBach = TDatabasePDG::Instance()->GetParticle(kKMinus)->Mass(); | |
2132 | ||
2133 | lPtot2Bach = TMath::Power(trkBch->P(),2); | |
2134 | ||
2135 | lEBach = TMath::Sqrt(lPtot2Bach + lMassBach*lMassBach); | |
2136 | ||
2137 | // 2. Lambda: Kinematical properties | |
2138 | lMassLambda = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); | |
2139 | ||
2140 | pLambda[0] = trk1->Px() + trk2->Px(); | |
2141 | pLambda[1] = trk1->Py() + trk2->Py(); | |
2142 | pLambda[2] = trk1->Pz() + trk2->Pz(); | |
2143 | ||
2144 | lPtot2Lambda = pLambda[0]*pLambda[0] + pLambda[1]*pLambda[1] + pLambda[2]*pLambda[2]; | |
2145 | ||
2146 | lELambda = TMath::Sqrt(lPtot2Lambda + lMassLambda*lMassLambda); | |
2147 | ||
2148 | // 3. Cascade: Reconstruction | |
2149 | pCascade[0] = pLambda[0] + trkBch->Px(); | |
2150 | pCascade[1] = pLambda[1] + trkBch->Py(); | |
2151 | pCascade[2] = pLambda[2] + trkBch->Pz(); | |
2152 | ||
2153 | lPtot2Cascade = pCascade[0]*pCascade[0] + pCascade[1]*pCascade[1] + pCascade[2]*pCascade[2]; | |
2154 | ||
2155 | lMassCascade = TMath::Sqrt( TMath::Power(lEBach+lELambda,2) - lPtot2Cascade ); | |
2156 | ||
2157 | // 4. Filling histograms | |
2158 | if( histo.Contains("K0s") ) { | |
f25a6d07 | 2159 | if(i==0) // Xi |
348080d3 | 2160 | fV0MassCascade->Fill(lMassCascade,1); |
2161 | else if(i==1) //Omega | |
2162 | fV0MassCascade->Fill(lMassCascade,3); | |
2163 | } | |
2164 | else if( histo.Contains("AntiLambda") ) { | |
2165 | if(i==0) // Xi | |
2166 | fV0MassCascade->Fill(lMassCascade,9); | |
f25a6d07 | 2167 | else if(i==1) //Omega |
348080d3 | 2168 | fV0MassCascade->Fill(lMassCascade,11); |
667b678a | 2169 | } |
2170 | else if( histo.Contains("Lambda") ) { | |
f25a6d07 | 2171 | if(i==0) // Xi |
348080d3 | 2172 | fV0MassCascade->Fill(lMassCascade,5); |
f25a6d07 | 2173 | else if(i==1) //Omega |
348080d3 | 2174 | fV0MassCascade->Fill(lMassCascade,7); |
667b678a | 2175 | } |
2176 | ||
667b678a | 2177 | } |
348080d3 | 2178 | |
667b678a | 2179 | } |
2180 | ||
2181 | //___________________________________________________________________________________________ | |
2182 | ||
348080d3 | 2183 | void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTriggered, Int_t iArray, Int_t idTrig) |
667b678a | 2184 | { |
2185 | // Three options for the 'step' variable: | |
2186 | // 1) TriggerCheck | |
348080d3 | 2187 | // 2) Reconstruction |
667b678a | 2188 | |
fbaec09e | 2189 | AliAODTrack *trkTrig = 0x0; |
348080d3 | 2190 | Float_t ptTrig = -100.; |
2191 | Float_t phiTrig = -100.; | |
2192 | Float_t etaTrig = -100.; | |
2193 | Double_t pTrig[3]; | |
f25a6d07 | 2194 | |
348080d3 | 2195 | if( (step==kTriggerCheck || isTriggered) && idTrig>=0 ){ |
2196 | trkTrig = (AliAODTrack*)fAOD->GetTrack(idTrig); | |
667b678a | 2197 | ptTrig = trkTrig->Pt(); |
2198 | phiTrig = trkTrig->Phi(); | |
2199 | etaTrig = trkTrig->Eta(); | |
348080d3 | 2200 | trkTrig->GetPxPyPz(pTrig); |
667b678a | 2201 | } |
2202 | ||
667b678a | 2203 | // ************************************************* |
2204 | // Centrality selection | |
2205 | AliCentrality *cent = fAOD->GetCentrality(); | |
b6a9eae2 | 2206 | Float_t centrality = cent->GetCentralityPercentile("V0M"); |
b6f9da99 | 2207 | Int_t curCentBin = CentBin(centrality); |
667b678a | 2208 | |
2209 | // ************************************************* | |
2210 | // MC Event | |
2211 | TClonesArray *stackMC = 0x0; | |
b6a9eae2 | 2212 | Float_t mcXv=0., mcYv=0., mcZv=0.; |
667b678a | 2213 | |
2214 | if(fIsMC){ | |
2215 | TList *lst = fAOD->GetList(); | |
2216 | stackMC = (TClonesArray*)lst->FindObject(AliAODMCParticle::StdBranchName()); | |
2217 | if (!stackMC) { | |
2218 | Printf("ERROR: stack not available"); | |
2219 | } | |
2220 | ||
2221 | AliAODMCHeader *mcHdr = | |
2222 | (AliAODMCHeader*)lst->FindObject(AliAODMCHeader::StdBranchName()); | |
2223 | ||
2224 | mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ(); | |
2225 | } | |
2226 | ||
2227 | // ************************************************* | |
2228 | // V0 loop - AOD | |
2229 | const AliAODVertex *vtx=fAOD->GetPrimaryVertex(); | |
b6a9eae2 | 2230 | Float_t xv=vtx->GetX(), yv=vtx->GetY(), zv=vtx->GetZ(); |
667b678a | 2231 | Int_t nV0sTot = fAOD->GetNumberOfV0s(); |
348080d3 | 2232 | |
667b678a | 2233 | for (Int_t iV0 = 0; iV0 < nV0sTot; iV0++) { |
2234 | ||
2235 | AliAODv0 *v0=fAOD->GetV0(iV0); | |
2236 | if (!v0) continue; | |
2237 | if (!AcceptV0(fAOD->GetPrimaryVertex(),v0)) continue; | |
2238 | ||
2239 | const AliAODTrack *ntrack=(AliAODTrack *)v0->GetDaughter(1); | |
2240 | const AliAODTrack *ptrack=(AliAODTrack *)v0->GetDaughter(0); | |
59e0735e | 2241 | |
667b678a | 2242 | // Decay vertex |
2243 | Double_t xyz[3]; v0->GetSecondaryVtx(xyz); | |
348080d3 | 2244 | Float_t dx=xyz[0]-xv, dy=xyz[1]-yv;//, dz=xyz[2]-zv; |
ca96d60a | 2245 | |
59e0735e | 2246 | // Momentum: 2D & 3D |
b6a9eae2 | 2247 | Float_t pt=TMath::Sqrt(v0->Pt2V0()); |
348080d3 | 2248 | //Float_t p=v0->P(); |
ca96d60a | 2249 | |
2250 | // Decay length: 2D & 3D | |
2251 | Float_t lt=TMath::Sqrt(dx*dx + dy*dy); | |
2252 | //Float_t dl=TMath::Sqrt(dx*dx + dy*dy + dz*dz); | |
348080d3 | 2253 | |
b6a9eae2 | 2254 | Float_t dlK = 0.4977*lt/pt; |
2255 | Float_t dlL = 1.1157*lt/pt; | |
348080d3 | 2256 | /* |
2257 | Float_t dlK = v0->MassK0Short()*dl/p; | |
2258 | Float_t dlL = v0->MassLambda()*dl/p; | |
2259 | Float_t dlAL = v0->MassAntiLambda()*dl/p; | |
59e0735e | 2260 | */ |
667b678a | 2261 | |
2262 | // ctau | |
348080d3 | 2263 | Bool_t ctK=kTRUE; if (dlK > fMaxCtau*2.68 || dlK < fMinCtau*2.68) ctK=kFALSE; |
2264 | Bool_t ctL=kTRUE; if (dlL > fMaxCtau*7.89 || dlL < fMinCtau*7.89) ctL=kFALSE; | |
2265 | Bool_t ctAL=kTRUE; if (dlL > fMaxCtau*7.89 || dlL < fMinCtau*7.89) ctAL=kFALSE; | |
667b678a | 2266 | |
ca96d60a | 2267 | // ---- Daughter tracks properties: |
2268 | // Pt | |
2269 | Float_t lPtNeg = ntrack->Pt(); | |
2270 | Float_t lPtPos = ptrack->Pt(); | |
2271 | // Momentum | |
2272 | Double_t pNegDaug[3]; ntrack->GetPxPyPz(pNegDaug); | |
2273 | Double_t pPosDaug[3]; ptrack->GetPxPyPz(pPosDaug); | |
2274 | // Phi | |
2275 | Float_t phiNeg = ntrack->Phi(); | |
2276 | Float_t phiPos = ptrack->Phi(); | |
2277 | // Eta | |
2278 | Float_t etaNeg = ntrack->Eta(); | |
2279 | Float_t etaPos = ptrack->Eta(); | |
2280 | // Number of TPC Clusters | |
2281 | Float_t nClsTPCPos = ptrack->GetTPCClusterInfo(2,1); | |
2282 | Float_t nClsTPCNeg = ntrack->GetTPCClusterInfo(2,1); | |
2283 | // Number of clusters of ITS | |
2284 | Double_t posITSNcls = ptrack->GetITSNcls(); | |
2285 | Double_t negITSNcls = ntrack->GetITSNcls(); | |
2286 | ||
2287 | // ---- V0 candidate properties: | |
667b678a | 2288 | // Armenteros variables: |
b6a9eae2 | 2289 | Float_t lAlphaV0 = v0->AlphaV0(); |
2290 | Float_t lPtArmV0 = v0->PtArmV0(); | |
ca96d60a | 2291 | // dca to primary vertex |
2292 | Float_t dcaNeg = v0->DcaNegToPrimVertex(); | |
2293 | Float_t dcaPos = v0->DcaPosToPrimVertex(); | |
2294 | // dca between daughters | |
2295 | Float_t dca = v0->DcaV0Daughters(); | |
2296 | // cpa | |
2297 | Float_t cpa = v0->CosPointingAngle(fAOD->GetPrimaryVertex()); | |
2298 | // eta | |
2299 | Float_t lEta = v0->PseudoRapV0(); | |
2300 | // phi | |
2301 | Float_t lPhi = v0->Phi(); | |
2302 | //lPhi = ( (lPhi < 0) ? lPhi + 2*TMath::Pi() : lPhi ); | |
2303 | ||
2304 | // ********************************** | |
2305 | // Disentangle the V0 candidate | |
2306 | Float_t massK0s = 0., mK0s = 0., sK0s = 0.; | |
2307 | Float_t massLambda = 0., mLambda = 0., sL = 0.; | |
2308 | Float_t massAntiLambda = 0., sAL = 0.; | |
2309 | ||
2310 | Bool_t isCandidate2K0s = kFALSE; | |
2311 | massK0s = v0->MassK0Short(); | |
2312 | mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass(); | |
2313 | if( fCollision.Contains("PbPb2010") ) | |
2314 | sK0s = kCteK0s2010[curCentBin] + kLinearK0s2010[curCentBin]*pt; | |
2315 | else if( fCollision.Contains("PbPb2011") ) | |
2316 | sK0s = kCteK0s2011[curCentBin] + kLinearK0s2011[curCentBin]*pt; | |
2317 | if ( TMath::Abs(mK0s-massK0s) < 3*sK0s ) isCandidate2K0s = kTRUE; | |
667b678a | 2318 | |
ca96d60a | 2319 | Bool_t isCandidate2Lambda = kFALSE; |
2320 | massLambda = v0->MassLambda(); | |
2321 | mLambda = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); | |
2322 | if( fCollision.Contains("PbPb2010") ) | |
2323 | sL = kCteLambda2010[curCentBin] + kLinearLambda2010[curCentBin]*pt; | |
2324 | else if( fCollision.Contains("PbPb2011") ) | |
2325 | sL = kCteLambda2011[curCentBin] + kLinearLambda2011[curCentBin]*pt; | |
2326 | if (TMath::Abs(mLambda-massLambda) < 3*sL) isCandidate2Lambda = kTRUE; | |
2327 | ||
2328 | Bool_t isCandidate2LambdaBar = kFALSE; | |
2329 | massAntiLambda = v0->MassAntiLambda(); | |
2330 | if( fCollision.Contains("PbPb2010") ) | |
2331 | sAL = kCteAntiLambda2010[curCentBin] + kLinearAntiLambda2010[curCentBin]*pt; | |
2332 | else if( fCollision.Contains("PbPb2011") ) | |
2333 | sAL = kCteAntiLambda2011[curCentBin] + kLinearAntiLambda2011[curCentBin]*pt; | |
2334 | if (TMath::Abs(mLambda-massAntiLambda) < 3*sAL) isCandidate2LambdaBar = kTRUE; | |
2335 | ||
2336 | // ********************************** | |
667b678a | 2337 | // MC Association: |
53e7de27 | 2338 | Bool_t lComeFromSigma = kTRUE; |
2339 | Bool_t lCheckMcK0Short = kTRUE; | |
2340 | Bool_t lCheckMcLambda = kTRUE; | |
2341 | Bool_t lCheckMcAntiLambda = kTRUE; | |
31f87a49 | 2342 | Bool_t lComeFromXi = kTRUE; |
667b678a | 2343 | |
ca96d60a | 2344 | Int_t lMCAssocNegDaug = -100; |
2345 | Int_t lMCAssocPosDaug = -100; | |
667b678a | 2346 | |
2347 | // ********* MC - Association ********* | |
2348 | // In case of injected-MC, the correlations might be done with only natural particles | |
2349 | Bool_t isNaturalPart = kTRUE; | |
348080d3 | 2350 | if(step==kReconstruction){ |
667b678a | 2351 | |
2352 | if(fIsMC){ | |
2353 | if(!stackMC) goto noas; | |
2354 | ||
ca96d60a | 2355 | isNaturalPart = kFALSE; |
2356 | ||
53e7de27 | 2357 | lComeFromSigma = kFALSE; |
2358 | lCheckMcK0Short = kFALSE; | |
2359 | lCheckMcLambda = kFALSE; | |
2360 | lCheckMcAntiLambda = kFALSE; | |
31f87a49 | 2361 | lComeFromXi = kFALSE; |
2362 | ||
667b678a | 2363 | Int_t ntrkMC=stackMC->GetEntriesFast(); |
2364 | ||
2365 | Int_t nlab = TMath::Abs(ntrack->GetLabel());//** UInt_t | |
2366 | Int_t plab = TMath::Abs(ptrack->GetLabel()); | |
2367 | ||
2368 | // To avoid futher problems | |
2369 | if ( (nlab<0 || plab<0) || | |
2370 | (nlab>=ntrkMC || plab>=ntrkMC) ) | |
2371 | goto noas; | |
2372 | ||
2373 | AliAODMCParticle *nPart=(AliAODMCParticle*)stackMC->UncheckedAt(nlab); | |
2374 | AliAODMCParticle *pPart=(AliAODMCParticle*)stackMC->UncheckedAt(plab); | |
fe6eeffd | 2375 | |
2376 | if(!nPart || !pPart) goto noas; | |
2377 | ||
667b678a | 2378 | // MC origin of daughters: Primaries? |
2379 | if( nPart->IsPhysicalPrimary() ) lMCAssocNegDaug = 1; | |
2380 | if( pPart->IsPhysicalPrimary() ) lMCAssocPosDaug = 1; | |
667b678a | 2381 | |
bef5b5b9 | 2382 | /* |
667b678a | 2383 | if ( TMath::Abs(nPart->Eta()) > fMaxEtaDaughter || |
2384 | TMath::Abs(pPart->Eta()) > fMaxEtaDaughter ) | |
2385 | goto noas; | |
bef5b5b9 | 2386 | */ |
ca96d60a | 2387 | /* |
667b678a | 2388 | // Daughter momentum cut |
2389 | if ( ( nPart->Pt() < fMinPtDaughter ) || | |
ca96d60a | 2390 | ( pPart->Pt() < fMinPtDaughter ) ) |
2391 | goto noas; | |
2392 | */ | |
2393 | ||
667b678a | 2394 | // ---------------------------------------- |
2395 | ||
2396 | Int_t lPDGCodeNegDaughter = nPart->GetPdgCode(); | |
2397 | Int_t lPDGCodePosDaughter = pPart->GetPdgCode(); | |
2398 | ||
2399 | Int_t ipMother = pPart->GetMother(); | |
2400 | Int_t inMother = nPart->GetMother(); | |
2401 | ||
b6f9da99 | 2402 | if(inMother<0 || inMother>=ntrkMC) lMCAssocNegDaug = 6; |
2403 | if(ipMother<0 || ipMother>=ntrkMC) lMCAssocPosDaug = 6; | |
667b678a | 2404 | |
2405 | if(inMother<0 || inMother>=ntrkMC) { goto noas;} | |
2406 | if(inMother != ipMother) { // did the negative daughter decay ? | |
2407 | AliAODMCParticle *negMotherOfMotherPart = (AliAODMCParticle*)stackMC->UncheckedAt(inMother); | |
2408 | if (negMotherOfMotherPart->GetMother() != ipMother) | |
2409 | goto noas; | |
2410 | } | |
2411 | ||
2412 | if (ipMother<0 || ipMother>=ntrkMC) | |
2413 | goto noas; | |
2414 | ||
2415 | AliAODMCParticle *p0=(AliAODMCParticle*)stackMC->UncheckedAt(ipMother); | |
2416 | if(!p0) | |
2417 | goto noas; | |
2418 | ||
2419 | // ---------------------------------------- | |
2420 | ||
2421 | if ( (ipMother>=fEndOfHijingEvent) && | |
2422 | (fEndOfHijingEvent!=-1) && | |
2423 | (p0->GetMother()<0) ) | |
2424 | isNaturalPart = kFALSE; | |
2425 | else isNaturalPart = kTRUE; | |
2426 | ||
2427 | // ---------------------------------------- | |
2428 | ||
2429 | if(fSeparateInjPart && !isNaturalPart) goto noas; | |
2430 | ||
2431 | Int_t lPDGCodeV0 = p0->GetPdgCode(); | |
2432 | ||
2433 | // MC origin of daughters: | |
2434 | //Decay from Weak Decay? | |
2435 | if( (TMath::Abs(lPDGCodeV0) == kK0Short) || (TMath::Abs(lPDGCodeV0) == kLambda0) || | |
2436 | (TMath::Abs(lPDGCodeV0) == kSigmaMinus) || (TMath::Abs(lPDGCodeV0) == kSigmaPlus) || | |
b6f9da99 | 2437 | (TMath::Abs(lPDGCodeV0) == kSigma0) ) |
667b678a | 2438 | { lMCAssocNegDaug = 2; lMCAssocPosDaug = 2; } |
b6f9da99 | 2439 | // Cascade Gamma conversion |
2440 | if( (TMath::Abs(lPDGCodeV0) == kXiMinus) || | |
2441 | (TMath::Abs(lPDGCodeV0) == kOmegaMinus) ) | |
2442 | { lMCAssocNegDaug = 3; lMCAssocPosDaug = 3; } | |
667b678a | 2443 | // Gamma conversion |
2444 | else if( TMath::Abs(lPDGCodeV0) == kGamma ) | |
b6f9da99 | 2445 | { lMCAssocNegDaug = 4; lMCAssocPosDaug = 4; } |
667b678a | 2446 | // Unidentied mother: |
2447 | else | |
b6f9da99 | 2448 | { lMCAssocNegDaug = 5; lMCAssocPosDaug = 5; } |
667b678a | 2449 | |
2450 | ||
2451 | Int_t lIndexMotherOfMother = p0->GetMother(); | |
2452 | Int_t lPdgcodeMotherOfMother = 0; | |
53e7de27 | 2453 | if (lIndexMotherOfMother != -1) { |
667b678a | 2454 | AliAODMCParticle *lMCAODMotherOfMother=(AliAODMCParticle*)stackMC->UncheckedAt(lIndexMotherOfMother); |
53e7de27 | 2455 | if (lMCAODMotherOfMother) {lPdgcodeMotherOfMother = lMCAODMotherOfMother->GetPdgCode();} |
667b678a | 2456 | } |
2457 | ||
ca96d60a | 2458 | /* |
667b678a | 2459 | // Daughter momentum cut: ! FIX it in case of AOD ! //MC or REc |
2460 | if ( (nPart->Pt() < fMinPtDaughter ) || | |
ca96d60a | 2461 | (pPart->Pt() < fMinPtDaughter ) ) |
2462 | goto noas; | |
2463 | */ | |
2464 | ||
667b678a | 2465 | if( (lPDGCodeV0 != kK0Short) && |
2466 | (lPDGCodeV0 != kLambda0) && | |
2467 | (lPDGCodeV0 != kLambda0Bar) ) | |
2468 | goto noas; | |
2469 | ||
667b678a | 2470 | |
2471 | // ---------------------------------------- | |
2472 | ||
2473 | // K0s | |
2474 | if( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) && | |
2475 | (inMother==ipMother) && (lPDGCodeV0==310) ) { | |
2476 | ||
2477 | if ( ((AliAODMCParticle*)stackMC->UncheckedAt(ipMother))->IsPrimary() ) | |
2478 | lCheckMcK0Short = kTRUE; | |
53e7de27 | 2479 | |
667b678a | 2480 | } |
2481 | // Lambda | |
2482 | else if( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) && | |
2483 | (inMother==ipMother) && (lPDGCodeV0==3122) ){ | |
2484 | ||
2485 | if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) || | |
2486 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) || | |
2487 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) || | |
2488 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3114) | |
2489 | ) lComeFromSigma = kTRUE; | |
2490 | else lComeFromSigma = kFALSE; | |
2491 | ||
2492 | if ( ((AliAODMCParticle*)stackMC->UncheckedAt(ipMother))->IsPrimary() || | |
2493 | ( !(((AliAODMCParticle*)stackMC->UncheckedAt(ipMother))->IsPrimary() ) | |
2494 | && (lComeFromSigma==kTRUE) ) | |
2495 | ) lCheckMcLambda = kTRUE; | |
2496 | ||
31f87a49 | 2497 | |
2498 | if ( TMath::Abs(lPdgcodeMotherOfMother) == 3312) | |
2499 | lComeFromXi = kTRUE; | |
2500 | ||
667b678a | 2501 | } |
2502 | // AntiLambda | |
2503 | else if( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) && | |
2504 | (inMother==ipMother) && (lPDGCodeV0==-3122) ) { | |
2505 | ||
2506 | ||
2507 | if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) || | |
2508 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) || | |
2509 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) || | |
2510 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3114) | |
2511 | ) lComeFromSigma = kTRUE; | |
2512 | else lComeFromSigma = kFALSE; | |
2513 | ||
2514 | if ( ((AliAODMCParticle*)stackMC->UncheckedAt(ipMother))->IsPrimary() || | |
2515 | ( (!((AliAODMCParticle*)stackMC->UncheckedAt(ipMother))->IsPrimary()) | |
2516 | && (lComeFromSigma==kTRUE) ) | |
2517 | ) lCheckMcAntiLambda = kTRUE; | |
2518 | ||
f4a57119 | 2519 | if ( TMath::Abs(lPdgcodeMotherOfMother) == 3312 || TMath::Abs(lPdgcodeMotherOfMother) == 3322 ) |
31f87a49 | 2520 | lComeFromXi = kTRUE; |
2521 | ||
667b678a | 2522 | } |
2523 | ||
2524 | // ---------------------------------------- | |
2525 | ||
2526 | if ((p0->Pt())<pMin) goto noas; | |
2527 | if (TMath::Abs(p0->Y())>fYMax ) goto noas; | |
2528 | ||
b6a9eae2 | 2529 | Float_t dxAs = mcXv - p0->Xv(), dyAs = mcYv - p0->Yv(), dzAs = mcZv - p0->Zv(); |
2530 | Float_t l = TMath::Sqrt(dxAs*dxAs + dyAs*dyAs + dzAs*dzAs); | |
667b678a | 2531 | |
2532 | dxAs = mcXv - pPart->Xv(); dyAs = mcYv - pPart->Yv(); | |
b6a9eae2 | 2533 | //Float_t ltAs = TMath::Sqrt(dxAs*dxAs + dyAs*dyAs); |
2534 | Float_t ptAs = p0->Pt(); | |
2535 | Float_t rapAs = p0->Y(); | |
2536 | Float_t etaAs = p0->Eta(); | |
2537 | // phi resolution for V0-reconstruction | |
b6f9da99 | 2538 | Float_t resEta = p0->Eta() - v0->Eta(); |
b6a9eae2 | 2539 | Float_t resPhi = p0->Phi() - v0->Phi(); |
2540 | ||
ca96d60a | 2541 | if ( (l < 0.01) && (ptAs<10.) ) { // Primary V0 |
667b678a | 2542 | |
59e0735e | 2543 | // K0s: |
ca96d60a | 2544 | if(ctK && lCheckMcK0Short){ |
2545 | ||
2546 | // Natural particles | |
2547 | if(isNaturalPart){ | |
53e7de27 | 2548 | |
ca96d60a | 2549 | if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
2550 | ||
2551 | fK0sAssocPt->Fill(ptAs); | |
2552 | fK0sAssocPtRap->Fill(ptAs,rapAs,centrality); | |
2553 | fK0sAssocPtPhiEta[curCentBin]->Fill(p0->Phi(),etaAs,ptAs); | |
53e7de27 | 2554 | |
ca96d60a | 2555 | // Armenteros Pod. and rapidity cut |
2556 | if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)<fYMax ){ | |
2557 | ||
2558 | // Distributions for the efficiency (systematics chechks) | |
2559 | fK0sAssocPtMassArm[curCentBin]->Fill(v0->MassK0Short(),ptAs,rapAs); | |
2560 | fK0sAssocMassPtVtx[curCentBin]->Fill(v0->MassK0Short(),ptAs,zv); | |
2561 | fK0sAssocMassPtDCADaug[curCentBin]->Fill(v0->MassK0Short(),ptAs,dca); | |
2562 | fK0sAssocMassPtCPA[curCentBin]->Fill(v0->MassK0Short(),ptAs,cpa); | |
2563 | } | |
53e7de27 | 2564 | |
ca96d60a | 2565 | fK0sMCResEta->Fill(resEta,pt,centrality); |
2566 | fK0sMCResPhi->Fill(resPhi,pt,centrality); | |
2567 | ||
2568 | } // End selection in the dca to prim. vtx and the number of clusters | |
2569 | ||
2570 | // Distributions for the efficiency (Systematic checks) | |
2571 | if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)<fYMax ){ | |
2572 | ||
2573 | // Cut in the DCA ToPrim Vtx | |
2574 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2575 | if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value | |
2576 | fK0sAssocMassPtDCAPV[curCentBin]->Fill(v0->MassK0Short(),ptAs,1); | |
ca96d60a | 2577 | if( (dcaPos>0.115) && (dcaNeg>0.115) ) |
f4a57119 | 2578 | fK0sAssocMassPtDCAPV[curCentBin]->Fill(v0->MassK0Short(),ptAs,2); |
ca96d60a | 2579 | if( (dcaPos>0.12) && (dcaNeg>0.12) ) |
f4a57119 | 2580 | fK0sAssocMassPtDCAPV[curCentBin]->Fill(v0->MassK0Short(),ptAs,3); |
ca96d60a | 2581 | if( (dcaPos>0.2) && (dcaNeg>0.2) ) |
f4a57119 | 2582 | fK0sAssocMassPtDCAPV[curCentBin]->Fill(v0->MassK0Short(),ptAs,4); |
ca96d60a | 2583 | } |
2584 | ||
2585 | // cut in the number of tpc ckusters | |
2586 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ | |
2587 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value | |
2588 | fK0sAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassK0Short(),ptAs,1); | |
2589 | if( (nClsTPCPos>50) && (nClsTPCNeg>50) ) | |
2590 | fK0sAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassK0Short(),ptAs,2); | |
2591 | if( (nClsTPCPos>60) && (nClsTPCNeg>60) ) | |
2592 | fK0sAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassK0Short(),ptAs,3); | |
2593 | if( (nClsTPCPos>80) && (nClsTPCNeg>80) ) | |
2594 | fK0sAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassK0Short(),ptAs,4); | |
2595 | } | |
2596 | ||
2597 | } // End selection for systematics | |
2598 | ||
2599 | } // End natural particle selection | |
31f87a49 | 2600 | // Embeded particles |
2601 | if(!isNaturalPart){ | |
ca96d60a | 2602 | |
2603 | if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2604 | ||
2605 | fK0sAssocPtRapEmbeded->Fill(ptAs,rapAs,centrality); | |
2606 | ||
2607 | if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0)) && TMath::Abs(rapAs)<fYMax ){ | |
2608 | ||
2609 | // Distributions for the efficiency (systematics chechks) | |
2610 | fK0sAssocPtMassArmEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,rapAs); | |
2611 | fK0sAssocMassPtVtxEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,zv); | |
2612 | fK0sAssocMassPtDCADaugEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,dca); | |
2613 | fK0sAssocMassPtCPAEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,cpa); | |
2614 | } | |
2615 | ||
2616 | } // End selection in the dca to prim. vtx and the number of clusters | |
2617 | ||
2618 | // Distributions for the efficiency (Systematic checks) | |
2619 | if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)<fYMax ){ | |
2620 | ||
2621 | // Cut in the DCA ToPrim Vtx | |
2622 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2623 | if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value | |
2624 | fK0sAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,1); | |
ca96d60a | 2625 | if( (dcaPos>0.115) && (dcaNeg>0.115) ) |
f4a57119 | 2626 | fK0sAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,2); |
ca96d60a | 2627 | if( (dcaPos>0.12) && (dcaNeg>0.12) ) |
f4a57119 | 2628 | fK0sAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,3); |
ca96d60a | 2629 | if( (dcaPos>0.2) && (dcaNeg>0.2) ) |
f4a57119 | 2630 | fK0sAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,4); |
ca96d60a | 2631 | } |
2632 | ||
2633 | // cut in the number of tpc ckusters | |
2634 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ | |
2635 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value | |
2636 | fK0sAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,1); | |
2637 | if( (nClsTPCPos>50) && (nClsTPCNeg>50) ) | |
2638 | fK0sAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,2); | |
2639 | if( (nClsTPCPos>60) && (nClsTPCNeg>60) ) | |
2640 | fK0sAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,3); | |
2641 | if( (nClsTPCPos>80) && (nClsTPCNeg>80) ) | |
2642 | fK0sAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,4); | |
2643 | } | |
2644 | ||
2645 | } // End selection for systematics | |
2646 | ||
2647 | } // End embeded particle selection | |
2648 | ||
2649 | } // End K0s selection | |
2650 | ||
59e0735e | 2651 | // Lambda: |
ca96d60a | 2652 | if(ctL && lCheckMcLambda) { |
2653 | ||
2654 | // Natural particles | |
2655 | if(isNaturalPart){ | |
53e7de27 | 2656 | |
ca96d60a | 2657 | if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
53e7de27 | 2658 | |
ca96d60a | 2659 | fLambdaAssocPt->Fill(ptAs); |
2660 | fLambdaAssocPtRap->Fill(ptAs,rapAs,centrality); | |
2661 | fLambdaAssocPtPhiEta[curCentBin]->Fill(p0->Phi(),etaAs,ptAs); | |
667b678a | 2662 | |
ca96d60a | 2663 | // Rapidity cut |
2664 | if(TMath::Abs(rapAs)<fYMax) { | |
31f87a49 | 2665 | |
ca96d60a | 2666 | // Distributions for the efficiency (systematics chechks) |
2667 | fLambdaAssocMassPtRap[curCentBin]->Fill(v0->MassLambda(),ptAs,rapAs); | |
2668 | fLambdaAssocMassPtVtx[curCentBin]->Fill(v0->MassLambda(),ptAs,zv); | |
2669 | fLambdaAssocMassPtDCADaug[curCentBin]->Fill(v0->MassLambda(),ptAs,dca); | |
2670 | fLambdaAssocMassPtCPA[curCentBin]->Fill(v0->MassLambda(),ptAs,cpa); | |
2671 | ||
2672 | if( !isCandidate2K0s && !isCandidate2LambdaBar) | |
2673 | fLambdaAssocMassPtRap2[curCentBin]->Fill(v0->MassLambda(),ptAs,rapAs); | |
2674 | ||
2675 | } | |
2676 | ||
2677 | fLambdaMCResEta->Fill(resEta,pt,centrality); | |
2678 | fLambdaMCResPhi->Fill(resPhi,pt,centrality); | |
2679 | ||
2680 | } // End selection in the dca to prim. vtx and the number of clusters | |
2681 | ||
2682 | // Distributions for the efficiency (Systematic checks) | |
2683 | if( TMath::Abs(rapAs)<fYMax ){ | |
2684 | ||
2685 | // Cut in the DCA ToPrim Vtx | |
2686 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2687 | if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value | |
2688 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,1); | |
ca96d60a | 2689 | if( (dcaPos>0.115) && (dcaNeg>0.115) ) |
f4a57119 | 2690 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,2); |
ca96d60a | 2691 | if( (dcaPos>0.12) && (dcaNeg>0.12) ) |
f4a57119 | 2692 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,3); |
ca96d60a | 2693 | if( (dcaPos>0.2) && (dcaNeg>0.2) ) |
f4a57119 | 2694 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,4); |
2695 | if( (dcaPos>0.15) && (dcaNeg>0.1) ) | |
ca96d60a | 2696 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,5); |
f4a57119 | 2697 | if( (dcaPos>0.2) && (dcaNeg>0.1) ) |
ca96d60a | 2698 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,6); |
f4a57119 | 2699 | if( (dcaPos>0.25) && (dcaNeg>0.1) ) |
2700 | fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,7); | |
2701 | ||
ca96d60a | 2702 | } |
2703 | ||
2704 | // cut in the number of tpc ckusters | |
2705 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ | |
2706 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value | |
2707 | fLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassLambda(),ptAs,1); | |
2708 | if( (nClsTPCPos>50) && (nClsTPCNeg>50) ) | |
2709 | fLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassLambda(),ptAs,2); | |
2710 | if( (nClsTPCPos>60) && (nClsTPCNeg>60) ) | |
2711 | fLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassLambda(),ptAs,3); | |
2712 | if( (nClsTPCPos>80) && (nClsTPCNeg>80) ) | |
2713 | fLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassLambda(),ptAs,4); | |
2714 | } | |
2715 | ||
2716 | } // End selection for systematics | |
2717 | ||
2718 | } // End natural particle selection | |
31f87a49 | 2719 | // Embeded particles |
ca96d60a | 2720 | if(!isNaturalPart){ |
b6f9da99 | 2721 | |
ca96d60a | 2722 | if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
2723 | ||
2724 | if( TMath::Abs(rapAs)<fYMax ){ | |
2725 | // Distributions for the efficiency (systematics chechks) | |
2726 | fLambdaAssocMassPtRapEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,rapAs); | |
2727 | fLambdaAssocMassPtVtxEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,zv); | |
2728 | fLambdaAssocMassPtDCADaugEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,dca); | |
2729 | fLambdaAssocMassPtCPAEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,cpa); | |
2730 | ||
2731 | if( !isCandidate2K0s && !isCandidate2LambdaBar) | |
2732 | fLambdaAssocMassPtRapEmbeded2[curCentBin]->Fill(v0->MassLambda(),ptAs,rapAs); | |
2733 | } | |
2734 | ||
2735 | } // End selection in the dca to prim. vtx and the number of clusters | |
2736 | ||
2737 | // Distributions for the efficiency (Systematic checks) | |
2738 | if( TMath::Abs(rapAs)<fYMax ){ | |
2739 | ||
2740 | // Cut in the DCA ToPrim Vtx | |
2741 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2742 | if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value | |
2743 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,1); | |
ca96d60a | 2744 | if( (dcaPos>0.115) && (dcaNeg>0.115) ) |
f4a57119 | 2745 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,2); |
ca96d60a | 2746 | if( (dcaPos>0.12) && (dcaNeg>0.12) ) |
f4a57119 | 2747 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,3); |
ca96d60a | 2748 | if( (dcaPos>0.2) && (dcaNeg>0.2) ) |
f4a57119 | 2749 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,4); |
2750 | if( (dcaPos>0.15) && (dcaNeg>0.1) ) | |
ca96d60a | 2751 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,5); |
f4a57119 | 2752 | if( (dcaPos>0.2) && (dcaNeg>0.1) ) |
ca96d60a | 2753 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,6); |
f4a57119 | 2754 | if( (dcaPos>0.25) && (dcaNeg>0.1) ) |
2755 | fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,7); | |
ca96d60a | 2756 | } |
2757 | ||
2758 | // cut in the number of tpc ckusters | |
2759 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ | |
2760 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value | |
2761 | fLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,1); | |
2762 | if( (nClsTPCPos>50) && (nClsTPCNeg>50) ) | |
2763 | fLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,2); | |
2764 | if( (nClsTPCPos>60) && (nClsTPCNeg>60) ) | |
2765 | fLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,3); | |
2766 | if( (nClsTPCPos>80) && (nClsTPCNeg>80) ) | |
2767 | fLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,4); | |
2768 | } | |
2769 | ||
2770 | } // End selection for systematics | |
2771 | ||
2772 | } // End embeded particle selection | |
2773 | ||
53e7de27 | 2774 | } // End Lambda selection |
ca96d60a | 2775 | |
59e0735e | 2776 | // AntiLambda: |
ca96d60a | 2777 | if (ctAL && lCheckMcAntiLambda){ |
2778 | ||
2779 | if(isNaturalPart){ | |
59e0735e | 2780 | |
ca96d60a | 2781 | if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
31f87a49 | 2782 | |
ca96d60a | 2783 | fAntiLambdaAssocPt->Fill(ptAs); |
2784 | fAntiLambdaAssocPtRap->Fill(ptAs,rapAs,centrality); | |
2785 | fAntiLambdaAssocPtPhiEta[curCentBin]->Fill(p0->Phi(),etaAs,ptAs); | |
2786 | ||
2787 | // Rapidity cut | |
2788 | if(TMath::Abs(rapAs)<fYMax) { | |
2789 | ||
2790 | // Distributions for the efficiency (systematics chechks) | |
2791 | fAntiLambdaAssocMassPtRap[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,rapAs); | |
2792 | fAntiLambdaAssocMassPtVtx[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,zv); | |
2793 | fAntiLambdaAssocMassPtDCADaug[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,dca); | |
2794 | fAntiLambdaAssocMassPtCPA[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,cpa); | |
2795 | ||
2796 | if( !isCandidate2K0s && !isCandidate2Lambda ) | |
2797 | fAntiLambdaAssocMassPtRap2[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,rapAs); | |
2798 | } | |
2799 | ||
2800 | fAntiLambdaMCResEta->Fill(resEta,pt,centrality); | |
2801 | fAntiLambdaMCResPhi->Fill(resPhi,pt,centrality); | |
2802 | ||
2803 | } // End selection in the dca to prim. vtx and the number of clusters | |
2804 | ||
2805 | // Distributions for the efficiency (Systematic checks) | |
2806 | if( TMath::Abs(rapAs)<fYMax ){ | |
2807 | ||
2808 | // Cut in the DCA ToPrim Vtx | |
2809 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2810 | if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value | |
2811 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1); | |
ca96d60a | 2812 | if( (dcaPos>0.115) && (dcaNeg>0.115) ) |
f4a57119 | 2813 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,2); |
ca96d60a | 2814 | if( (dcaPos>0.12) && (dcaNeg>0.12) ) |
f4a57119 | 2815 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,3); |
ca96d60a | 2816 | if( (dcaPos>0.2) && (dcaNeg>0.2) ) |
f4a57119 | 2817 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,4); |
2818 | if( (dcaPos>0.15) && (dcaNeg>0.1) ) | |
ca96d60a | 2819 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,5); |
f4a57119 | 2820 | if( (dcaPos>0.2) && (dcaNeg>0.1) ) |
ca96d60a | 2821 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,6); |
f4a57119 | 2822 | if( (dcaPos>0.25) && (dcaNeg>0.1) ) |
2823 | fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,7); | |
ca96d60a | 2824 | } |
2825 | ||
2826 | // cut in the number of tpc ckusters | |
2827 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ | |
2828 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value | |
2829 | fAntiLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1); | |
2830 | if( (nClsTPCPos>50) && (nClsTPCNeg>50) ) | |
2831 | fAntiLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,2); | |
2832 | if( (nClsTPCPos>60) && (nClsTPCNeg>60) ) | |
2833 | fAntiLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,3); | |
2834 | if( (nClsTPCPos>80) && (nClsTPCNeg>80) ) | |
2835 | fAntiLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,4); | |
2836 | } | |
2837 | ||
2838 | } // End selection for systematics | |
2839 | ||
2840 | } // End natural particle selection | |
31f87a49 | 2841 | // Embeded particles |
ca96d60a | 2842 | if(!isNaturalPart){ |
2843 | ||
2844 | if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2845 | ||
2846 | if( TMath::Abs(rapAs)<fYMax ){ | |
2847 | // Distributions for the efficiency (systematics chechks) | |
2848 | fAntiLambdaAssocMassPtRapEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,rapAs); | |
2849 | fAntiLambdaAssocMassPtVtxEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,zv); | |
2850 | fAntiLambdaAssocMassPtDCADaugEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,dca); | |
2851 | fAntiLambdaAssocMassPtCPAEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,cpa); | |
2852 | ||
2853 | if( !isCandidate2K0s && !isCandidate2Lambda ) | |
2854 | fAntiLambdaAssocMassPtRapEmbeded2[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,rapAs); | |
2855 | } | |
2856 | ||
2857 | } // End selection in the dca to prim. vtx and the number of clusters | |
2858 | ||
2859 | ||
2860 | // Distributions for the efficiency (Systematic checks) | |
2861 | if( TMath::Abs(rapAs)<fYMax ){ | |
2862 | ||
2863 | // Cut in the DCA ToPrim Vtx | |
2864 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
2865 | if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value | |
2866 | fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1); | |
2867 | if( (dcaPos>0.095) && (dcaNeg>0.095) ) | |
2868 | fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,2); | |
2869 | if( (dcaPos>0.115) && (dcaNeg>0.115) ) | |
2870 | fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,3); | |
2871 | if( (dcaPos>0.12) && (dcaNeg>0.12) ) | |
2872 | fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,4); | |
2873 | if( (dcaPos>0.2) && (dcaNeg>0.2) ) | |
2874 | fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,5); | |
2875 | if( (dcaPos>0.5) && (dcaNeg>0.5) ) | |
2876 | fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,6); | |
2877 | } | |
2878 | ||
2879 | // cut in the number of tpc ckusters | |
2880 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ | |
2881 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value | |
2882 | fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1); | |
2883 | if( (nClsTPCPos>50) && (nClsTPCNeg>50) ) | |
2884 | fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,2); | |
2885 | if( (nClsTPCPos>60) && (nClsTPCNeg>60) ) | |
2886 | fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,3); | |
2887 | if( (nClsTPCPos>80) && (nClsTPCNeg>80) ) | |
2888 | fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,4); | |
2889 | } | |
2890 | ||
2891 | } // End selection for systematics | |
2892 | ||
2893 | } // End embeded particle selection | |
31f87a49 | 2894 | |
59e0735e | 2895 | } // End AntiLambda: |
31f87a49 | 2896 | // Xi decay: |
ca96d60a | 2897 | if( lComeFromXi && isNaturalPart ){ |
31f87a49 | 2898 | if(lPDGCodeV0==3122) { fLambdaAssocFromXi->Fill(ptAs,centrality); } |
2899 | else if(lPDGCodeV0==-3122) { fAntiLambdaAssocFromXi->Fill(ptAs,centrality); } | |
53e7de27 | 2900 | } |
31f87a49 | 2901 | |
59e0735e | 2902 | } // End Primary V0 selection |
667b678a | 2903 | |
2904 | // After the kinematical selection of K0s and Lambdas | |
2905 | // it might be that the daugthers are not identified through MC Association | |
2906 | if(lMCAssocNegDaug==0) | |
b6f9da99 | 2907 | lMCAssocNegDaug = 6; |
667b678a | 2908 | if(lMCAssocPosDaug==0) |
b6f9da99 | 2909 | lMCAssocPosDaug = 6; |
ca96d60a | 2910 | |
667b678a | 2911 | } // End MC-Association |
2912 | ||
667b678a | 2913 | }// End Correlation Step |
ca96d60a | 2914 | |
2915 | // ************************************ | |
667b678a | 2916 | noas: |
2917 | ||
ca96d60a | 2918 | /* |
2919 | Float_t pPos = -100.; | |
2920 | Float_t pNeg = -100.; | |
348080d3 | 2921 | |
ca96d60a | 2922 | Float_t dedxPos = -1000.; |
2923 | Float_t dedxNeg = -1000.; | |
2924 | Float_t nsigPosPion = 0.; | |
2925 | Float_t nsigNegPion = 0.; | |
2926 | Float_t nsigPosProton = 0.; | |
2927 | Float_t nsigNegProton = 0.; | |
2928 | ||
2929 | if(fUsePID && !fIsMC) { | |
2930 | const AliAODPid *pidNeg = ntrack->GetDetPid(); | |
2931 | const AliAODPid *pidPos = ptrack->GetDetPid(); | |
667b678a | 2932 | |
ca96d60a | 2933 | if (pidNeg && pidPos) { |
2934 | pPos = pidPos->GetTPCmomentum(); | |
2935 | pNeg = pidNeg->GetTPCmomentum(); | |
2936 | dedxPos = pidPos->GetTPCsignal()/47.; | |
2937 | dedxNeg = pidNeg->GetTPCsignal()/47.; | |
348080d3 | 2938 | |
2939 | ||
ca96d60a | 2940 | if(pPos<1.){ |
2941 | nsigPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kPion)); | |
2942 | nsigPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kProton)); | |
2943 | } | |
2944 | if(pNeg<1.){ | |
2945 | nsigNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kPion)); | |
2946 | nsigNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kProton)); | |
2947 | } | |
b6f9da99 | 2948 | |
ca96d60a | 2949 | } |
667b678a | 2950 | |
ca96d60a | 2951 | } |
667b678a | 2952 | */ |
2953 | ||
667b678a | 2954 | // Comparing the pt of the trigger particle wrt the v0-candidate's daughter: |
2955 | // It is used as well for the side-band subtraction | |
348080d3 | 2956 | Int_t isSameTrkPosDaug = -1; |
2957 | Int_t isSameTrkNegDaug = -1; | |
2958 | if( step==kTriggerCheck ){ | |
2959 | isSameTrkPosDaug = SameTrack(trkTrig,ptrack); | |
2960 | isSameTrkNegDaug = SameTrack(trkTrig,ntrack); | |
2961 | } | |
667b678a | 2962 | |
348080d3 | 2963 | // ******************* |
2964 | // Gamma conversion | |
2965 | // ******************* | |
348080d3 | 2966 | if(step==kReconstruction) |
2967 | if( (TMath::Sqrt(lPtArmV0*lPtArmV0 + lAlphaV0*lAlphaV0) < 0.2) && isNaturalPart ){ | |
b6f9da99 | 2968 | fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 2) ); |
348080d3 | 2969 | } |
2970 | ||
667b678a | 2971 | // ******************* |
2972 | // K0s selection | |
2973 | // ******************* | |
ca96d60a | 2974 | if (ctK && (TMath::Abs(v0->RapK0Short())<fYMax) && ( lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && ( massK0s > 0.3979 && massK0s < 0.5981 ) ) { |
667b678a | 2975 | |
2976 | switch(step) { | |
2977 | case kTriggerCheck: | |
2978 | ||
ca96d60a | 2979 | if (isCandidate2K0s && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
2980 | ||
667b678a | 2981 | if(pt>ptTrig){ |
f25a6d07 | 2982 | fIsV0LP = 1; |
2983 | fPtV0LP = pt; | |
667b678a | 2984 | } |
2985 | ||
ca96d60a | 2986 | if( isSameTrkPosDaug==1 || isSameTrkNegDaug==1){ |
667b678a | 2987 | Printf(" The LP has the same momentum in X and Y as one of the K0s daughters *** iV0 %d",iV0); |
ca96d60a | 2988 | |
348080d3 | 2989 | if(fCheckIDTrig){ // Compare properties of daughters nad |
ca96d60a | 2990 | Float_t difNegP[3]; |
b6f9da99 | 2991 | difNegP[0] = (pTrig[0]-pNegDaug[0])/pTrig[0]; difNegP[1] = (pTrig[1]-pNegDaug[1])/pTrig[1]; difNegP[2] = (pTrig[2]-pNegDaug[2])/pTrig[2]; |
ca96d60a | 2992 | Float_t difPosP[3]; |
b6f9da99 | 2993 | difPosP[0] = (pTrig[0]-pPosDaug[0])/pTrig[0]; difPosP[1] = (pTrig[1]-pPosDaug[1])/pTrig[1]; difPosP[2] = (pTrig[2]-pPosDaug[2])/pTrig[2]; |
348080d3 | 2994 | Float_t posDeltaPhi = phiTrig - phiPos, negDeltaPhi = phiTrig - phiNeg; |
2995 | Float_t posDeltaEta = etaTrig - etaPos, negDeltaEta = etaTrig - etaNeg; | |
ca96d60a | 2996 | |
44972668 | 2997 | /* |
ca96d60a | 2998 | Printf(" The LP has the same momentum in X and Y as one of the K0s daughters *** iV0 %d \n\t\t %d %d %d \n\t\t %lf %lf %lf \n\t\t %lf %lf %lf \n\t\t %lf %lf \n\t\t %lf %lf ", |
2999 | iV0, TMath::Abs( trkTrig->GetID() ), ntrack->GetID() , ptrack->GetID() , | |
3000 | TMath::Abs( difNegP[1] ), TMath::Abs( difNegP[2] ), TMath::Abs( difNegP[0] ), | |
3001 | TMath::Abs( difPosP[1] ), TMath::Abs( difPosP[2] ), TMath::Abs( difPosP[0] ), | |
3002 | TMath::Abs( negDeltaPhi ), TMath::Abs( negDeltaEta ), | |
3003 | TMath::Abs( posDeltaPhi ), TMath::Abs( posDeltaEta ) | |
3004 | ); | |
44972668 | 3005 | */ |
ca96d60a | 3006 | |
348080d3 | 3007 | // Positive daughter |
3008 | if( isSameTrkPosDaug==1 ){ | |
3009 | for(Int_t i=0;i<3;i++) | |
3010 | fCheckIDTrigPtK0s->Fill(difPosP[i],i,pt); | |
6668159e | 3011 | fCheckIDTrigPhiK0s->Fill(posDeltaPhi,0.,pt); |
348080d3 | 3012 | fCheckIDTrigEtaK0s->Fill(posDeltaEta,0.,pt); |
f4a57119 | 3013 | fCheckIDTrigNclsK0s->Fill(nClsTPCPos,0.,pt); |
6668159e | 3014 | } |
348080d3 | 3015 | // Negative daughter |
3016 | if( isSameTrkNegDaug==1 ){ | |
3017 | for(Int_t i=0;i<3;i++) | |
3018 | fCheckIDTrigPtK0s->Fill(difPosP[i],i+3,pt); | |
6668159e | 3019 | fCheckIDTrigPhiK0s->Fill(negDeltaPhi,2.,pt); |
348080d3 | 3020 | fCheckIDTrigEtaK0s->Fill(negDeltaEta,2.,pt); |
f4a57119 | 3021 | fCheckIDTrigNclsK0s->Fill(nClsTPCNeg,2.,pt); |
6668159e | 3022 | } |
3023 | ||
3024 | } // End check ID | |
ca96d60a | 3025 | |
3026 | ||
348080d3 | 3027 | fTriggerParticles->RemoveAt(iArray); |
b6f9da99 | 3028 | fTriggerParticles->AddAt( new AliMiniParticle(centrality, zv, idTrig, ptTrig, phiTrig, etaTrig, 0, 0, 0), iArray); |
348080d3 | 3029 | |
6668159e | 3030 | } // Close isTrigFromV0daug |
ca96d60a | 3031 | |
348080d3 | 3032 | }// End K0s Mass cut |
ca96d60a | 3033 | |
667b678a | 3034 | break; // End K0s selection for TriggerCheck |
348080d3 | 3035 | case kReconstruction: |
3036 | ||
ca96d60a | 3037 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) && (pt<10.) ){ |
3038 | ||
3039 | if(isNaturalPart) fK0sMass->Fill(massK0s,pt,centrality); | |
3040 | else fK0sMassEmbeded->Fill(massK0s,pt,centrality); | |
3041 | ||
f4a57119 | 3042 | fK0sMassPtEta->Fill(massK0s,pt,lEta); |
bd903641 | 3043 | fK0sMassPtRap[curCentBin]->Fill(massK0s,pt,v0->RapK0Short()); |
ca96d60a | 3044 | fK0sMassPtPhi->Fill(massK0s,pt,lPhi); |
348080d3 | 3045 | |
ca96d60a | 3046 | if( (pt>kPtBinV0[0]) && (pt<kPtBinV0[kN1]) && isNaturalPart ) |
3047 | fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 3) ); | |
667b678a | 3048 | |
667b678a | 3049 | } |
348080d3 | 3050 | |
ca96d60a | 3051 | if( fDoQA && lCheckMcK0Short && isNaturalPart && (pt<10.) ){ // Quality Assurance |
348080d3 | 3052 | |
ca96d60a | 3053 | // Invariant Mass cut |
3054 | if (TMath::Abs(mK0s-massK0s) < 3*sK0s) { | |
348080d3 | 3055 | |
ca96d60a | 3056 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
3057 | fK0sDCAPosDaug->Fill(dcaPos,pt); | |
3058 | fK0sDCANegDaug->Fill(dcaNeg,pt); | |
3059 | } | |
3060 | ||
3061 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){ | |
3062 | ||
3063 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ | |
3064 | fK0sPtPosDaug->Fill(pt,lPtPos); | |
3065 | fK0sPtNegDaug->Fill(pt,lPtNeg); | |
3066 | ||
3067 | fK0sPhiEtaPosDaug->Fill(phiPos,etaPos,pt); | |
3068 | fK0sPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt); | |
6668159e | 3069 | |
ca96d60a | 3070 | fK0sDecayPos->Fill(dx,dy,pt); |
3071 | fK0sDecayVertex->Fill(lt,pt); | |
6668159e | 3072 | |
ca96d60a | 3073 | fK0sCPA->Fill(cpa,pt); |
3074 | fK0sDCAV0Daug->Fill(dca,pt); | |
3075 | ||
3076 | fK0sNClustersITSPos->Fill(phiPos,posITSNcls,pt); | |
3077 | fK0sNClustersITSNeg->Fill(phiNeg,negITSNcls,pt); | |
3078 | } | |
3079 | ||
3080 | fK0sNClustersTPC->Fill(phiPos,nClsTPCPos,pt); | |
3081 | fK0sNClustersTPC->Fill(phiNeg,nClsTPCNeg,-pt); | |
3082 | } | |
3083 | ||
3084 | } // End selection in mass | |
3085 | ||
3086 | if( TMath::Abs(mK0s-massK0s + 6.5*sK0s) < 1.5*sK0s || | |
3087 | TMath::Abs(mK0s-massK0s - 6.5*sK0s) < 1.5*sK0s ) { | |
3088 | ||
3089 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ | |
3090 | fK0sBckgDCAPosDaug->Fill(dcaPos,pt); | |
3091 | fK0sBckgDCANegDaug->Fill(dcaNeg,pt); | |
3092 | } | |
6668159e | 3093 | |
ca96d60a | 3094 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){ |
6668159e | 3095 | |
ca96d60a | 3096 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3097 | fK0sBckgPtPosDaug->Fill(pt,lPtPos); | |
3098 | fK0sBckgPtNegDaug->Fill(pt,lPtNeg); | |
6668159e | 3099 | |
ca96d60a | 3100 | fK0sBckgPhiEtaPosDaug->Fill(phiPos,etaPos,pt); |
3101 | fK0sBckgPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt); | |
6668159e | 3102 | |
ca96d60a | 3103 | fK0sBckgDecayPos->Fill(dx,dy,pt); |
3104 | fK0sBckgDecayVertex->Fill(lt,pt); | |
6668159e | 3105 | |
ca96d60a | 3106 | fK0sBckgCPA->Fill(cpa,pt); |
3107 | fK0sBckgDCAV0Daug->Fill(dca,pt); | |
6668159e | 3108 | |
ca96d60a | 3109 | fK0sBckgNClustersITSPos->Fill(phiPos,posITSNcls,pt); |
3110 | fK0sBckgNClustersITSNeg->Fill(phiNeg,negITSNcls,pt); | |
3111 | } | |
b6f9da99 | 3112 | |
ca96d60a | 3113 | fK0sBckgNClustersTPC->Fill(phiPos,nClsTPCPos,pt); |
3114 | fK0sBckgNClustersTPC->Fill(phiNeg,nClsTPCNeg,-pt); | |
3115 | ||
3116 | } | |
6668159e | 3117 | |
ca96d60a | 3118 | }// End selection in outside the mass cut |
3119 | ||
3120 | } // End QA | |
667b678a | 3121 | |
3122 | break; // End K0s selection for Corrleation | |
3123 | default: | |
3124 | Printf( " Selection of 'step' is not set properly"); | |
3125 | break; | |
3126 | ||
3127 | }// End switch | |
3128 | ||
3129 | } // End K0s selection | |
3130 | ||
3131 | // ******************* | |
3132 | // Lambda selection | |
3133 | // ******************* | |
ca96d60a | 3134 | if ( ctL && (TMath::Abs(v0->RapLambda())<fYMax) && (massLambda > 1.0649 && massLambda < 1.1651 ) ){ |
667b678a | 3135 | |
667b678a | 3136 | switch(step) { |
3137 | case kTriggerCheck: | |
3138 | ||
d2b0274d | 3139 | if (isCandidate2Lambda && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70 ) && !isCandidate2K0s && !isCandidate2LambdaBar ){ |
ca96d60a | 3140 | |
667b678a | 3141 | if(pt>ptTrig) { |
f25a6d07 | 3142 | fIsV0LP = 1; |
3143 | fPtV0LP = pt; | |
667b678a | 3144 | } |
3145 | ||
348080d3 | 3146 | if( isSameTrkPosDaug==1 || isSameTrkNegDaug==1 ){ |
667b678a | 3147 | Printf(" The LP has the same momentum in X and Y as one of the Lambda daughters *** iV0 %d",iV0); |
6668159e | 3148 | |
348080d3 | 3149 | if(fCheckIDTrig){ // Compare properties of daughters nad |
3150 | Float_t difNegP[3]; | |
b6f9da99 | 3151 | difNegP[0] = (pTrig[0]-pNegDaug[0])/pTrig[0]; difNegP[1] = (pTrig[1]-pNegDaug[1])/pTrig[1]; difNegP[2] = (pTrig[2]-pNegDaug[2])/pTrig[2]; |
348080d3 | 3152 | Float_t difPosP[3]; |
b6f9da99 | 3153 | difPosP[0] = (pTrig[0]-pPosDaug[0])/pTrig[0]; difPosP[1] = (pTrig[1]-pPosDaug[1])/pTrig[1]; difPosP[2] = (pTrig[2]-pPosDaug[2])/pTrig[2]; |
348080d3 | 3154 | Float_t posDeltaPhi = phiTrig - phiPos, negDeltaPhi = phiTrig - phiNeg; |
3155 | Float_t posDeltaEta = etaTrig - etaPos, negDeltaEta = etaTrig - etaNeg; | |
3156 | ||
44972668 | 3157 | /* |
ca96d60a | 3158 | Printf(" The LP has the same momentum in X and Y as one of the Lambda daughters *** iV0 %d \n\t\t %d %d %d \n\t\t %lf %lf %lf \n\t\t %lf %lf %lf \n\t\t %lf %lf \n\t\t %lf %lf ", |
3159 | iV0, TMath::Abs( trkTrig->GetID() ), ntrack->GetID() , ptrack->GetID() , | |
3160 | TMath::Abs( difNegP[1] ), TMath::Abs( difNegP[2] ), TMath::Abs( difNegP[0] ), | |
3161 | TMath::Abs( difPosP[1] ), TMath::Abs( difPosP[2] ), TMath::Abs( difPosP[0] ), | |
3162 | TMath::Abs( negDeltaPhi ), TMath::Abs( negDeltaEta ), | |
3163 | TMath::Abs( posDeltaPhi ), TMath::Abs( posDeltaEta ) | |
3164 | ); | |
44972668 | 3165 | */ |
3166 | ||
348080d3 | 3167 | // Positive daughter |
3168 | if( isSameTrkPosDaug==1 ){ | |
3169 | for(Int_t i=0;i<3;i++) | |
3170 | fCheckIDTrigPtLambda->Fill(difPosP[i],i,pt); | |
6668159e | 3171 | fCheckIDTrigPhiLambda->Fill(posDeltaPhi,0.,pt); |
348080d3 | 3172 | fCheckIDTrigEtaLambda->Fill(posDeltaEta,0.,pt); |
f4a57119 | 3173 | fCheckIDTrigNclsLambda->Fill(nClsTPCPos,0.,pt); |
6668159e | 3174 | } |
348080d3 | 3175 | // Negative daughter |
3176 | if( isSameTrkNegDaug==1 ){ | |
3177 | for(Int_t i=0;i<3;i++) | |
3178 | fCheckIDTrigPtLambda->Fill(difPosP[i],i+3,pt); | |
6668159e | 3179 | fCheckIDTrigPhiLambda->Fill(negDeltaPhi,2.,pt); |
348080d3 | 3180 | fCheckIDTrigEtaLambda->Fill(negDeltaEta,2.,pt); |
f4a57119 | 3181 | fCheckIDTrigNclsLambda->Fill(nClsTPCNeg,2.,pt); |
6668159e | 3182 | } |
348080d3 | 3183 | |
6668159e | 3184 | } // End check ID |
348080d3 | 3185 | |
3186 | fTriggerParticles->RemoveAt(iArray); | |
b6f9da99 | 3187 | fTriggerParticles->AddAt( new AliMiniParticle(centrality, zv, idTrig, ptTrig, phiTrig, etaTrig, 0, 0, 0), iArray); |
348080d3 | 3188 | |
6668159e | 3189 | } // Close isTrigFromV0daug |
3190 | ||
348080d3 | 3191 | } // End Lambda Mass cut |
667b678a | 3192 | break; // End Lambda selection for TriggerCheck |
348080d3 | 3193 | case kReconstruction: |
667b678a | 3194 | |
ca96d60a | 3195 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70 ) && (pt<10.) ){ |
3196 | ||
3197 | if(isNaturalPart) fLambdaMass->Fill(massLambda,pt,centrality); | |
3198 | else fLambdaMassEmbeded->Fill(massLambda,pt,centrality); | |
667b678a | 3199 | |
ca96d60a | 3200 | if( !isCandidate2K0s && !isCandidate2LambdaBar){ |
3201 | if(isNaturalPart) fLambdaMass2->Fill(massLambda,pt,centrality); | |
3202 | else fLambdaMass2Embeded->Fill(massLambda,pt,centrality); | |
3203 | } | |
3204 | ||
f4a57119 | 3205 | fLambdaMassPtEta->Fill(massLambda,pt,lEta); |
bd903641 | 3206 | fLambdaMassPtRap[curCentBin]->Fill(massLambda,pt,v0->RapLambda()); |
ca96d60a | 3207 | fLambdaMassPtPhi->Fill(massLambda,pt,lPhi); |
667b678a | 3208 | |
ca96d60a | 3209 | if( (pt>kPtBinV0[0]) && (pt<kPtBinV0[kN1]) && isNaturalPart ) |
3210 | fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 4) ); | |
f4a57119 | 3211 | |
ca96d60a | 3212 | } |
3213 | ||
667b678a | 3214 | // Invariant Mass cut |
ca96d60a | 3215 | if(fDoQA && lCheckMcLambda && isNaturalPart && (pt<10.)){ // Quality Assurance |
6668159e | 3216 | |
ca96d60a | 3217 | // Invariant Mass cut |
3218 | if (TMath::Abs(mLambda-massLambda) < 3*sL) { | |
6668159e | 3219 | |
ca96d60a | 3220 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3221 | fLambdaDCAPosDaug->Fill(dcaPos,pt); | |
3222 | fLambdaDCANegDaug->Fill(dcaNeg,pt); | |
3223 | } | |
6668159e | 3224 | |
ca96d60a | 3225 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){ |
6668159e | 3226 | |
ca96d60a | 3227 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3228 | fLambdaPtPosDaug->Fill(pt,lPtPos); | |
3229 | fLambdaPtNegDaug->Fill(pt,lPtNeg); | |
6668159e | 3230 | |
ca96d60a | 3231 | fLambdaPhiEtaPosDaug->Fill(phiPos,etaPos,pt); |
3232 | fLambdaPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt); | |
6668159e | 3233 | |
ca96d60a | 3234 | fLambdaDecayPos->Fill(dx,dy,pt); |
3235 | fLambdaDecayVertex->Fill(lt,pt); | |
b6f9da99 | 3236 | |
ca96d60a | 3237 | fLambdaCPA->Fill(cpa,pt); |
3238 | fLambdaDCAV0Daug->Fill(dca,pt); | |
348080d3 | 3239 | |
ca96d60a | 3240 | fLambdaNClustersITSPos->Fill(phiPos,posITSNcls,pt); |
3241 | fLambdaNClustersITSNeg->Fill(phiNeg,negITSNcls,pt); | |
3242 | } | |
6668159e | 3243 | |
ca96d60a | 3244 | fLambdaNClustersTPC->Fill(phiPos,nClsTPCPos,pt); |
3245 | fLambdaNClustersTPC->Fill(phiNeg,nClsTPCNeg,-pt); | |
6668159e | 3246 | |
ca96d60a | 3247 | } |
3248 | ||
3249 | } // End selection in mass | |
3250 | ||
3251 | if( (TMath::Abs(mLambda-massLambda + 6.5*sL) < 1.5*sL) || | |
3252 | (TMath::Abs(mLambda-massLambda - 6.5*sL) < 1.5*sL) ){ | |
6668159e | 3253 | |
ca96d60a | 3254 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3255 | fLambdaBckgDCAPosDaug->Fill(dcaPos,pt); | |
3256 | fLambdaBckgDCANegDaug->Fill(dcaNeg,pt); | |
3257 | } | |
6668159e | 3258 | |
ca96d60a | 3259 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){ |
6668159e | 3260 | |
ca96d60a | 3261 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3262 | fLambdaBckgPtPosDaug->Fill(pt,lPtPos); | |
3263 | fLambdaBckgPtNegDaug->Fill(pt,lPtNeg); | |
b6f9da99 | 3264 | |
ca96d60a | 3265 | fLambdaBckgPhiEtaPosDaug->Fill(phiPos,etaPos,pt); |
3266 | fLambdaBckgPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt); | |
3267 | ||
3268 | fLambdaBckgDecayPos->Fill(dx,dy,pt); | |
3269 | fLambdaBckgDecayVertex->Fill(lt,pt); | |
3270 | ||
3271 | fLambdaBckgCPA->Fill(cpa,pt); | |
3272 | fLambdaBckgDCAV0Daug->Fill(dca,pt); | |
6668159e | 3273 | |
ca96d60a | 3274 | fLambdaBckgNClustersITSPos->Fill(phiPos,posITSNcls,pt); |
3275 | fLambdaBckgNClustersITSNeg->Fill(phiNeg,negITSNcls,pt); | |
3276 | } | |
3277 | ||
3278 | fLambdaBckgNClustersTPC->Fill(phiPos,nClsTPCPos,pt); | |
3279 | fLambdaBckgNClustersTPC->Fill(phiNeg,nClsTPCNeg,-pt); | |
3280 | } | |
3281 | ||
3282 | }// End selection in outside the mass cut | |
3283 | ||
3284 | } // End QA | |
667b678a | 3285 | |
3286 | break; // End Lambda selection for Correlation | |
3287 | default: | |
3288 | Printf(" Selection of 'step' is not set properly"); | |
3289 | break; | |
3290 | ||
3291 | }// End switch | |
3292 | ||
3293 | } // End Lambda selection | |
3294 | ||
3295 | // ******************* | |
3296 | // AntiLambda selection | |
3297 | // ******************* | |
ca96d60a | 3298 | if ( ctAL && (TMath::Abs(v0->RapLambda())<fYMax) && (massAntiLambda > 1.0649 && massAntiLambda < 1.1651 ) ) { |
667b678a | 3299 | |
3300 | switch(step) { | |
3301 | case kTriggerCheck: | |
3302 | ||
d2b0274d | 3303 | if (isCandidate2LambdaBar && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) && !isCandidate2K0s && !isCandidate2Lambda ){ |
ca96d60a | 3304 | |
667b678a | 3305 | if(pt>ptTrig) { |
f25a6d07 | 3306 | fIsV0LP = 1; |
3307 | fPtV0LP = pt; | |
667b678a | 3308 | } |
3309 | ||
348080d3 | 3310 | if( isSameTrkPosDaug==1 || isSameTrkNegDaug==1 ){ |
667b678a | 3311 | Printf(" The LP has the same momentum in X and Y as one of the AntiLambda daughters *** iV0 %d",iV0); |
6668159e | 3312 | |
348080d3 | 3313 | if(fCheckIDTrig){ // Compare properties of daughters nad |
3314 | Float_t difNegP[3]; | |
b6f9da99 | 3315 | difNegP[0] = (pTrig[0]-pNegDaug[0])/pTrig[0]; difNegP[1] = (pTrig[1]-pNegDaug[1])/pTrig[1]; difNegP[2] = (pTrig[2]-pNegDaug[2])/pTrig[2]; |
348080d3 | 3316 | Float_t difPosP[3]; |
b6f9da99 | 3317 | difPosP[0] = (pTrig[0]-pPosDaug[0])/pTrig[0]; difPosP[1] = (pTrig[1]-pPosDaug[1])/pTrig[1]; difPosP[2] = (pTrig[2]-pPosDaug[2])/pTrig[2]; |
348080d3 | 3318 | Float_t posDeltaPhi = phiTrig - phiPos, negDeltaPhi = phiTrig - phiNeg; |
3319 | Float_t posDeltaEta = etaTrig - etaPos, negDeltaEta = etaTrig - etaNeg; | |
44972668 | 3320 | |
3321 | /* | |
ca96d60a | 3322 | Printf(" The LP has the same momentum in X and Y as one of the AntiLambda daughters *** iV0 %d \n\t\t %d %d %d \n\t\t %lf %lf %lf \n\t\t %lf %lf %lf \n\t\t %lf %lf \n\t\t %lf %lf ", |
3323 | iV0, TMath::Abs( trkTrig->GetID() ), ntrack->GetID() , ptrack->GetID() , | |
3324 | TMath::Abs( difNegP[1] ), TMath::Abs( difNegP[2] ), TMath::Abs( difNegP[0] ), | |
3325 | TMath::Abs( difPosP[1] ), TMath::Abs( difPosP[2] ), TMath::Abs( difPosP[0] ), | |
3326 | TMath::Abs( negDeltaPhi ), TMath::Abs( negDeltaEta ), | |
3327 | TMath::Abs( posDeltaPhi ), TMath::Abs( posDeltaEta ) | |
3328 | ); | |
44972668 | 3329 | */ |
3330 | ||
348080d3 | 3331 | // Positive daughter |
3332 | if( isSameTrkPosDaug==1 ){ | |
3333 | for(Int_t i=0;i<3;i++) | |
3334 | fCheckIDTrigPtAntiLambda->Fill(difPosP[i],i,pt); | |
3335 | fCheckIDTrigPhiAntiLambda->Fill(posDeltaPhi,0.,pt); | |
3336 | fCheckIDTrigEtaAntiLambda->Fill(posDeltaEta,0.,pt); | |
f4a57119 | 3337 | fCheckIDTrigNclsAntiLambda->Fill(nClsTPCPos,0.,pt); |
348080d3 | 3338 | } |
3339 | // Negative daughter | |
3340 | if( isSameTrkNegDaug==1 ){ | |
3341 | for(Int_t i=0;i<3;i++) | |
3342 | fCheckIDTrigPtAntiLambda->Fill(difPosP[i],i+3,pt); | |
3343 | fCheckIDTrigPhiAntiLambda->Fill(negDeltaPhi,2.,pt); | |
3344 | fCheckIDTrigEtaAntiLambda->Fill(negDeltaEta,2.,pt); | |
f4a57119 | 3345 | fCheckIDTrigNclsAntiLambda->Fill(nClsTPCNeg,2.,pt); |
348080d3 | 3346 | } |
6668159e | 3347 | |
348080d3 | 3348 | } // End check ID |
3349 | ||
3350 | fTriggerParticles->RemoveAt(iArray); | |
b6f9da99 | 3351 | fTriggerParticles->AddAt( new AliMiniParticle(centrality, zv, idTrig, ptTrig, phiTrig, etaTrig, 0, 0, 0), iArray); |
348080d3 | 3352 | |
3353 | }// Close isTrigFromV0daug | |
667b678a | 3354 | |
348080d3 | 3355 | }// End AntiLambda Mass cut |
59e0735e | 3356 | break; // End AntiLambda selection for CheckTrigger |
348080d3 | 3357 | case kReconstruction: |
59e0735e | 3358 | |
ca96d60a | 3359 | if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70 ) && (pt<10.) ) { |
59e0735e | 3360 | |
ca96d60a | 3361 | if(isNaturalPart) fAntiLambdaMass->Fill(massAntiLambda,pt,centrality); |
3362 | else fAntiLambdaMassEmbeded->Fill(massAntiLambda,pt,centrality); | |
59e0735e | 3363 | |
ca96d60a | 3364 | if( !isCandidate2K0s && !isCandidate2Lambda) { |
3365 | if(isNaturalPart) fAntiLambdaMass2->Fill(massAntiLambda,pt,centrality); | |
3366 | else fAntiLambdaMass2Embeded->Fill(massAntiLambda,pt,centrality); | |
3367 | } | |
59e0735e | 3368 | |
f4a57119 | 3369 | fAntiLambdaMassPtEta->Fill(massAntiLambda,pt,lEta); |
bd903641 | 3370 | fAntiLambdaMassPtRap[curCentBin]->Fill(massAntiLambda,pt,v0->RapLambda()); |
ca96d60a | 3371 | fAntiLambdaMassPtPhi->Fill(massAntiLambda,pt,lPhi); |
3372 | ||
3373 | if( (pt>kPtBinV0[0]) && (pt<kPtBinV0[kN1]) && isNaturalPart ) | |
3374 | fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 5) ); | |
59e0735e | 3375 | |
ca96d60a | 3376 | } |
3377 | ||
3378 | if( fDoQA && lCheckMcAntiLambda && isNaturalPart && (pt<10.) ){ // Quality Assurance | |
59e0735e | 3379 | |
ca96d60a | 3380 | // Invariant Mass cut |
3381 | if (TMath::Abs(mLambda-massAntiLambda) < 3*sAL) { | |
59e0735e | 3382 | |
ca96d60a | 3383 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ |
3384 | fAntiLambdaDCAPosDaug->Fill(dcaPos,pt); | |
3385 | fAntiLambdaDCANegDaug->Fill(dcaNeg,pt); | |
3386 | } | |
b6f9da99 | 3387 | |
ca96d60a | 3388 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ |
3389 | ||
3390 | if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){ | |
3391 | fAntiLambdaPtPosDaug->Fill(pt,lPtPos); | |
3392 | fAntiLambdaPtNegDaug->Fill(pt,lPtNeg); | |
3393 | ||
3394 | fAntiLambdaPhiEtaPosDaug->Fill(phiPos,etaPos,pt); | |
3395 | fAntiLambdaPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt); | |
3396 | ||
3397 | fAntiLambdaDecayPos->Fill(dx,dy,pt); | |
3398 | fAntiLambdaDecayVertex->Fill(lt,pt); | |
3399 | ||
3400 | fAntiLambdaCPA->Fill(cpa,pt); | |
3401 | fAntiLambdaDCAV0Daug->Fill(dca,pt); | |
3402 | ||
3403 | fAntiLambdaNClustersITSPos->Fill(phiPos,posITSNcls,pt); | |
3404 | fAntiLambdaNClustersITSNeg->Fill(phiNeg,negITSNcls,pt); | |
3405 | } | |
3406 | ||
3407 | fAntiLambdaNClustersTPC->Fill(phiPos,nClsTPCPos,pt); | |
3408 | fAntiLambdaNClustersTPC->Fill(phiNeg,nClsTPCNeg,-pt); | |
3409 | } | |
59e0735e | 3410 | |
ca96d60a | 3411 | } // End selection in mass |
59e0735e | 3412 | |
ca96d60a | 3413 | if( (TMath::Abs(mLambda-massAntiLambda + 6.5*sAL) < 1.5*sAL) || |
3414 | (TMath::Abs(mLambda-massAntiLambda - 6.5*sAL) < 1.5*sAL) ){ | |
348080d3 | 3415 | |
ca96d60a | 3416 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3417 | fAntiLambdaBckgDCAPosDaug->Fill(dcaPos,pt); | |
3418 | fAntiLambdaBckgDCANegDaug->Fill(dcaNeg,pt); | |
3419 | } | |
59e0735e | 3420 | |
ca96d60a | 3421 | if( (dcaPos>0.1) && (dcaNeg>0.1) ){ |
59e0735e | 3422 | |
ca96d60a | 3423 | if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){ |
3424 | fAntiLambdaBckgPtPosDaug->Fill(pt,lPtPos); | |
3425 | fAntiLambdaBckgPtNegDaug->Fill(pt,lPtNeg); | |
3426 | ||
3427 | fAntiLambdaBckgPhiEtaPosDaug->Fill(phiPos,etaPos,pt); | |
3428 | fAntiLambdaBckgPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt); | |
3429 | ||
3430 | fAntiLambdaBckgDecayPos->Fill(dx,dy,pt); | |
3431 | fAntiLambdaBckgDecayVertex->Fill(lt,pt); | |
3432 | ||
3433 | fAntiLambdaBckgCPA->Fill(cpa,pt); | |
3434 | fAntiLambdaBckgDCAV0Daug->Fill(dca,pt); | |
59e0735e | 3435 | |
ca96d60a | 3436 | fAntiLambdaBckgNClustersITSPos->Fill(phiPos,posITSNcls,pt); |
3437 | fAntiLambdaBckgNClustersITSNeg->Fill(phiNeg,negITSNcls,pt); | |
3438 | } | |
3439 | ||
3440 | fAntiLambdaBckgNClustersTPC->Fill(phiPos,nClsTPCPos,pt); | |
3441 | fAntiLambdaBckgNClustersTPC->Fill(phiNeg,nClsTPCNeg,-pt); | |
59e0735e | 3442 | |
ca96d60a | 3443 | } |
59e0735e | 3444 | |
ca96d60a | 3445 | }// End selection in outside the mass cut |
3446 | ||
3447 | } // End QA | |
3448 | ||
667b678a | 3449 | break; |
3450 | default: | |
3451 | Printf( " Selection of 'step' is not set properly"); | |
3452 | break; | |
3453 | }// End switch | |
3454 | ||
3455 | } // End AntiLambda selection | |
ca96d60a | 3456 | |
667b678a | 3457 | } // End V0 loop |
3458 | ||
667b678a | 3459 | } |
3460 | ||
3461 | //___________________________________________________________________________________________ | |
3462 | ||
f25a6d07 | 3463 | void AliAnalysisTaskLambdaOverK0sJets::TriggerParticle() |
667b678a | 3464 | { |
348080d3 | 3465 | // Obtain the trigger particles of the event to perform the correlations in phi and eta |
667b678a | 3466 | |
3467 | // ---------------------------- | |
348080d3 | 3468 | // 1. Trigger particles |
b6f9da99 | 3469 | TClonesArray *stack = 0x0; |
3470 | if(fIsMC){ | |
3471 | TList *lst = fAOD->GetList(); | |
3472 | stack = (TClonesArray*)lst->FindObject(AliAODMCParticle::StdBranchName()); | |
3473 | if (!stack) { | |
3474 | Printf("ERROR: stack not available"); | |
3475 | return; | |
3476 | } | |
3477 | } | |
3478 | ||
667b678a | 3479 | Int_t nTrk= fAOD->GetNumberOfTracks(); |
348080d3 | 3480 | AliCentrality *cent = fAOD->GetCentrality(); |
3481 | Float_t centrality = cent->GetCentralityPercentile("V0M"); | |
3482 | const AliAODVertex *vtx = fAOD->GetPrimaryVertex(); | |
3483 | Float_t zv=vtx->GetZ(); | |
667b678a | 3484 | |
348080d3 | 3485 | for (Int_t i=0; i<nTrk; i++) { |
667b678a | 3486 | AliAODTrack *t = fAOD->GetTrack(i); |
59e0735e | 3487 | if(!AcceptTrack(t)) continue; |
348080d3 | 3488 | Double_t pt=t->Pt(); |
3489 | Double_t eta=t->Eta(); | |
b6f9da99 | 3490 | Double_t phi=t->Phi(); |
bd903641 | 3491 | |
3492 | ||
3493 | if( (pt>kPtBinCharged[0]) && (pt<kPtBinCharged[kNc]) && (TMath::Abs(eta)<fTrigEtaMax) ) | |
3494 | fChargedAssocParticles->Add( new AliMiniParticle(centrality, zv, i, pt, phi, eta, 0, 0, 1) ); | |
3495 | ||
b6f9da99 | 3496 | if( (pt>fTrigPtMin) && (pt<fTrigPtMax) && (TMath::Abs(eta)<fTrigEtaMax) ) { |
3497 | fTriggerParticles->Add( new AliMiniParticle(centrality, zv, i, pt, phi, eta, 0, 0, 1) ); | |
3498 | ||
3499 | if(fIsMC){ | |
3500 | Int_t lab = TMath::Abs(t->GetLabel()); | |
3501 | AliAODMCParticle *part=(AliAODMCParticle*)stack->UncheckedAt(lab); | |
3502 | ||
3503 | Float_t resPt = (part->Pt() - pt)/pt; | |
3504 | Float_t resEta = part->Eta() - eta; | |
3505 | Float_t resPhi = part->Phi() - phi; | |
3506 | ||
3507 | fTriggerMCResPt->Fill(resPt,pt,centrality); | |
3508 | fTriggerMCResEta->Fill(resEta,pt,centrality); | |
3509 | fTriggerMCResPhi->Fill(resPhi,pt,centrality); | |
3510 | } | |
3511 | ||
3512 | } | |
667b678a | 3513 | } |
3514 | ||
667b678a | 3515 | // ---------------------------- |
667b678a | 3516 | // 2. Checking if the trigger particle |
3517 | // might be a daughter from the V0-candidate | |
bd903641 | 3518 | /* |
348080d3 | 3519 | for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){ |
3520 | AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i); | |
3521 | Int_t id = trig->ID(); | |
3522 | V0Loop(kTriggerCheck,kFALSE,i,id); | |
667b678a | 3523 | } |
bd903641 | 3524 | */ |
348080d3 | 3525 | |
667b678a | 3526 | } |
3527 | ||
3528 | //___________________________________________________________________________________________ | |
3529 | ||
3530 | void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) | |
3531 | { | |
f25a6d07 | 3532 | // Main loop for the Analysis |
3533 | ||
3534 | // Initializing global variables for the correlation studies (mandatory for each event). | |
3535 | // ---- 1) Trigger Particle: id track | |
3536 | fIdTrigger = -1; | |
3537 | // ---- 2) TriggerCheck: Variables used to crosscheck if trigger particle is a V0 daughter ---- // | |
f25a6d07 | 3538 | fIsV0LP = 0; |
3539 | fPtV0LP = -10.; | |
3540 | fIsSndCheck = 0; | |
3541 | ||
3542 | // Getting AOD Event | |
667b678a | 3543 | fAOD = (AliAODEvent *)InputEvent(); |
3544 | fEvents->Fill(0); //event counter | |
3545 | ||
3546 | if (!fAOD) { | |
3547 | Printf("ERROR: aod not available"); | |
3548 | return; | |
3549 | } | |
3550 | fEvents->Fill(1); | |
3551 | ||
3552 | // Physics selection | |
3553 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
3554 | AliInputEventHandler *hdr=(AliInputEventHandler*)mgr->GetInputEventHandler(); | |
3555 | UInt_t maskIsSelected = hdr->IsEventSelected(); | |
348080d3 | 3556 | Bool_t isSelected = kFALSE; |
3557 | ||
ca96d60a | 3558 | Bool_t isSelectedCentral = kFALSE; |
3559 | Bool_t isSelectedSemiCentral = kFALSE; | |
3560 | Bool_t isSelectedMB = kFALSE; | |
b6f9da99 | 3561 | if( fCollision.Contains("PbPb2010") ) |
348080d3 | 3562 | isSelected = (maskIsSelected & AliVEvent::kMB); |
b6f9da99 | 3563 | else if( fCollision.Contains("PbPb2011") ){ |
ca96d60a | 3564 | isSelectedCentral = maskIsSelected & AliVEvent::kCentral; |
3565 | isSelectedSemiCentral = maskIsSelected & AliVEvent::kSemiCentral; | |
3566 | isSelectedMB = maskIsSelected & AliVEvent::kMB; | |
b6f9da99 | 3567 | if( isSelectedCentral || isSelectedSemiCentral || isSelectedMB ) isSelected = kTRUE; |
348080d3 | 3568 | } |
3569 | ||
3570 | if(!isSelected) return; | |
667b678a | 3571 | fEvents->Fill(2); |
3572 | ||
3573 | // Centrality selection | |
3574 | AliCentrality *cent = fAOD->GetCentrality(); | |
b6a9eae2 | 3575 | Float_t centrality = cent->GetCentralityPercentile("V0M"); |
667b678a | 3576 | fCentrality->Fill(centrality); |
3577 | ||
3578 | if (!cent->IsEventInCentralityClass(fCentMin,fCentMax,"V0M")) return; | |
3579 | fEvents->Fill(3); | |
3580 | ||
3581 | // Primary vertex | |
3582 | const AliAODVertex *vtx = fAOD->GetPrimaryVertex(); | |
3583 | if (vtx->GetNContributors()<3) return; | |
3584 | fEvents->Fill(4); | |
3585 | ||
b6a9eae2 | 3586 | Float_t xv=vtx->GetX(), yv=vtx->GetY(), zv=vtx->GetZ(); |
667b678a | 3587 | |
3588 | if (TMath::Abs(zv) > 10.) return; | |
3589 | fEvents->Fill(5); | |
ca96d60a | 3590 | |
3591 | fPrimaryVertexX->Fill(xv); | |
3592 | fPrimaryVertexY->Fill(yv); | |
3593 | fPrimaryVertexZ->Fill(zv); | |
3594 | ||
53e7de27 | 3595 | fCentrality2->Fill(centrality); |
667b678a | 3596 | |
ca96d60a | 3597 | if(isSelectedCentral) fCentralityTrig->Fill(centrality,1); |
3598 | if(isSelectedSemiCentral) fCentralityTrig->Fill(centrality,2); | |
3599 | if(isSelectedMB) fCentralityTrig->Fill(centrality,3); | |
3600 | ||
3601 | ||
44972668 | 3602 | // Protect the code: only interested in events with centrality < 40% |
3603 | if(centrality>=40.) return; | |
3604 | ||
ca96d60a | 3605 | // Event plane |
3606 | AliEventplane *EventPlane = InputEvent()->GetEventplane(); | |
3607 | Double_t eventPlane = EventPlane->GetEventplane("V0",InputEvent(),2); | |
3608 | ||
3609 | eventPlane = ( (eventPlane < 0) ? eventPlane + TMath::Pi() : eventPlane ); | |
3610 | eventPlane = ( ( eventPlane > TMath::Pi() ) ? eventPlane - TMath::Pi() : eventPlane ); | |
3611 | ||
348080d3 | 3612 | // Getting PID Response |
3613 | fPIDResponse = hdr->GetPIDResponse(); | |
667b678a | 3614 | |
348080d3 | 3615 | Int_t curVtxBin = VtxBin(zv); |
3616 | Int_t curCentBin = CentBin(centrality); | |
53e7de27 | 3617 | |
348080d3 | 3618 | // ********************************************** |
3619 | // Triggered Particle - Trigger Particle | |
3620 | fTriggerParticles = new TObjArray(); | |
3621 | fTriggerParticles->SetOwner(kTRUE); | |
bd903641 | 3622 | fChargedAssocParticles = new TObjArray(); |
3623 | fChargedAssocParticles->SetOwner(kTRUE); | |
348080d3 | 3624 | TriggerParticle(); |
3625 | ||
3626 | // V0-candidate is the highest particle in the event: | |
3627 | if(fIsV0LP) { fEvents->Fill(8); fTriggerIsV0->Fill(fPtV0LP);} | |
667b678a | 3628 | |
348080d3 | 3629 | Int_t NtrigPerEvnt = 0; |
ca96d60a | 3630 | Float_t phi2 = -100.; |
348080d3 | 3631 | for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){ |
3632 | AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i); | |
3633 | ||
3634 | if(trig->WhichCandidate()==0){ | |
348080d3 | 3635 | fTriggerComingFromDaug->Fill(trig->Pt()); |
3636 | fCheckTriggerFromV0Daug->Fill(1); | |
3637 | if(fIsV0LP) fCheckTriggerFromV0Daug->Fill(2); | |
3638 | } | |
3639 | else if( trig->WhichCandidate()==1){ | |
348080d3 | 3640 | fTriggerEtaPhi->Fill(trig->Phi(),trig->Eta()); |
3641 | fTriggerPtCent->Fill(trig->Pt(),centrality,zv); | |
3642 | fCheckTriggerFromV0Daug->Fill(0); | |
ca96d60a | 3643 | |
3644 | phi2 = ( (trig->Phi() > TMath::Pi()) ? trig->Phi() - TMath::Pi() : trig->Phi() ) ; | |
3645 | fTriggerEventPlane->Fill(phi2); | |
3646 | ||
348080d3 | 3647 | NtrigPerEvnt++; |
ca96d60a | 3648 | |
667b678a | 3649 | } |
3650 | ||
3651 | } | |
348080d3 | 3652 | |
ca96d60a | 3653 | if(NtrigPerEvnt>0) fEvents->Fill(11); |
3654 | else fEvents->Fill(12); | |
3655 | ||
b6f9da99 | 3656 | fNTrigPerEvt->Fill(NtrigPerEvnt,centrality); |
59e0735e | 3657 | |
667b678a | 3658 | // ****************************************** |
3659 | // Start loop over MC particles | |
b6f9da99 | 3660 | fTriggerPartMC = new TObjArray(); |
3661 | fTriggerPartMC->SetOwner(kTRUE); | |
3662 | fAssocPartMC = new TObjArray(); | |
3663 | fAssocPartMC->SetOwner(kTRUE); | |
3664 | ||
59e0735e | 3665 | fEndOfHijingEvent = -1; |
667b678a | 3666 | TClonesArray *stack = 0x0; |
b6a9eae2 | 3667 | Float_t mcXv=0., mcYv=0., mcZv=0.; |
667b678a | 3668 | |
3669 | if(fIsMC) { | |
3670 | ||
3671 | TList *lst = fAOD->GetList(); | |
3672 | stack = (TClonesArray*)lst->FindObject(AliAODMCParticle::StdBranchName()); | |
3673 | if (!stack) { | |
3674 | Printf("ERROR: stack not available"); | |
3675 | return; | |
3676 | } | |
3677 | ||
3678 | AliAODMCHeader *mcHdr = | |
3679 | (AliAODMCHeader*)lst->FindObject(AliAODMCHeader::StdBranchName()); | |
3680 | ||
3681 | mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ(); | |
3682 | ||
3683 | Int_t nTrkMC = stack->GetEntriesFast(); | |
3684 | // ----------------------------------------- | |
3685 | // --------- Trigger particle -------------- | |
3686 | // ----------------------------------------- | |
f4a57119 | 3687 | for (Int_t iTrkMC = 0; iTrkMC < nTrkMC; iTrkMC++){ |
667b678a | 3688 | AliAODMCParticle *p0 = (AliAODMCParticle*)stack->At(iTrkMC); |
3689 | if(!p0) continue; | |
667b678a | 3690 | |
f4a57119 | 3691 | // ---------------------------------------- |
31f87a49 | 3692 | // For injected MC: it determines where HIJING event ends |
667b678a | 3693 | if (fEndOfHijingEvent==-1) { |
3694 | if ( ( p0->GetStatus() == 21 ) || | |
3695 | ( (p0->GetPdgCode() == 443) && | |
3696 | (p0->GetMother() == -1) && | |
3697 | (p0->GetDaughter(0) == (iTrkMC+1))) ) { | |
3698 | fEndOfHijingEvent = iTrkMC; | |
3699 | } | |
3700 | } | |
3701 | ||
f4a57119 | 3702 | // ---------------------------------------- |
667b678a | 3703 | Int_t isNaturalPart = 1; |
3704 | if ( (iTrkMC>=fEndOfHijingEvent) && | |
3705 | (fEndOfHijingEvent!=-1) && | |
3706 | (p0->GetMother()<0) ) | |
3707 | isNaturalPart = 0; | |
3708 | ||
f4a57119 | 3709 | // ---------------------------------------- |
ca96d60a | 3710 | if(p0->Charge()==0) continue; |
667b678a | 3711 | if(isNaturalPart == 0) continue; |
3712 | if( !p0->IsPhysicalPrimary() ) continue; | |
ca96d60a | 3713 | |
3714 | if(TMath::Abs(p0->Eta())>fTrigEtaMax) continue; | |
f4a57119 | 3715 | if( ( p0->Pt() < fTrigPtMCMin ) || ( p0->Pt() > fTrigPtMCMax ) ) continue; |
ca96d60a | 3716 | |
b6f9da99 | 3717 | fTriggerPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, p0->Pt(), p0->Phi(), p0->Eta(), 0, 0, 1) ); |
667b678a | 3718 | |
b6f9da99 | 3719 | } // End loop over charged particles |
667b678a | 3720 | |
667b678a | 3721 | // ----------------------------------------- |
3722 | // ---------- Strange particles ------------ | |
3723 | // ----------------------------------------- | |
de2daf46 | 3724 | //fEndOfHijingEvent = -1; |
f4a57119 | 3725 | for (Int_t iTrkMC = 0; iTrkMC < nTrkMC; iTrkMC++){ |
667b678a | 3726 | AliAODMCParticle *p0 = (AliAODMCParticle*)stack->At(iTrkMC); |
3727 | if(!p0) continue; | |
b6f9da99 | 3728 | |
f4a57119 | 3729 | // ---------------------------------------- |
31f87a49 | 3730 | Int_t lPdgcodeCurrentPart = p0->GetPdgCode(); |
667b678a | 3731 | if ( (lPdgcodeCurrentPart != kK0Short) && |
3732 | (lPdgcodeCurrentPart != kLambda0) && | |
f4a57119 | 3733 | (lPdgcodeCurrentPart != kLambda0Bar) && |
3734 | //Adding Xi- and Xi0 particles | |
3735 | (lPdgcodeCurrentPart != kXiMinus) && | |
3736 | (lPdgcodeCurrentPart != 3322) ) continue; | |
667b678a | 3737 | |
3738 | // ---------------------------------------- | |
667b678a | 3739 | Int_t isNaturalPart = 1; |
3740 | if ( (iTrkMC>=fEndOfHijingEvent) && | |
3741 | (fEndOfHijingEvent!=-1) && | |
3742 | (p0->GetMother()<0) ) | |
3743 | isNaturalPart = 0; | |
f4a57119 | 3744 | |
3745 | if( lPdgcodeCurrentPart != kXiMinus ) | |
3746 | fInjectedParticles->Fill(isNaturalPart); | |
667b678a | 3747 | |
59e0735e | 3748 | if(fSeparateInjPart && !isNaturalPart) continue; |
667b678a | 3749 | |
3750 | // ---------------------------------------- | |
b6a9eae2 | 3751 | Float_t lRapCurrentPart = MyRapidity(p0->E(),p0->Pz()); |
3752 | Float_t lEtaCurrentPart = p0->Eta(); | |
3753 | Float_t lPhiCurrentPart = p0->Phi(); | |
3754 | Float_t lPtCurrentPart = p0->Pt(); | |
667b678a | 3755 | |
3756 | Int_t iCurrentMother = p0->GetMother(); | |
3757 | AliAODMCParticle *pCurrentMother = (AliAODMCParticle *)stack->At(iCurrentMother); | |
3758 | Int_t lPdgCurrentMother = 0; | |
3759 | if (iCurrentMother == -1) { lPdgCurrentMother = 0;} | |
3760 | else { lPdgCurrentMother = pCurrentMother->GetPdgCode(); } | |
3761 | ||
3762 | Int_t id0 = p0->GetDaughter(0); | |
3763 | Int_t id1 = p0->GetDaughter(1); | |
3764 | ||
3765 | //if ( id0 == id1 ) continue; | |
3766 | if ( (id0 < 0 || id1 < 0) || | |
3767 | (id0 >=nTrkMC || id1 >= nTrkMC) ) continue; | |
3768 | ||
3769 | AliAODMCParticle *pDaughter0 = (AliAODMCParticle *)stack->UncheckedAt(id0); | |
3770 | AliAODMCParticle *pDaughter1 = (AliAODMCParticle *)stack->UncheckedAt(id1); | |
3771 | if (!pDaughter0 || !pDaughter1) continue; | |
3772 | ||
bef5b5b9 | 3773 | /* |
667b678a | 3774 | if ( TMath::Abs(pDaughter0->Eta()) > fMaxEtaDaughter || |
3775 | TMath::Abs(pDaughter1->Eta()) > fMaxEtaDaughter ) | |
3776 | continue; | |
bef5b5b9 | 3777 | */ |
667b678a | 3778 | // Daughter momentum cut: ! FIX it in case of AOD ! |
ca96d60a | 3779 | /* |
667b678a | 3780 | if ( ( pDaughter0->Pt() < fMinPtDaughter ) || |
3781 | ( pDaughter1->Pt() < fMinPtDaughter ) ) | |
ca96d60a | 3782 | continue; |
3783 | */ | |
667b678a | 3784 | |
f4a57119 | 3785 | if ((p0->Pt())<pMin || (p0->Pt())>100. ) continue; |
667b678a | 3786 | if (TMath::Abs(lRapCurrentPart) > fYMax) continue; |
3787 | ||
b6a9eae2 | 3788 | Float_t dx = mcXv-p0->Xv(), dy = mcYv-p0->Yv(), dz = mcZv-p0->Zv(); |
3789 | Float_t l = TMath::Sqrt(dx*dx + dy*dy + dz*dz); | |
667b678a | 3790 | |
3791 | //Cut in the 3D-distance of the secondary vertex to primary vertex | |
3792 | if (l > 0.01) continue; // secondary V0 | |
3793 | ||
3794 | //Transverse distance to vertex | |
3795 | dx = mcXv-pDaughter0->Xv(); dy = mcYv-pDaughter0->Yv(); | |
d39f4158 | 3796 | //Float_t lt=TMath::Sqrt(dx*dx + dy*dy); |
667b678a | 3797 | |
f4a57119 | 3798 | // Pt Selection |
3799 | if((p0->Pt())<10.) { | |
3800 | ||
3801 | // K0s | |
3802 | if (lPdgcodeCurrentPart == kK0Short) { | |
59e0735e | 3803 | |
31f87a49 | 3804 | |
f4a57119 | 3805 | fK0sMCPt->Fill(lPtCurrentPart); |
3806 | fK0sMCPtRap->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3807 | ||
3808 | if(isNaturalPart){ | |
3809 | fK0sMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3810 | fK0sMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart); | |
ca96d60a | 3811 | |
f4a57119 | 3812 | if(TMath::Abs(lRapCurrentPart)<0.7) fK0sMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality); |
ca96d60a | 3813 | |
f4a57119 | 3814 | if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPart<kPtBinV0[kN1]) && isNaturalPart ) |
3815 | fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 3) ); | |
3816 | } | |
3817 | else{ | |
3818 | fK0sMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3819 | if(TMath::Abs(lRapCurrentPart)<0.7) fK0sMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality); | |
3820 | } | |
667b678a | 3821 | |
f4a57119 | 3822 | } // End K0s selection |
3823 | // Lambda | |
3824 | if (lPdgcodeCurrentPart == kLambda0) { | |
31f87a49 | 3825 | |
f4a57119 | 3826 | fLambdaMCPt->Fill(lPtCurrentPart); |
3827 | fLambdaMCPtRap->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
ca96d60a | 3828 | |
f4a57119 | 3829 | if(isNaturalPart){ |
3830 | fLambdaMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3831 | fLambdaMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart); | |
53e7de27 | 3832 | |
f4a57119 | 3833 | if(TMath::Abs(lRapCurrentPart)<0.7) fLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality); |
59e0735e | 3834 | |
f4a57119 | 3835 | if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPart<kPtBinV0[kN1]) && isNaturalPart ) |
3836 | fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 4) ); | |
3837 | } | |
3838 | else{ | |
3839 | fLambdaMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3840 | if(TMath::Abs(lRapCurrentPart)<0.7) fLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality); | |
3841 | } | |
667b678a | 3842 | |
f4a57119 | 3843 | if ( isNaturalPart && TMath::Abs(lPdgCurrentMother) == 3312 ) |
3844 | fLambdaMCFromXi->Fill(lPtCurrentPart,centrality); | |
ca96d60a | 3845 | |
f4a57119 | 3846 | } // End Lambda |
3847 | // AntiLambda | |
3848 | if (lPdgcodeCurrentPart == kLambda0Bar) { | |
667b678a | 3849 | |
f4a57119 | 3850 | fAntiLambdaMCPt->Fill(lPtCurrentPart); |
3851 | fAntiLambdaMCPtRap->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
667b678a | 3852 | |
f4a57119 | 3853 | if(isNaturalPart){ |
3854 | fAntiLambdaMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3855 | fAntiLambdaMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart); | |
ca96d60a | 3856 | |
f4a57119 | 3857 | if(TMath::Abs(lRapCurrentPart)<0.7) fAntiLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality); |
53e7de27 | 3858 | |
f4a57119 | 3859 | if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPart<kPtBinV0[kN1]) && isNaturalPart ) |
3860 | fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 5) ); | |
3861 | } | |
3862 | else{ | |
3863 | fAntiLambdaMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality); | |
3864 | if(TMath::Abs(lRapCurrentPart)<0.7) fAntiLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality); | |
3865 | } | |
ca96d60a | 3866 | |
f4a57119 | 3867 | if ( isNaturalPart && TMath::Abs(lPdgCurrentMother) == 3312 ) |
3868 | fAntiLambdaMCFromXi->Fill(lPtCurrentPart,centrality); | |
ca96d60a | 3869 | |
f4a57119 | 3870 | } // End AntiLambda |
3871 | ||
3872 | } // End pt selection | |
3873 | // Xi- | |
3874 | if(lPdgcodeCurrentPart == kXiMinus || lPdgcodeCurrentPart == 3322){ | |
3875 | ||
3876 | if( isNaturalPart ) | |
3877 | fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 6) ); | |
3878 | ||
3879 | } //End Xi | |
59e0735e | 3880 | |
667b678a | 3881 | } // End loop over MC |
3882 | ||
b6f9da99 | 3883 | // ----------------------------------------- |
3884 | // ---------- MC Correlations -------------- | |
3885 | // ----------------------------------------- | |
3886 | ||
3887 | Float_t triggerMCPt = -1000.; | |
3888 | Float_t triggerMCPhi = -1000.; | |
3889 | Float_t triggerMCEta = -1000.; | |
3890 | ||
3891 | Float_t dPhiMC = -100.; | |
3892 | Float_t dEtaMC = -100.; | |
3893 | ||
3894 | for(Int_t ii=0; ii<(fTriggerPartMC->GetEntriesFast()); ii++){ | |
b6f9da99 | 3895 | AliMiniParticle* trigMC = (AliMiniParticle*) fTriggerPartMC->At(ii); |
3896 | ||
3897 | triggerMCPt = trigMC->Pt(); | |
3898 | triggerMCPhi = trigMC->Phi(); | |
3899 | triggerMCEta = trigMC->Eta(); | |
3900 | ||
3901 | fTriggerMCPtCent->Fill(triggerMCPt,centrality); | |
3902 | ||
3903 | for(Int_t jj=0; jj<(fAssocPartMC->GetEntriesFast()); jj++){ | |
3904 | ||
1e9b7523 | 3905 | AliMiniParticle* assocMC = (AliMiniParticle*) fAssocPartMC->At(jj); |
b6f9da99 | 3906 | if(assocMC->Pt()>triggerMCPt) continue; |
3907 | ||
3908 | dPhiMC = dPHI(triggerMCPhi,assocMC->Phi()); | |
3909 | dEtaMC = triggerMCEta - assocMC->Eta(); | |
3910 | ||
f4a57119 | 3911 | // K0s, Lambdas and AntiLambdas (h-V0 correlations) |
3912 | if( (triggerMCPt<fTrigPtMax) && ( (assocMC->WhichCandidate()==3) || (assocMC->WhichCandidate()==4) || (assocMC->WhichCandidate()==5) ) ) | |
3913 | for(Int_t k=0;k<kN1;k++) // Pt bin | |
3914 | if( (assocMC->Pt()>=kPtBinV0[k]) && (assocMC->Pt()<kPtBinV0[k+1]) ){ | |
3915 | if(assocMC->WhichCandidate()==3) | |
3916 | fK0sdPhidEtaMC[curCentBin*kN1+k]->Fill(dPhiMC,dEtaMC,zv); | |
3917 | if(assocMC->WhichCandidate()==4) | |
3918 | fLambdadPhidEtaMC[curCentBin*kN1+k]->Fill(dPhiMC,dEtaMC,zv); | |
3919 | if(assocMC->WhichCandidate()==5) | |
3920 | fAntiLambdadPhidEtaMC[curCentBin*kN1+k]->Fill(dPhiMC,dEtaMC,zv); | |
3921 | } // End pt bin | |
3922 | ||
3923 | // Xi Minus (h-Xi correlations) | |
3924 | if( (assocMC->WhichCandidate()==6) ){ | |
3925 | ||
3926 | fXiMinusPtMCAssoc->Fill(assocMC->Pt(),centrality); | |
3927 | ||
3928 | for(Int_t k=0;k<kN2;k++) | |
3929 | if( (assocMC->Pt()>=kPtBinV02[k]) && (assocMC->Pt()<kPtBinV02[k+1]) ){ | |
3930 | if(triggerMCPt<fTrigPtMax) | |
3931 | fXiMinusdPhidEtaMC[curCentBin*kN2+k]->Fill(dPhiMC,dEtaMC,zv); | |
3932 | else | |
3933 | fXiMinusdPhidEtaMC2[curCentBin*kN2+k]->Fill(dPhiMC,dEtaMC,zv); | |
3934 | } // End pt bin | |
3935 | ||
3936 | } // End Xi selection | |
3937 | ||
b6f9da99 | 3938 | } // End loop over trigger particles |
3939 | ||
3940 | } // End loop over trigger particles | |
3941 | ||
f4a57119 | 3942 | // ----------------------------------------- |
3943 | // ---------- MC Correlations -------------- | |
3944 | // -------- Xi leading particle ------------ | |
3945 | // ----------------------------------------- | |
3946 | ||
3947 | // With natural Xi's do loop over the MC trigger particle | |
3948 | // to see if Xi are the leading particle in the event: | |
3949 | // in that case, does the correlations with charged particles as associated particles | |
3950 | ||
3951 | Bool_t isXiLP = kFALSE; | |
3952 | for (Int_t iTrkMC = 0; iTrkMC < nTrkMC; iTrkMC++){ | |
3953 | ||
3954 | AliAODMCParticle *p0 = (AliAODMCParticle*)stack->At(iTrkMC); | |
3955 | if(!p0) continue; | |
3956 | ||
3957 | // ---------------------------------------- | |
3958 | // Selecting only Xi Minus | |
3959 | Int_t lPdgcodeCurrentPart = p0->GetPdgCode(); | |
3960 | if ( (lPdgcodeCurrentPart != kXiMinus) || | |
3961 | (lPdgcodeCurrentPart != 3322) ) continue; | |
3962 | ||
3963 | // ---------------------------------------- | |
3964 | Int_t isNaturalPart = 1; | |
3965 | if ( (iTrkMC>=fEndOfHijingEvent) && | |
3966 | (fEndOfHijingEvent!=-1) && | |
3967 | (p0->GetMother()<0) ) | |
3968 | isNaturalPart = 0; | |
3969 | ||
3970 | if(!isNaturalPart) continue; | |
3971 | ||
3972 | // ---------------------------------------- | |
3973 | // Loop over Trigger particles | |
3974 | isXiLP = kFALSE; | |
3975 | for(Int_t ii=0; ii<(fTriggerPartMC->GetEntriesFast()); ii++){ | |
3976 | AliMiniParticle* trigMC = (AliMiniParticle*) fTriggerPartMC->At(ii); | |
3977 | ||
3978 | if( p0->Pt() > trigMC->Pt() ) isXiLP = kTRUE; | |
3979 | else isXiLP = kFALSE; | |
3980 | ||
3981 | if( isXiLP == kFALSE ) break; | |
3982 | ||
3983 | } // End loop over trigger particles | |
3984 | ||
3985 | // ---------------------------------------- | |
3986 | // Xi is Leading particle | |
3987 | if(isXiLP){ | |
3988 | fXiMinusPtMCTrigger->Fill(p0->Pt(),centrality); | |
3989 | fXiTriggerPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, p0->Pt(), p0->Phi(), p0->Eta(), 0, 0, 10) ); | |
3990 | } | |
3991 | ||
3992 | } | |
3993 | ||
3994 | // ---------------------------------------- | |
3995 | // Xi-h: Do correlations with primary particles | |
3996 | if(isXiLP){ | |
3997 | for(Int_t ii=0; ii<(fXiTriggerPartMC->GetEntriesFast()); ii++){ | |
3998 | AliMiniParticle* trigXiMC = (AliMiniParticle*) fXiTriggerPartMC->At(ii); | |
3999 | ||
4000 | // ========= Charged particles | |
4001 | for (Int_t iTrkMC = 0; iTrkMC < nTrkMC; iTrkMC++){ | |
4002 | AliAODMCParticle *p0 = (AliAODMCParticle*)stack->At(iTrkMC); | |
4003 | if(!p0) continue; | |
4004 | ||
4005 | // ---------------------------------------- | |
4006 | Int_t isNaturalPart = 1; | |
4007 | if ( (iTrkMC>=fEndOfHijingEvent) && | |
4008 | (fEndOfHijingEvent!=-1) && | |
4009 | (p0->GetMother()<0) ) | |
4010 | isNaturalPart = 0; | |
4011 | // ---------------------------------------- | |
4012 | ||
4013 | if(p0->Charge()==0) continue; | |
4014 | if(isNaturalPart == 0) continue; | |
4015 | if( !p0->IsPhysicalPrimary() ) continue; | |
4016 | ||
4017 | if(TMath::Abs(p0->Eta())>fTrigEtaMax) continue; | |
4018 | ||
4019 | dPhiMC = dPHI(trigXiMC->Phi(),p0->Phi()); | |
4020 | dEtaMC = trigXiMC->Eta() - p0->Eta(); | |
4021 | ||
4022 | for(Int_t k=0;k<kN1;k++) // Pt bin | |
4023 | if( (p0->Pt()>=kPtBinV03[k]) && (p0->Pt()<kPtBinV03[k+1]) ) | |
4024 | fXiMinusdPhidEtaMC3[curCentBin*kN3+k]->Fill(dPhiMC,dEtaMC,zv); | |
4025 | ||
4026 | } // End loop over primary particles | |
4027 | ||
4028 | } // end loop over Xi | |
4029 | ||
4030 | } // End condition of Xi is LP | |
4031 | ||
667b678a | 4032 | } // End MC condition |
ca96d60a | 4033 | |
667b678a | 4034 | // ************************************************* |
4035 | // V0 loop - AOD | |
348080d3 | 4036 | fAssocParticles = new TObjArray(); |
4037 | fAssocParticles->SetOwner(kTRUE); | |
4038 | if(NtrigPerEvnt>0) | |
4039 | V0Loop(kReconstruction,kTRUE,-1,-1); | |
4040 | else | |
4041 | V0Loop(kReconstruction,kFALSE,-1,-1); | |
4042 | ||
348080d3 | 4043 | //------------------------------------------------------------- |
4044 | // Correlations | |
4045 | //------------------------------------------------------------- | |
4046 | Float_t ptTrig=0., pxTrig=0., pyTrig=0.; | |
4047 | Float_t massK0s=0., mK0s=0., sK0s=0.; | |
4048 | Float_t massL=0., mL=0., sL=0.; | |
4049 | Float_t massAL=0.; //, mAL=0., sAL=0.; | |
4050 | Float_t pt=-100., pxAssoc=-1000., pyAssoc=-1000.; | |
4051 | Float_t lPhi=0., lEta=0.; | |
4052 | Float_t lAlphaV0=0., lPtArmV0=0, dcaPos=0., dcaNeg=0.; | |
4053 | Float_t dx=-100., dy=-100., dz=-100., lt=-100., res=-100.; | |
4054 | Float_t dlK=-100., dlL=-100.; | |
4055 | Float_t dPhi=-100., dEta=-100., radio=-100.; | |
4056 | ||
bd903641 | 4057 | // -------------------------------- |
4058 | // h-h correlations | |
4059 | for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){ | |
4060 | AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i); | |
4061 | if( trig->WhichCandidate() == 0 ) continue; | |
4062 | ||
4063 | ||
4064 | for(Int_t j=0; j<(fAssocParticles->GetEntriesFast()); j++){ | |
4065 | AliMiniParticle* tChAssoc = (AliMiniParticle*) (fAssocParticles->At(j)); | |
4066 | ||
4067 | lPhi = tChAssoc->Phi(); | |
4068 | lEta = tChAssoc->Eta(); | |
4069 | ||
4070 | // Correlation in deltaPhi & deltaEta | |
4071 | dPhi = dPHI(trig->Phi(),lPhi); | |
4072 | dEta = trig->Eta() - lEta; | |
4073 | ||
4074 | pt = tChAssoc->Pt(); | |
4075 | ||
4076 | for( Int_t k=0; k<kNc; k++) | |
4077 | if( pt>=kPtBinCharged[k] && pt<kPtBinCharged[k+1] ) | |
4078 | fChargeddPhidEta[curCentBin*kNc*kNVtxZ + k*kNVtxZ + curVtxBin]->Fill(dPhi,dEta); | |
4079 | ||
4080 | } | |
4081 | ||
4082 | } | |
4083 | ||
4084 | // -------------------------------- | |
4085 | // h-V0 correlations | |
348080d3 | 4086 | for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){ |
4087 | AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i); | |
4088 | if( trig->WhichCandidate() == 0 ) continue; | |
4089 | ||
4090 | AliAODTrack *tTrig = (AliAODTrack*)fAOD->GetTrack(trig->ID()); | |
4091 | ptTrig = tTrig->Pt(); pxTrig = tTrig->Px(); pyTrig = tTrig->Py(); | |
4092 | ||
4093 | for(Int_t j=0; j<fAssocParticles->GetEntriesFast(); j++){ | |
4094 | AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j)); | |
4095 | AliAODv0 *tAssoc=fAOD->GetV0(trackAssocME->ID()); | |
4096 | const AliAODTrack *ntrack=(AliAODTrack *)tAssoc->GetDaughter(1); | |
4097 | const AliAODTrack *ptrack=(AliAODTrack *)tAssoc->GetDaughter(0); | |
4098 | ||
4099 | if( SameTrack(tTrig,ntrack) || SameTrack(tTrig,ptrack) ) | |
4100 | continue; | |
667b678a | 4101 | |
b6f9da99 | 4102 | if( ptTrig < trackAssocME->Pt() ) continue; |
4103 | ||
348080d3 | 4104 | lPhi = trackAssocME->Phi(); |
4105 | lEta = trackAssocME->Eta(); | |
4106 | ||
4107 | // Correlation in deltaPhi & deltaEta | |
4108 | dPhi = dPHI(trig->Phi(),lPhi); | |
4109 | dEta = trig->Eta() - lEta; | |
4110 | radio = TMath::Sqrt(dPhi*dPhi + dEta*dEta); | |
4111 | ||
4112 | // Armenteros variables: | |
4113 | lAlphaV0 = tAssoc->AlphaV0(); | |
4114 | lPtArmV0 = tAssoc->PtArmV0(); | |
4115 | ||
4116 | // 2D momentum | |
4117 | pt = trackAssocME->Pt(); pxAssoc = tAssoc->Px(); pyAssoc = tAssoc->Py(); | |
4118 | // Decay vertex | |
4119 | Double_t xyz[3]; tAssoc->GetSecondaryVtx(xyz); | |
4120 | dx=xyz[0]-xv; dy=xyz[1]-yv; dz=xyz[2]-zv; | |
4121 | // Decay length: 2D | |
4122 | lt=TMath::Sqrt(dx*dx + dy*dy); | |
4123 | // Spatial resolution trigger-V0 point decay | |
4124 | res = SpatialResolution(pxTrig,pyTrig,pxAssoc,pyAssoc,lt); | |
4125 | // Ctau | |
4126 | dlK = 0.4977*lt/pt; | |
4127 | dlL = 1.1157*lt/pt; | |
4128 | ||
4129 | Int_t binPtv0 = PtBin( pt ); | |
4130 | if(binPtv0==-1) continue; | |
4131 | ||
b6f9da99 | 4132 | Int_t lMCAssocNegDaug = trackAssocME->NegDaugMCLabel(); |
4133 | Int_t lMCAssocPosDaug = trackAssocME->PosDaugMCLabel(); | |
348080d3 | 4134 | |
4135 | // ******************* | |
4136 | // Gamma conversion | |
4137 | // ******************* | |
4138 | if( trackAssocME->WhichCandidate() == 2 ) | |
4139 | fGammaConversiondPhidEta[curCentBin]->Fill(dPhi,dEta,zv); | |
4140 | ||
4141 | // ******************* | |
4142 | // K0s selection | |
4143 | // ******************* | |
4144 | if( trackAssocME->WhichCandidate() == 3 ){ | |
4145 | ||
4146 | massK0s = tAssoc->MassK0Short(); | |
4147 | mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass(); | |
44972668 | 4148 | if( fCollision.Contains("PbPb2010") ) |
4149 | sK0s = kCteK0s2010[curCentBin] + kLinearK0s2010[curCentBin]*pt; | |
4150 | else if( fCollision.Contains("PbPb2011") ) | |
4151 | sK0s = kCteK0s2011[curCentBin] + kLinearK0s2011[curCentBin]*pt; | |
348080d3 | 4152 | |
44972668 | 4153 | // ==== Correlations K0s invariant mass peak ==== // |
4154 | // +++++++++++ Pt bin & centrality | |
4155 | fK0sdPhidEtaPtL[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(dPhi,dEta,massK0s); | |
4156 | ||
348080d3 | 4157 | // ==== Correlations K0s invariant mass peak ==== // |
4158 | if (TMath::Abs(mK0s-massK0s) < 3*sK0s) { | |
b6f9da99 | 4159 | |
4160 | if(radio<0.1) | |
4161 | fK0sSpatialRes->Fill(dPhi,res,lt); | |
4162 | if(radio < 0.4){ | |
4163 | fK0sDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig); | |
4164 | RecCascade(tTrig,ntrack,ptrack,"K0s"); | |
4165 | RecCascade(tTrig,ptrack,ntrack,"K0s"); | |
4166 | } | |
348080d3 | 4167 | |
4168 | ||
4169 | } | |
4170 | // ==== Correlations K0s background ==== // | |
4171 | if( TMath::Abs(mK0s-massK0s + 6.5*sK0s) < 1.5*sK0s || | |
4172 | TMath::Abs(mK0s-massK0s - 6.5*sK0s) < 1.5*sK0s ) { | |
4173 | ||
b6f9da99 | 4174 | // Only fills the histograms when it is a triggered event |
4175 | if(j==0){ | |
4176 | fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,1); | |
4177 | // MC Association of daughter particles | |
4178 | fK0sBckgDCANegDaugToPrimVtx->Fill(lMCAssocNegDaug,dcaNeg); | |
4179 | fK0sBckgDCAPosDaugToPrimVtx->Fill(lMCAssocPosDaug,dcaPos); | |
4180 | } | |
348080d3 | 4181 | |
4182 | // Pt bin & centrality | |
44972668 | 4183 | //fK0sdPhidEtaPtLBckg[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv); |
b6f9da99 | 4184 | |
348080d3 | 4185 | if(radio < 0.4){ // Under the correlation peak |
4186 | fHistArmPodBckg->Fill(lAlphaV0,lPtArmV0,0); | |
4187 | fK0sBckgDecLength->Fill(dlK,ptTrig); | |
4188 | fK0sBckgDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig); | |
4189 | fK0sBckgEtaPhi->Fill(lPhi,lEta); | |
4190 | fK0sBckgPhiRadio->Fill(lPhi,lt); | |
4191 | ||
348080d3 | 4192 | //RecCascade(trkTrig,ntrack,ptrack,"K0s"); |
4193 | //RecCascade(trkTrig,ptrack,ntrack,"K0s"); | |
4194 | ||
4195 | }// End selection in the correlation peak | |
4196 | ||
4197 | } // End background selection | |
4198 | ||
4199 | } // End K0s selection | |
4200 | ||
4201 | // ******************* | |
4202 | // Lambda selection | |
4203 | // ******************* | |
4204 | if( trackAssocME->WhichCandidate() == 4 ){ | |
4205 | massL = tAssoc->MassLambda(); | |
4206 | mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); | |
44972668 | 4207 | if( fCollision.Contains("PbPb2010") ) |
4208 | sL = kCteLambda2010[curCentBin] + kLinearLambda2010[curCentBin]*pt; | |
4209 | else if( fCollision.Contains("PbPb2011") ) | |
4210 | sL = kCteLambda2011[curCentBin] + kLinearLambda2011[curCentBin]*pt; | |
4211 | ||
4212 | // ==== Correlations Lambda invariant mass peak ==== // | |
4213 | // +++++++++++ Pt bin & centrality | |
4214 | fLambdadPhidEtaPtL[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(dPhi,dEta,massL); | |
4215 | ||
348080d3 | 4216 | // ==== Correlations Lambda invariant mass peak ==== // |
4217 | if (TMath::Abs(mL-massL) < 3*sL) { | |
348080d3 | 4218 | |
b6f9da99 | 4219 | if(radio<0.1) |
4220 | fLambdaSpatialRes->Fill(dPhi,res,lt); | |
4221 | if(radio < 0.4){ | |
4222 | fLambdaDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig); | |
4223 | RecCascade(tTrig,ntrack,ptrack,"Lambda"); | |
4224 | RecCascade(tTrig,ptrack,ntrack,"Lambda"); | |
4225 | } | |
348080d3 | 4226 | |
4227 | } // End mass peak selection | |
4228 | // ==== Correlations Lambda background ==== // | |
4229 | if( TMath::Abs(mL-massL + 6.5*sL) < 1.5*sL || | |
4230 | TMath::Abs(mL-massL - 6.5*sL) < 1.5*sL ) { | |
4231 | ||
b6f9da99 | 4232 | // Only fills the histograms when it is a triggered event |
4233 | if(j==0){ | |
348080d3 | 4234 | fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,3); |
b6f9da99 | 4235 | // MC Association of daughter particles |
4236 | fLambdaBckgDCANegDaugToPrimVtx->Fill(lMCAssocNegDaug,dcaNeg); | |
4237 | fLambdaBckgDCAPosDaugToPrimVtx->Fill(lMCAssocPosDaug,dcaPos); | |
4238 | } | |
4239 | ||
4240 | // Pt bin & centrality | |
44972668 | 4241 | //fLambdadPhidEtaPtLBckg[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv); |
348080d3 | 4242 | |
b6f9da99 | 4243 | if(radio < 0.4){ // Under the peak |
4244 | fHistArmPodBckg->Fill(lAlphaV0,lPtArmV0,1); | |
4245 | fLambdaBckgDecLength->Fill(dlL,ptTrig); | |
4246 | fLambdaBckgDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig); | |
4247 | fLambdaBckgEtaPhi->Fill(lPhi,lEta); | |
4248 | fLambdaBckgPhiRadio->Fill(lPhi,lt); | |
348080d3 | 4249 | |
b6f9da99 | 4250 | //RecCascade(trkTrig,ntrack,ptrack,"Lambda"); |
4251 | //RecCascade(trkTrig,ptrack,ntrack,"Lambda"); | |
348080d3 | 4252 | |
b6f9da99 | 4253 | }// End selection in the correlation peak |
348080d3 | 4254 | |
4255 | } // End bacground selection | |
4256 | ||
4257 | }// End Lambda selection | |
4258 | // ******************* | |
4259 | // AntiLambda selection | |
4260 | // ******************* | |
4261 | if( trackAssocME->WhichCandidate() == 5 ){ | |
4262 | massAL = tAssoc->MassAntiLambda(); | |
4263 | mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); | |
44972668 | 4264 | if( fCollision.Contains("PbPb2010") ) |
4265 | sL = kCteAntiLambda2010[curCentBin] + kLinearAntiLambda2010[curCentBin]*pt; | |
4266 | else if( fCollision.Contains("PbPb2011") ) | |
4267 | sL = kCteAntiLambda2011[curCentBin] + kLinearAntiLambda2011[curCentBin]*pt; | |
348080d3 | 4268 | |
44972668 | 4269 | |
4270 | // ==== Correlations Lambda invariant mass peak ==== // | |
4271 | // +++++++++++ Pt bin & centrality | |
4272 | fAntiLambdadPhidEtaPtL[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(dPhi,dEta,massAL); | |
4273 | ||
348080d3 | 4274 | // ==== Correlations AntiLambda invariant mass peak ==== // |
4275 | if (TMath::Abs(mL-massAL) < 3*sL) { | |
348080d3 | 4276 | |
4277 | if(radio<0.1) | |
4278 | fAntiLambdaSpatialRes->Fill(dPhi,res,lt); | |
4279 | if(radio < 0.4){ | |
4280 | fAntiLambdaDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig); | |
4281 | RecCascade(tTrig,ntrack,ptrack,"AntiLambda"); | |
4282 | RecCascade(tTrig,ptrack,ntrack,"AntiLambda"); | |
4283 | } | |
4284 | ||
4285 | } // End AntiLambda mass peak | |
4286 | // ==== Correlations AntiLambda background ==== // | |
4287 | if( (TMath::Abs(mL-massAL + 6.5*sL) < 1.5*sL) || | |
4288 | (TMath::Abs(mL-massAL - 6.5*sL) < 1.5*sL) ){ | |
b6f9da99 | 4289 | |
4290 | // Only fills the histograms when it is a triggered event | |
4291 | if(j==0){ | |
348080d3 | 4292 | fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,5); |
b6f9da99 | 4293 | // MC Association of daughter particles |
4294 | fAntiLambdaBckgDCANegDaugToPrimVtx->Fill(lMCAssocNegDaug,dcaNeg); | |
4295 | fAntiLambdaBckgDCAPosDaugToPrimVtx->Fill(lMCAssocPosDaug,dcaPos); | |
4296 | } | |
348080d3 | 4297 | |
b6f9da99 | 4298 | // Pt bin & centrality |
44972668 | 4299 | //fAntiLambdadPhidEtaPtLBckg[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv); |
348080d3 | 4300 | |
b6f9da99 | 4301 | if(radio < 0.4){ // Under the peak |
4302 | fHistArmPodBckg->Fill(lAlphaV0,lPtArmV0,2); | |
4303 | fAntiLambdaBckgDecLength->Fill(dlL,ptTrig); | |
4304 | fAntiLambdaBckgDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig); | |
4305 | fAntiLambdaBckgEtaPhi->Fill(lPhi,lEta); | |
4306 | fAntiLambdaBckgPhiRadio->Fill(lPhi,lt); | |
348080d3 | 4307 | |
b6f9da99 | 4308 | //RecCascade(trkTrig,ntrack,ptrack,"AntiLambda"); |
4309 | //RecCascade(trkTrig,ptrack,ntrack,"AntiLambda"); | |
348080d3 | 4310 | |
b6f9da99 | 4311 | }// End selection in the correlation peak |
348080d3 | 4312 | |
4313 | }// End AntiLambda background | |
4314 | ||
4315 | } // End AntiLambda selection | |
4316 | ||
4317 | } // End loop over associated particles | |
4318 | ||
4319 | } // End loop over trigger particles | |
4320 | ||
4321 | //------------------------------------------------------------- | |
4322 | // Mixing | |
4323 | //------------------------------------------------------------- | |
bd903641 | 4324 | Double_t phiTrigME=0, etaTrigME=0, phiAssocME=0, etaAssocME=0; |
4325 | Double_t deltaPhi=0, deltaEta=0; | |
4326 | ||
348080d3 | 4327 | TList *evMixList = fMEList[curCentBin*kNVtxZ+curVtxBin]; |
4328 | Int_t nMixed = evMixList->GetSize(); | |
4329 | ||
4330 | if( nMixed>0 && fAssocParticles->GetEntriesFast() >= 0 ){ | |
4331 | ||
4332 | for(Int_t ii=0; ii<nMixed; ii++){ | |
4333 | ||
4334 | AliMiniParticle* trackTriggerME = (AliMiniParticle*) (evMixList->At(ii)); | |
bd903641 | 4335 | phiTrigME = trackTriggerME->Phi(); |
4336 | etaTrigME = trackTriggerME->Eta(); | |
4337 | ||
4338 | // --- Charged associated particles | |
4339 | for(Int_t j=0; j<fChargedAssocParticles->GetEntriesFast(); j++){ | |
4340 | ||
4341 | AliMiniParticle* trackAssocME = (AliMiniParticle*) (fChargedAssocParticles->At(j)); | |
4342 | if( CentBin(trackTriggerME->Centrality()) != CentBin(trackAssocME->Centrality()) ) continue; | |
4343 | if( VtxBin(trackTriggerME->VtxZ()) != VtxBin(trackAssocME->VtxZ()) ) continue; | |
4344 | if( trackAssocME->WhichCandidate() != 1 ) continue; | |
4345 | ||
4346 | phiAssocME = trackAssocME->Phi(); | |
4347 | etaAssocME = trackAssocME->Eta(); | |
4348 | ||
4349 | deltaPhi = dPHI(phiTrigME,phiAssocME); | |
4350 | deltaEta = etaTrigME - etaAssocME; | |
4351 | ||
4352 | for(Int_t k=0; k<kNc; k++) | |
4353 | if( trackAssocME->Pt()>=kPtBinCharged[k] && trackAssocME->Pt()<kPtBinCharged[k+1] ) | |
4354 | fChargeddPhidEtaME[curCentBin*kNc*kNVtxZ + k*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta); | |
4355 | ||
4356 | } | |
4357 | ||
4358 | // --- V0 associated particles | |
348080d3 | 4359 | for(Int_t j=0; j<fAssocParticles->GetEntriesFast(); j++){ |
bd903641 | 4360 | |
348080d3 | 4361 | AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j)); |
4362 | if( CentBin(trackTriggerME->Centrality()) != CentBin(trackAssocME->Centrality()) ) continue; | |
4363 | if( VtxBin(trackTriggerME->VtxZ()) != VtxBin(trackAssocME->VtxZ()) ) continue; | |
4364 | if( trackAssocME->WhichCandidate() == 2 ) continue; | |
4365 | ||
4366 | AliAODv0 *tAssoc=fAOD->GetV0(trackAssocME->ID()); | |
4367 | pt = tAssoc->Pt(); | |
4368 | ||
4369 | Bool_t IsSelected = kFALSE; | |
4370 | // K0s | |
4371 | if( trackAssocME->WhichCandidate() == 3 ){ | |
4372 | massK0s = tAssoc->MassK0Short(); | |
4373 | mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass(); | |
44972668 | 4374 | if( fCollision.Contains("PbPb2010") ) |
4375 | sK0s = kCteK0s2010[curCentBin] + kLinearK0s2010[curCentBin]*pt; | |
4376 | else if( fCollision.Contains("PbPb2011") ) | |
4377 | sK0s = kCteK0s2011[curCentBin] + kLinearK0s2011[curCentBin]*pt; | |
4378 | ||
348080d3 | 4379 | if (TMath::Abs(mK0s-massK0s) < 3*sK0s) IsSelected = kTRUE; |
4380 | } | |
4381 | // Lambda | |
4382 | if( trackAssocME->WhichCandidate() == 4 ){ | |
4383 | massL = tAssoc->MassLambda(); | |
44972668 | 4384 | mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); |
4385 | if( fCollision.Contains("PbPb2010") ) | |
4386 | sL = kCteLambda2010[curCentBin] + kLinearLambda2010[curCentBin]*pt; | |
4387 | else if( fCollision.Contains("PbPb2011") ) | |
4388 | sL = kCteLambda2011[curCentBin] + kLinearLambda2011[curCentBin]*pt; | |
4389 | ||
348080d3 | 4390 | if (TMath::Abs(mL-massL) < 3*sL) IsSelected = kTRUE; |
4391 | } | |
4392 | // AntiLambda | |
4393 | if( trackAssocME->WhichCandidate() == 5 ){ | |
4394 | massAL = tAssoc->MassAntiLambda(); | |
4395 | mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); | |
44972668 | 4396 | if( fCollision.Contains("PbPb2010") ) |
4397 | sL = kCteAntiLambda2010[curCentBin] + kLinearAntiLambda2010[curCentBin]*pt; | |
4398 | else if( fCollision.Contains("PbPb2011") ) | |
4399 | sL = kCteAntiLambda2011[curCentBin] + kLinearAntiLambda2011[curCentBin]*pt; | |
4400 | ||
348080d3 | 4401 | if (TMath::Abs(mL-massAL) < 3*sL) IsSelected = kTRUE; |
4402 | } | |
4403 | ||
4404 | if(!IsSelected) continue; | |
4405 | ||
bd903641 | 4406 | phiAssocME = trackAssocME->Phi(); |
4407 | etaAssocME = trackAssocME->Eta(); | |
348080d3 | 4408 | |
bd903641 | 4409 | deltaPhi = dPHI(phiTrigME,phiAssocME); |
4410 | deltaEta = etaTrigME - etaAssocME; | |
348080d3 | 4411 | |
4412 | Int_t binPtv0 = PtBin( trackAssocME->Pt() ); | |
4413 | if(binPtv0==-1) continue; | |
4414 | ||
4415 | if( trackAssocME->WhichCandidate() == 3 ) { | |
b6f9da99 | 4416 | fK0sdPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);} |
348080d3 | 4417 | else if( trackAssocME->WhichCandidate() == 4 ) |
4418 | fLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta); | |
4419 | else if( trackAssocME->WhichCandidate() == 5 ) | |
4420 | fAntiLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta); | |
4421 | ||
4422 | } | |
4423 | ||
4424 | } | |
4425 | ||
4426 | } | |
4427 | ||
4428 | //-------------------------------------------------------- | |
4429 | //Add the current event to the list of events for mixing | |
4430 | //-------------------------------------------------------- | |
4431 | ||
4432 | //Add current event to buffer and Remove redundant events | |
4433 | if(fTriggerParticles->GetEntriesFast()>=0){ | |
4434 | ||
4435 | for(Int_t ii=0; ii<(fTriggerParticles->GetEntriesFast()); ii++){ | |
4436 | AliMiniParticle* trkTrig = (AliMiniParticle*) fTriggerParticles->At(ii); | |
4437 | //cout << trkTrig->Pt() << " " << ii << endl; | |
4438 | ||
44972668 | 4439 | if(evMixList->GetSize() < nMaxEvMix) |
4440 | evMixList->AddFirst(trkTrig); | |
4441 | /* | |
348080d3 | 4442 | if(evMixList->GetSize() >= nMaxEvMix) { |
4443 | AliMiniParticle *tmp = (AliMiniParticle*) (evMixList->Last()) ; | |
4444 | evMixList->RemoveLast(); | |
4445 | delete tmp; | |
4446 | } | |
44972668 | 4447 | */ |
348080d3 | 4448 | |
4449 | }// End loop over fTriggerParticles | |
4450 | ||
4451 | }// End adding trigger particles to buffers | |
4452 | ||
b6f9da99 | 4453 | } |
667b678a | 4454 | |
4455 | //___________________________________________________________________________________________ | |
4456 | ||
4457 | void AliAnalysisTaskLambdaOverK0sJets::Terminate(Option_t *) | |
4458 | { | |
4459 | // The Terminate() function is the last function to be called during | |
4460 | // a query. It always runs on the client, it can be used to present | |
4461 | // the results graphically or save the results to file. | |
4462 | ||
4463 | fOutput=(TList*)GetOutputData(1); | |
348080d3 | 4464 | fOutputME=(TList*)GetOutputData(2); |
4465 | fOutputQA=(TList*)GetOutputData(3); | |
4466 | ||
4467 | if (fOutput || fOutputME || fOutputQA) { | |
4468 | ||
4469 | if(fOutput) | |
4470 | Printf("\n\t *** DONE: fOutput available *** \n"); | |
4471 | if(fOutputME) | |
4472 | Printf("\n\t *** DONE: fOutputME available *** \n"); | |
4473 | if (fOutputQA) | |
4474 | Printf("\n\t *** DONE: fOutputQA available *** \n"); | |
667b678a | 4475 | } |
348080d3 | 4476 | if (!fOutput || !fOutputME || !fOutputQA) { |
4477 | ||
4478 | if(!fOutput) | |
4479 | Printf("\n\t *** ERROR: fOutput not available *** \n"); | |
4480 | if(!fOutputME) | |
4481 | Printf("\n\t *** ERROR: fOutputME available *** \n"); | |
4482 | if(!fOutputQA) | |
4483 | Printf("\n\t *** ERROR: fOutputQA not available *** \n"); | |
667b678a | 4484 | } |
348080d3 | 4485 | |
4486 | ||
4487 | return; | |
4488 | ||
667b678a | 4489 | } |