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