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