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