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