]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h
returning to vAN-20140515 version of the anlsyis task. Efficiency containers changed...
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Correlations / AliAnalysisTaskLambdaOverK0sJets.h
CommitLineData
667b678a 1
2/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * See cxx source for full Copyright notice */
4
5/*
ca96d60a 6 AliAnalysisTaskLambdaOverK0sJets class
667b678a 7
ca96d60a 8 This program obtains the production of K0s and Lambdas and calculates
9 the correlation (in the variables phi and eta) with respect to the
10 triggers particles (high-pt charged particles).
11 It works with MC information and AOD tree.
12 Origin: X. Sanchez Castro August2012, xsanchez@cern.ch
667b678a 13*/
14
15
16#ifndef ALIANALYSISTASKLAMBDAOVERK0SJETS_H
17#define ALIANALYSISTASKLAMBDAOVERK0SJETS_H
18
19#include "AliAnalysisTaskSE.h"
20
21class AliAODEvent;
22class AliPIDResponse;
23class AliAODTrack;
2d5747b9 24class AliAODVertex;
25class AliAODv0;
667b678a 26
27class TH1F;
28class TH2F;
29class TH3F;
9cb4cfe3 30class THnSparse;
667b678a 31class TList;
32class TString;
33
ca96d60a 34class TObjArray;
35
9cb4cfe3 36// pt f0r V0
6fac7c0d 37const int kN1 = 8;
38const float kPtBinV0[kN1+1] = {2.0,2.25,2.5,2.75,3.0,3.5,4.0,5.0,7.0};
667b678a 39
348080d3 40const int kNVtxZ = 10;
41const double kBinVtxZ[kNVtxZ+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.};
42
44972668 43const int kNCent = 4;
44const double kBinCent[kNCent+1] = {0.0,5.0,10.0,20.0,40.0};
45
46// ------------------------------------
ca96d60a 47// Inv. Mass width as function of the centrality
44972668 48// Linear polimomial dependence: sigma(pt) = a0 * a1*pt
49
50const double kCteK0s2010[kNCent] = {0.00367, 0.00363, 0.00358, 0.00348};
51const double kLinearK0s2010[kNCent] = {6.148E-4, 5.937E-4, 5.741E-4, 5.693E-4};
52
53const double kCteK0s2011[kNCent] = {0.00354, 0.00348, 0.00360, 0.00352};
54const double kLinearK0s2011[kNCent] = {6.526E-4, 6.497E-4, 5.853E-4, 5.808E-4};
55
56const double kCteLambda2010[kNCent] = {0.00113, 0.00114, 0.00119, 0.00119};
57const double kLinearLambda2010[kNCent] = {3.062E-4, 2.900E-4, 2.629E-4, 2.440E-4};
58
59const double kCteLambda2011[kNCent] = {9.81E-4, 9.212E-4, 9.876E-4, 0.00106};
60const double kLinearLambda2011[kNCent] = {3.878E-4, 3.965E-4, 3.611E-4 , 3.351E-4};
61
62const double kCteAntiLambda2010[kNCent] = {0.00109, 0.00134, 0.00117, 0.00116};
63const double kLinearAntiLambda2010[kNCent] = {3.245E-4, 2.308E-4, 2.707E-4, 2.562E-4};
64
65const double kCteAntiLambda2011[kNCent] = {9.859E-4, 0.00111, 0.00104, 0.00110};
66const double kLinearAntiLambda2011[kNCent] = {3.881E-4, 3.379E-4, 3.490E-4, 3.166E-4};
67
68// -------------------------------------
348080d3 69
667b678a 70class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE {
71
72 public:
348080d3 73
74 enum V0LoopStep_t { kTriggerCheck=1, kReconstruction=2 };
667b678a 75
76 AliAnalysisTaskLambdaOverK0sJets(const char *name = "AliAnalysisTaskLambdaOverK0sJets");
348080d3 77 virtual ~AliAnalysisTaskLambdaOverK0sJets();
667b678a 78
79 // Setter for global variables in the event
b6f9da99 80 void SetCollisionType(TString data="PbPb2010") {fCollision=data;}
667b678a 81 void SetMC(Bool_t isMC=kTRUE) {fIsMC=isMC;}
82 void SetPID(Bool_t usePID=kTRUE) {fUsePID=usePID;}
b6a9eae2 83 void SetCentrality(Float_t min=0., Float_t max=90.) {fCentMin=min;fCentMax=max;}
6668159e 84 void SetQA(Bool_t doQA=kFALSE){fDoQA=doQA;}
348080d3 85 void SetDoMix(Bool_t doMixEvt=kTRUE) {fDoMixEvt=doMixEvt;}
b6a9eae2 86 void SetTriggerPt(Float_t ptMinTrig=8., Float_t ptMaxTrig=50.) {fTrigPtMin=ptMinTrig;fTrigPtMax=ptMaxTrig;}
87 void SetTriggerEta(Float_t etaMaxTrig=0.8){fTrigEtaMax=etaMaxTrig;}
6668159e 88 void SetCheckIDTrig(Bool_t checkIDTrig=kFALSE){fCheckIDTrig=checkIDTrig;}
667b678a 89 void SetSeparateInjectedPart(Bool_t doSep=kTRUE) {fSeparateInjPart=doSep;}
90
667b678a 91 // 1. Daughter cuts
b6a9eae2 92 void SetMinPtDaughter(Float_t minPtDaughter=0.160) {fMinPtDaughter=minPtDaughter;}
93 void SetMaxEtaDaughter(Float_t maxEta=0.8) {fMaxEtaDaughter=maxEta;}
94 void SetMaxDCADaughter(Float_t maxDCA=1.0) {fMaxDCADaughter=maxDCA;}
ca96d60a 95 void SetDCAToPrimVtx(Float_t dcaToPrimVtx=0.1) {fDCAToPrimVtx=dcaToPrimVtx;}
96 void SetNSigmaPID(Float_t nSigma=3) {fNSigma=nSigma;}
97 void SetNClsTPC(Float_t nClsTPC=70.) {fDaugNClsTPC=nClsTPC;}
667b678a 98 // 2. V0 candidate
9cb4cfe3 99 void SetEtaCut(Bool_t etaCut=kFALSE) {fUseEtaCut=etaCut;}
b6a9eae2 100 void SetMaxY(Float_t yMax=0.5) {fYMax=yMax;}
b6a9eae2 101 void SetMinCPA(Float_t minCPA=0.998) {fMinCPA=minCPA;}
b6a9eae2 102 void SetCtau(Float_t minCtau = 0., Float_t maxCtau = 3.) {fMinCtau=minCtau;fMaxCtau=maxCtau;}
667b678a 103
104 // Getters
b6a9eae2 105 Float_t GetMinCentr() { return fCentMin; }
106 Float_t GetMaxCentr() { return fCentMax; }
667b678a 107
108 // Main functions
109 virtual void UserCreateOutputObjects();
348080d3 110 virtual Bool_t AcceptTrack(AliAODTrack *t);
ca96d60a 111 virtual Bool_t AcceptTrackV0(const AliAODTrack *t);
667b678a 112 virtual Bool_t AcceptV0(AliAODVertex *vtx, const AliAODv0 *v0);
113 virtual void RecCascade(AliAODTrack *trk1,const AliAODTrack *trk2,const AliAODTrack *trkBch,TString histo);
348080d3 114 virtual void V0Loop(V0LoopStep_t step, Bool_t isTriggered, Int_t iArray, Int_t idTrig);
f25a6d07 115 virtual void TriggerParticle();
667b678a 116
117 virtual void UserExec(Option_t *option);
118 virtual void Terminate(Option_t *);
119
120 private:
121
122 AliAnalysisTaskLambdaOverK0sJets(const AliAnalysisTaskLambdaOverK0sJets&); //not implemented
123 AliAnalysisTaskLambdaOverK0sJets& operator=(const AliAnalysisTaskLambdaOverK0sJets&);//not implemented
124
125 AliAODEvent *fAOD;
b6f9da99 126 TString fCollision; // Data: PbPb2010 / PbPb2011
667b678a 127 Bool_t fIsMC; // Use MC data
128 Bool_t fUsePID; // Use PID for tracks
b6a9eae2 129 Float_t fCentMin; // Minimum centrality
130 Float_t fCentMax; // Maximum centrality
6668159e 131 Bool_t fDoQA; // Do Auality Assurance?
348080d3 132 Bool_t fDoMixEvt; // Do Mixed Events
b6a9eae2 133 Float_t fTrigPtMin; // Minimum pt for trigger particle
134 Float_t fTrigPtMax; // Maximum pt for trigger particle
80c0bcd3 135 Float_t fTrigPtMCMin; // Minimum pt for trigger particle in MC
136 Float_t fTrigPtMCMax; // Maximum pt for trigger particle in MC
b6a9eae2 137 Float_t fTrigEtaMax; // Maximum eta for trigger particle
59e0735e 138 Bool_t fCheckIDTrig; // Do comparison with V0's daughter tracks?
667b678a 139 Bool_t fSeparateInjPart; // Separate MC injected particles in case of correlation
140 Int_t fEndOfHijingEvent; // Limit natural-injected MC particles
f25a6d07 141 AliPIDResponse *fPIDResponse; // PID Response
667b678a 142
b6a9eae2 143 Float_t fMinPtDaughter; // Minimum transverse momentum for V0's daughters
144 Float_t fMaxEtaDaughter; // Maximum pseudo-rapidity for V0's daughters
145 Float_t fMaxDCADaughter; // Maximum Distance of Closest Approach between daughters (given in sigmas)
9cb4cfe3 146 Bool_t fUseEtaCut; // Swicth between rapidity or pseudo-rapidity cut
b6a9eae2 147 Float_t fYMax; // Maximum rapidity for V0
148 Float_t fDCAToPrimVtx; // Mimimum distance of closest approach of daughters to the vertex
149 Float_t fMinCPA; // Minimum Cosine of the Pointing Angle to the vertex for V0
150 Float_t fNSigma; // Number of sigmas for PID wi dE/dx
ca96d60a 151 Float_t fDaugNClsTPC; // Number of TPC clusters for daughters
b6a9eae2 152 Float_t fMinCtau; // Minimum ctau
153 Float_t fMaxCtau; // Maximum ctau
667b678a 154
59e0735e 155 Int_t fIdTrigger; // ID track of the trigger particle
59e0735e 156 Int_t fIsV0LP; // Flag: V0 has the highest pt in the event
157 Float_t fPtV0LP; // Pt of the leading V0
158 Int_t fIsSndCheck; // Flag: trigger particle is the second leaidng particle
f25a6d07 159
59e0735e 160 TList* fOutput; //! List of histograms for main analysis
161 TList* fOutputQA; //! List of histograms for Quality Assurance
348080d3 162 TList* fOutputME; //! List of histograms for Mixed Events
163 TList** fMEList; //![] List of Mixed Events
164
b6f9da99 165 TObjArray* fTriggerParticles; // Trigger particle array
166 TObjArray* fTriggerPartMC; // MC Trigger particle array
167 TObjArray* fAssocParticles; // Associated particle array
168 TObjArray* fAssocPartMC; // MC Associated particle array
9cb4cfe3 169
667b678a 170 TH1F* fEvents; //! Counter for the number of events in each step
667b678a 171 TH1F* fCentrality; //! Event centrality per centil
53e7de27 172 TH1F* fCentrality2; //! Event centrality per centil with |VtxZ|<10cm
ca96d60a 173 TH2F* fCentralityTrig; //! Event centrality per trigger
667b678a 174 TH1F* fPrimaryVertexX; //! Primary vertex position in X
175 TH1F* fPrimaryVertexY; //! Primary vertex position in Y
176 TH1F* fPrimaryVertexZ; //! Primary vertex position in Z
ca96d60a 177
178 TH1F* fTriggerEventPlane; //! Distance between the trigger particle direction and the event plane angle
667b678a 179
b6f9da99 180 TH2F* fTriggerMCPtCent; //! Trigger particle MC: pt vs centrality
181 TH3F* fTriggerMCResPt; //! Trigger particle MC: pt resolution
182 TH3F* fTriggerMCResEta; //! Trigger particle MC: eta resolution
183 TH3F* fTriggerMCResPhi; //! Trigger particle MC: phi resolution
59e0735e 184 TH3F* fTriggerPtCent; //! Trigger particle: pt vs centrality vs Z vertex
a0f483d6 185 TH3F* fTriggerPtCentCh; //! Trigger particle: pt vs centrality vs Z vertex for hh correlations
b6f9da99 186 TH2F* fNTrigPerEvt; //! Trigger particle: Number of particle triggers per event
348080d3 187 TH1F* fTriggerWiSPDHit; //! Trigger particle: Has Hits in the SPD?
667b678a 188 TH2F* fTriggerEtaPhi; //! Trigger particle: eta vs phi
189 TH1F* fCheckTriggerFromV0Daug; //! Trigger particle: it is a daughter from a V0-candidate
190 TH1F* fTriggerComingFromDaug; //! Trigger particle: pt when LP is a daughter from a V0-candidate
191 TH1F* fTriggerIsV0; //! Trigger particle: the V0 is the highest-pt particle
59e0735e 192 TH3F* fCheckIDTrigPtK0s; //! Trigger particle: pt comparison between trigger track and K0s daughter track
193 TH3F* fCheckIDTrigPhiK0s; //! Trigger particle: phi comparison between trigger track and K0s daughter track
348080d3 194 TH3F* fCheckIDTrigEtaK0s; //! Trigger particle: eta comparison between trigger track and K0s daughter track
80c0bcd3 195 TH3F* fCheckIDTrigNclsK0s; //! Trigger particle: number of cluster of the daughter particle
59e0735e 196 TH3F* fCheckIDTrigPtLambda; //! Trigger particle: pt comparison between trigger track and Lambda daughter track
197 TH3F* fCheckIDTrigPhiLambda; //! Trigger particle: phi comparison between trigger track and Lambda daughter track
348080d3 198 TH3F* fCheckIDTrigEtaLambda; //! Trigger particle: eta comparison between trigger track and Lambda daughter track
80c0bcd3 199 TH3F* fCheckIDTrigNclsLambda; //! Trigger particle: number of cluster of the daughter particle
ca96d60a 200 TH3F* fCheckIDTrigPtAntiLambda; //! Trigger particle: pt comparison between trigger track and AntiLambda daughter track
201 TH3F* fCheckIDTrigPhiAntiLambda; //! Trigger particle: phi comparison between trigger track and AntiLambda daughter track
202 TH3F* fCheckIDTrigEtaAntiLambda; //! Trigger particle: eta comparison between trigger track and AntiLambda daughter track
80c0bcd3 203 TH3F* fCheckIDTrigNclsAntiLambda; //! Trigger particle: number of cluster of the daughter particle
204
ca96d60a 205 // ============== Monte Carlo ================= //
667b678a 206 TH1F* fInjectedParticles; //! Number of injected particles
207
ca96d60a 208 // K0s //
667b678a 209 TH1F* fK0sMCPt; //! K0s MC: pt
b6a9eae2 210 TH3F* fK0sMCPtRap; //! K0s MC: pt vs rapidity
ca96d60a 211 TH3F* fK0sMCPtRap2; //! K0s MC: pt vs rapidity (is Natural)
212 TH3F* fK0sMCPtRapVtx; //! K0s MC: pt vs Z vtx position vs centrality
53e7de27 213 TH3F* fK0sMCPtRapEmbeded; //! K0s MC: pt vs rapidity (embeded particles)
ca96d60a 214 TH3F* fK0sMCPtRapVtxEmbeded; //! K0s MC: pt vs Z vtx position rapidity vs centrality (embeded particles)
b6f9da99 215 TH3F* fK0sMCPtPhiEta[kNCent]; //! K0s MC: pt vs pseudo-rapidity
ca96d60a 216
217 TH1F* fK0sAssocPt; //! K0s Assoc: pt
218 TH3F* fK0sAssocPtArm; //! K0s Assoc: pt vs rapidity vs centrality (arm. pod. cut)
219 TH3F* fK0sAssocPtRap; //! K0s Assoc: pt vs rapidity vs centrality
9cb4cfe3 220 TH3F* fK0sAssocPtRapEmbeded; //! K0s Assoc: pt vs rapidity vs centrality (embeded particles)
ca96d60a 221 TH3F* fK0sAssocPtPhiEta[kNCent]; //! K0s Assoc: pt vs pseudo-rapidity
222
9cb4cfe3 223 THnSparse* fK0sAssocPtMassArm[kNCent]; //! K0s Assoc: mass vs pt vs centrality
224 THnSparse* fK0sAssocMassPtVtx[kNCent]; //! K0s Assoc: mass vs pt vs Z vertex position
225 THnSparse* fK0sAssocMassPtDCADaug[kNCent]; //! K0s Assoc: mass vs pt vs dca between daughters
226 THnSparse* fK0sAssocMassPtCPA[kNCent]; //! K0s Assoc: mass vs pt vs cpa
227 THnSparse* fK0sAssocMassPtDCAPV[kNCent]; //! K0s Assoc: mass vs pt vs dca to prim. vtx
228 THnSparse* fK0sAssocMassPtDaugNClsTPC[kNCent]; //! K0s Assoc: mass vs pt vs num. of tpc clusters
ca96d60a 229
9cb4cfe3 230 THnSparse* fK0sAssocPtMassArmEmbeded[kNCent]; //! K0s Assoc: mass vs pt vs rapidity (embeded particles)
231 THnSparse* fK0sAssocMassPtVtxEmbeded[kNCent]; //! K0s Assoc: mass vs pt vs Z vertex position (embeded particles)
232 THnSparse* fK0sAssocMassPtDCADaugEmbeded[kNCent]; //! K0s Assoc: mass vs pt vs dca between daughters (embeded particles)
233 THnSparse* fK0sAssocMassPtCPAEmbeded[kNCent]; //! K0s Assoc: mass vs pt vs cpa (embeded particles)
234 THnSparse* fK0sAssocMassPtDCAPVEmbeded[kNCent]; //! K0s Assoc: mass vs pt vs dca to prim. vtx (embeded particles)
235 THnSparse* fK0sAssocMassPtDaugNClsTPCEmbeded[kNCent]; //! K0s Assoc: mass vs pt vs num. o ftpc clusters (embeded particles)
ca96d60a 236
b6f9da99 237 TH3F* fK0sMCResEta; //! K0s Assoc: eta resolution
59e0735e 238 TH3F* fK0sMCResPhi; //! K0s Assoc: phi resolution
667b678a 239
ca96d60a 240
241 // Lambda //
667b678a 242 TH1F* fLambdaMCPt; //! Lambda MC: pt
b6a9eae2 243 TH3F* fLambdaMCPtRap; //! Lambda MC: pt vs rapidity
ca96d60a 244 TH3F* fLambdaMCPtRap2; //! Lambda MC: pt vs rapidity (is Natural)
245 TH3F* fLambdaMCPtRapVtx; //! Lambda MC: pt vs Z vtx position rapidity vs centrality
53e7de27 246 TH3F* fLambdaMCPtRapEmbeded; //! Lambda MC: pt vs rapidity (embeded particles)
ca96d60a 247 TH3F* fLambdaMCPtRapVtxEmbeded; //! Lambda MC: pt vs Z vtx position vs centrality (embeded particles)
31f87a49 248 TH2F* fLambdaMCFromXi; //! Lambda MC: coming from Xi
b6f9da99 249 TH3F* fLambdaMCPtPhiEta[kNCent]; //! Lambda MC: pt vs pseudo-rapidity
ca96d60a 250
667b678a 251 TH1F* fLambdaAssocPt; //! Lambda Assoc: pt
b6a9eae2 252 TH3F* fLambdaAssocPtRap; //! Lambda Assoc: pt vs rapidity
31f87a49 253 TH2F* fLambdaAssocFromXi; //! Lambda Assoc: coming from Xi
b6f9da99 254 TH3F* fLambdaAssocPtPhiEta[kNCent]; //! Lambda Assoc: pt vs pseudo-rapidity
ca96d60a 255
9cb4cfe3 256 THnSparse* fLambdaAssocMassPtRap[kNCent]; //! Lambda Assoc: pt vs rapidity vs mass
257 THnSparse* fLambdaAssocMassPtRap2[kNCent]; //! Lambda Assoc: pt vs rapidity vs mass (wo Cross contamination)
258 THnSparse* fLambdaAssocMassPtVtx[kNCent]; //! Lambda Assoc: mass vs pt vs Z vertex position
259 THnSparse* fLambdaAssocMassPtDCADaug[kNCent]; //! Lambda Assoc: mass vs pt vs dca btween daughters
260 THnSparse* fLambdaAssocMassPtCPA[kNCent]; //! Lambda Assoc: mass vs pt vs cpa
261 THnSparse* fLambdaAssocMassPtDCAPV[kNCent]; //! Lambda Assoc: mass vs pt vs dca to prim vtx
262 THnSparse* fLambdaAssocMassPtDaugNClsTPC[kNCent]; //! Lambda Assoc: mass vs pt vs num.of tpc clusters
263
264 THnSparse* fLambdaAssocMassPtRapEmbeded[kNCent]; //! Lambda Assoc: pt vs rapidity vs mass (embeded)
265 THnSparse* fLambdaAssocMassPtRapEmbeded2[kNCent]; //! Lambda Assoc: pt vs rapidity vs mass (wo Cross contamination) (embeded)
266 THnSparse* fLambdaAssocMassPtVtxEmbeded[kNCent]; //! Lambda Assoc: mass vs pt vs Z vertex position (embeded particles)
267 THnSparse* fLambdaAssocMassPtDCADaugEmbeded[kNCent]; //! Lambda Assoc: mass vs pt vs dca between daughters (embeded particles)
268 THnSparse* fLambdaAssocMassPtCPAEmbeded[kNCent]; //! Lambda Assoc: mass vs pt vs cpa (embeded particles)
269 THnSparse* fLambdaAssocMassPtDCAPVEmbeded[kNCent]; //! Lambda Assoc: mass vs pt vs dca to prim vtx (embeded particles)
270 THnSparse* fLambdaAssocMassPtDaugNClsTPCEmbeded[kNCent]; //! Lambda Assoc: mass vs pt vs num. of tpc clusters (embeded particles)
ca96d60a 271
b6f9da99 272 TH3F* fLambdaMCResEta; //! Lambda Assoc: eta resolution
59e0735e 273 TH3F* fLambdaMCResPhi; //! Lambda Assoc: phi resolution
274
ca96d60a 275 // AntiLambda //
276 TH1F* fAntiLambdaMCPt; //! AntiLambda MC: pt
277 TH3F* fAntiLambdaMCPtRap; //! AntiLambda MC: pt vs rapidity
278 TH3F* fAntiLambdaMCPtRap2; //! AntiLambda MC: pt vs rapidity (is Natural)
279 TH3F* fAntiLambdaMCPtRapVtx; //! AntiLambda MC: pt vs rapidity vs Z vtx position
280 TH3F* fAntiLambdaMCPtRapEmbeded; //! AntiLambda MC: pt vs rapidity (embeded particles)
281 TH3F* fAntiLambdaMCPtRapVtxEmbeded; //! AntiLambda MC: pt vs rapidity vs Z vtx position
282 TH2F* fAntiLambdaMCFromXi; //! AntiLambda MC: coming from Xi
283 TH3F* fAntiLambdaMCPtPhiEta[kNCent]; //! AntiLambda MC: pt vs pseudo-rapidity
284
285 TH1F* fAntiLambdaAssocPt; //! AntiLambda Assoc: pt
286 TH3F* fAntiLambdaAssocPtRap; //! AntiLambda Assoc: pt vs rapidity vscentrality
287 TH2F* fAntiLambdaAssocFromXi; //! AntiLambda Assoc: coming from Xi
288 TH3F* fAntiLambdaAssocPtPhiEta[kNCent]; //! AntiLambda Assoc: pt vs pseudo-rapidity
289
9cb4cfe3 290 THnSparse* fAntiLambdaAssocMassPtRap[kNCent]; //! AntiLambda Assoc: mass vs pt vs rapidity
291 THnSparse* fAntiLambdaAssocMassPtRap2[kNCent]; //! AntiLambda Assoc: mass vs pt vs rapidity (wo Cross contamination)
292 THnSparse* fAntiLambdaAssocMassPtVtx[kNCent]; //! AntiLambda Assoc: mass vs pt vs Z vtx position
293 THnSparse* fAntiLambdaAssocMassPtDCADaug[kNCent]; //! AntiLambda Assoc: mass vs pt vs Dca between daughters
294 THnSparse* fAntiLambdaAssocMassPtCPA[kNCent]; //! AntiLambda Assoc: mass vs pt vs cpa
295 THnSparse* fAntiLambdaAssocMassPtDCAPV[kNCent]; //! AntiLambda Assoc: mass vs pt vs dca to prim. vtx
296 THnSparse* fAntiLambdaAssocMassPtDaugNClsTPC[kNCent]; //! AntiLambda Assoc: mass vs pt vs num. of tpc clusters
297
298 THnSparse* fAntiLambdaAssocMassPtRapEmbeded[kNCent]; //! AntiLambda Assoc: mass vs pt vs rapidity (embeded)
299 THnSparse* fAntiLambdaAssocMassPtRapEmbeded2[kNCent]; //! AntiLambda Assoc: mass vs pt vs rapidity (wo Cross contamination) (embeded)
300 THnSparse* fAntiLambdaAssocMassPtVtxEmbeded[kNCent]; //! AntiLambda Assoc: mass vs pt vs Z vtx. position (embeded particles)
301 THnSparse* fAntiLambdaAssocMassPtDCADaugEmbeded[kNCent]; //! AntiLambda Assoc: mass vs pt vs dca between daughters (embeded particles)
302 THnSparse* fAntiLambdaAssocMassPtCPAEmbeded[kNCent]; //! AntiLambda Assoc: mass vs pt vs cpa (embeded particles)
303 THnSparse* fAntiLambdaAssocMassPtDCAPVEmbeded[kNCent]; //! AntiLambda Assoc: mass vs pt vs dca to prim. vtx (embeded particles)
304 THnSparse* fAntiLambdaAssocMassPtDaugNClsTPCEmbeded[kNCent]; //! AntiLambda Assoc: mass vs pt vs num. of tpc clusters (embeded particles)
ca96d60a 305
306 TH3F* fAntiLambdaMCResEta; //! AntiLambda Assoc: eta resolution
307 TH3F* fAntiLambdaMCResPhi; //! AntiLambda Assoc: phi resolution
308
59e0735e 309
80c0bcd3 310 /// ====== Histograms for Correlations ====== ///
667b678a 311
312 TH3F* fHistArmenterosPodolanski; //! Armenteros-Podolanski plot inside 3 sigma of the signal
313 TH3F* fHistArmPodBckg; //! Armenteros-Podolanski plot outside 3 sigma of the signal
314
ca96d60a 315
3002fb0e 316
ca96d60a 317 // K0s //
667b678a 318 TH3F* fK0sMass; //! Mass for K0s
ca96d60a 319 TH3F* fK0sMassEmbeded; //! Mass for K0s embeded
80c0bcd3 320 TH3F* fK0sMassPtEta; //! K0s: mass vs pt vs eta
3002fb0e 321 TH3F* fK0sMassPtRap[kNCent]; //! K0s: mass vs pt vs rap vs centrality
80c0bcd3 322 TH3F* fK0sMassPtPhi; //! K0s: mass vs pt vs phi
667b678a 323
667b678a 324 TH2F* fK0sDaughtersPt; //! K0s: pt of daughters
667b678a 325 TH3F* fK0sDCADaugToPrimVtx; //! K0s: DCA to primary vertex of daughters vs leading particle's pt inside a radio wrt the near-side peak
348080d3 326 TH3F* fK0sSpatialRes; //! K0s: Spatial resolution
667b678a 327
44972668 328 TH3F* fK0sdPhidEtaMC[kNCent*kN1]; //! K0s MC: Delta phi,Delta eta vs Z vertex position
329 TH3F* fK0sdPhidEtaPtL[kNVtxZ*kNCent*kN1]; //! K0s: Delta phi,Delta eta vs Z vertex position
330 //TH3F* fK0sdPhidEtaPtLBckg[kNCent*kN1]; //! K0s background: Delta phi,Delta eta vs Z vertex position
348080d3 331
667b678a 332 TH2F* fK0sBckgDecLength; //! K0s background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
333 TH3F* fK0sBckgDCADaugToPrimVtx; //! K0s background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
667b678a 334 TH2F* fK0sBckgEtaPhi; //! K0s background: Phi vs Eta inside a radio wrt the near-side peak
335 TH2F* fK0sBckgPhiRadio; //! K0s background: Phi vs radio inside a radio wrt the near-side peak
336 TH2F* fK0sBckgDCANegDaugToPrimVtx; //! K0s background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
337 TH2F* fK0sBckgDCAPosDaugToPrimVtx; //! K0s background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
348080d3 338 TH2F* fV0MassCascade; //! V0s candiates: Possible mismatching of tracks due to cascades decays
667b678a 339
ca96d60a 340
341 // Lambda //
667b678a 342 TH3F* fLambdaMass; //! Mass for Lambda
ca96d60a 343 TH3F* fLambdaMassEmbeded; //! Mass for Lambda embeded
344 TH3F* fLambdaMass2; //! Mass for Lambda (rejecting crosscontamination)
345 TH3F* fLambdaMass2Embeded; //! Mass for Lambda embded (rejecting crosscontamination)
80c0bcd3 346 TH3F* fLambdaMassPtEta; //! Lambda: mass vs pt vs eta
3002fb0e 347 TH3F* fLambdaMassPtRap[kNCent]; //! Lambda: mass vs pt vs rap
80c0bcd3 348 TH3F* fLambdaMassPtPhi; //! Lambda: mass vs pt vs phi
667b678a 349
667b678a 350 TH2F* fLambdaDaughtersPt; //! Lambda: pt of daughters
667b678a 351 TH3F* fLambdaDCADaugToPrimVtx; //! Lambda: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
348080d3 352 TH3F* fLambdaSpatialRes; //! Lambda: Spatial resolution
667b678a 353
44972668 354 TH3F* fLambdadPhidEtaMC[kNCent*kN1]; //! Lambda MC: Delta phi,Delta eta vs Z vertex position
355 TH3F* fLambdadPhidEtaPtL[kNVtxZ*kNCent*kN1]; //! Lambda: Delta phi,Delta eta vs Z vertex position
356 //TH3F* fLambdadPhidEtaPtLBckg[kNCent*kN1]; //! Lambda background: Delta phi,Delta eta vs Z vertex position
348080d3 357
667b678a 358
359 TH2F* fLambdaBckgDecLength; //! Lambda background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
360 TH3F* fLambdaBckgDCADaugToPrimVtx; //! Lambda background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
667b678a 361 TH2F* fLambdaBckgEtaPhi; //! Lambda background: Phi vs Eta inside a radio wrt the near-side peak
362 TH2F* fLambdaBckgPhiRadio ; //! Lambda background: Phi vs radio inside a radio wrt the near-side peak
363 TH2F* fLambdaBckgDCANegDaugToPrimVtx; //! Lambda background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
364 TH2F* fLambdaBckgDCAPosDaugToPrimVtx; //! Lambda background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
59e0735e 365
ca96d60a 366
367 // AntiLambda //
59e0735e 368 TH3F* fAntiLambdaMass; //! Mass for AntiLambda
ca96d60a 369 TH3F* fAntiLambdaMassEmbeded; //! Mass for AntiLambda embeded
370 TH3F* fAntiLambdaMass2; //! Mass for AntiLambda (rejecting crosscontamination)
371 TH3F* fAntiLambdaMass2Embeded; //! Mass for AntiLambda embded (rejecting crosscontamination)
372
80c0bcd3 373 TH3F* fAntiLambdaMassPtEta; //! AntiLambda: pt vs eta
3002fb0e 374 TH3F* fAntiLambdaMassPtRap[kNCent]; //! AntiLambda: pt vs rap
59e0735e 375 TH3F* fAntiLambdaMassPtPhi; //! Lambda: mass vs phi
376
59e0735e 377 TH2F* fAntiLambdaDaughtersPt; //! AntiLambda: pt of daughters
59e0735e 378 TH3F* fAntiLambdaDCADaugToPrimVtx; //! AntiLambda: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
348080d3 379 TH3F* fAntiLambdaSpatialRes; //! AntiLambda: Spatial resolution
59e0735e 380
44972668 381 TH3F* fAntiLambdadPhidEtaMC[kNCent*kN1]; //! AntiLambda MC: Delta phi,Delta eta vs Z vertex position
382 TH3F* fAntiLambdadPhidEtaPtL[kNVtxZ*kNCent*kN1]; //! AntiLambda: Delta phi,Delta eta vs pt of the leading particle
383 //TH3F* fAntiLambdadPhidEtaPtLBckg[kNCent*kN1]; //! AntiLambda background: Delta phi,Delta eta vs Z vertex position
59e0735e 384
385 TH2F* fAntiLambdaBckgDecLength; //! AntiLambda background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
386 TH3F* fAntiLambdaBckgDCADaugToPrimVtx; //! AntiLambda background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
59e0735e 387 TH2F* fAntiLambdaBckgEtaPhi; //! AntiLambda background: Phi vs Eta inside a radio wrt the near-side peak
388 TH2F* fAntiLambdaBckgPhiRadio ; //! AntiLambda background: Phi vs radio inside a radio wrt the near-side peak
389 TH2F* fAntiLambdaBckgDCANegDaugToPrimVtx; //! AntiLambda background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
390 TH2F* fAntiLambdaBckgDCAPosDaugToPrimVtx; //! AntiLambda background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
80c0bcd3 391
59e0735e 392
393 /// ==== Quality Assurance plots === ///
394
395 // K0s //
ca96d60a 396 TH2F* fK0sPtPosDaug; //! K0s: Pos. pt
397 TH2F* fK0sPtNegDaug; //! K0s: Neg. pt
398 TH2F* fK0sBckgPtPosDaug; //! K0s Bckg: Pos. pt
399 TH2F* fK0sBckgPtNegDaug; //! K0s Bckg: Neg. pt
59e0735e 400
401 TH3F* fK0sPhiEtaPosDaug; //! K0s: Pos. track phi vs eta
402 TH3F* fK0sPhiEtaNegDaug; //! K0s: Neg. track phi vs eta
403 TH3F* fK0sBckgPhiEtaPosDaug; //! K0s Bckg: Pos. track phi vs eta
404 TH3F* fK0sBckgPhiEtaNegDaug; //! K0s Bckg: Neg. track phi vs eta
405
406 TH2F* fK0sDCAPosDaug; //! K0s: Pos. track DCA to primary vertex
407 TH2F* fK0sDCANegDaug; //! K0s: Neg. track DCA to primary vertex
408 TH2F* fK0sBckgDCAPosDaug; //! K0s Bckg: Pos. track DCA to primary vertex
409 TH2F* fK0sBckgDCANegDaug; //! K0s Bckg: Neg. track DCA to primary vertex
410
59e0735e 411 TH3F* fK0sDecayPos; //! K0s: 2D decay position
412 TH3F* fK0sBckgDecayPos; //! K0s Bckg: 2D decay position
413 TH2F* fK0sDecayVertex; //! K0s: decay lenght
414 TH2F* fK0sBckgDecayVertex; //! K0s Bckg: decay lenght
59e0735e 415
416 TH2F* fK0sCPA; //! K0s: cosine of the pointing angle
417 TH2F* fK0sBckgCPA; //! K0s Bckg: cosine of the pointing angle
418 TH2F* fK0sDCAV0Daug; //! K0s: distance of the closest approach to the primary vertex
419 TH2F* fK0sBckgDCAV0Daug; //! K0s Bckg: distance of the closest approach to the primary vertex
420
421 TH3F* fK0sNClustersTPC; //! K0s: Numbers of TPC clusters of the daughter tracks
422 TH3F* fK0sBckgNClustersTPC; //! K0s Bckg: Numbers of TPC clusters of the daughter tracks
423 TH3F* fK0sNClustersITSPos; //! K0s: Pos. Daug. Numbers of ITS clusters of the daughter tracks
424 TH3F* fK0sNClustersITSNeg; //! K0s: Neg. Daug. Numbers of ITS clusters of the daughter tracks
425 TH3F* fK0sBckgNClustersITSPos; //! K0s Bckg: Pos. Daug. Numbers of ITS clusters of the daughter tracks
426 TH3F* fK0sBckgNClustersITSNeg; //! K0s Bckg: Neg. Daug. Numbers of ITS clusters of the daughter tracks
427
59e0735e 428
ca96d60a 429 // Lambda //
430 TH2F* fLambdaPtPosDaug; //! Lambda: Pos. pt
431 TH2F* fLambdaPtNegDaug; //! Lambda: Neg. pt
432 TH2F* fLambdaBckgPtPosDaug; //! Lambda Bckg: Pos. pt
433 TH2F* fLambdaBckgPtNegDaug; //! Lambda Bckg: Neg. pt
59e0735e 434
435 TH3F* fLambdaPhiEtaPosDaug; //! Lambda: Pos. track phi vs eta
436 TH3F* fLambdaPhiEtaNegDaug; //! Lambda: Neg. track phi vs eta
437 TH3F* fLambdaBckgPhiEtaPosDaug; //! Lambda Bckg: Pos. track phi vs eta
438 TH3F* fLambdaBckgPhiEtaNegDaug; //! Lambda Bckg: Neg. track phi vs eta
439
440 TH2F* fLambdaDCAPosDaug; //! Lambda: Pos. track DCA to primary vertex
441 TH2F* fLambdaDCANegDaug; //! Lambda: Neg. track DCA to primary vertex
442 TH2F* fLambdaBckgDCAPosDaug; //! Lambda Bckg: Pos. track DCA to primary vertex
443 TH2F* fLambdaBckgDCANegDaug; //! Lambda Bckg: Neg. track DCA to primary vertex
444
59e0735e 445 TH3F* fLambdaDecayPos; //! Lambda: 2D decay position
446 TH3F* fLambdaBckgDecayPos; //! Lambda Bckg: 2D decay position
447 TH2F* fLambdaDecayVertex; //! Lambda: decay lenght
448 TH2F* fLambdaBckgDecayVertex; //! Lambda Bckg: decay lenght
59e0735e 449
450 TH2F* fLambdaCPA; //! Lambda: cosine of the pointing angle
451 TH2F* fLambdaBckgCPA; //! Lambda Bckg: cosine of the pointing angle
452 TH2F* fLambdaDCAV0Daug; //! Lambda: distance of the closest approach to the primary vertex
453 TH2F* fLambdaBckgDCAV0Daug; //! Lambda Bckg: distance of the closest approach to the primary vertex
454
455 TH3F* fLambdaNClustersTPC; //! Lambda: Numbers of TPC clusters of the daughter tracks
456 TH3F* fLambdaBckgNClustersTPC; //! Lambda Bckg: Numbers of TPC clusters of the daughter tracks
457 TH3F* fLambdaNClustersITSPos; //! Lambda: Pos. Daug. Numbers of ITS clusters of the daughter tracks
458 TH3F* fLambdaNClustersITSNeg; //! Lambda: Neg. Daug. Numbers of ITS clusters of the daughter tracks
459 TH3F* fLambdaBckgNClustersITSPos; //! Lambda Bckg: Pos. Daug. Numbers of ITS clusters of the daughter tracks
460 TH3F* fLambdaBckgNClustersITSNeg; //! Lambda Bckg: Neg. Daug. Numbers of ITS clusters of the daughter tracks
461
59e0735e 462
ca96d60a 463 // AntiLambda //
464 TH2F* fAntiLambdaPtPosDaug; //! AntiLambda: Pos. pt
465 TH2F* fAntiLambdaPtNegDaug; //! AntiLambda: Neg. pt
466 TH2F* fAntiLambdaBckgPtPosDaug; //! AntiLambda Bckg: Pos. pt
467 TH2F* fAntiLambdaBckgPtNegDaug; //! AntiLambda Bckg: Neg. pt
59e0735e 468
469 TH3F* fAntiLambdaPhiEtaPosDaug; //! AntiLambda: Pos. track phi vs eta
470 TH3F* fAntiLambdaPhiEtaNegDaug; //! AntiLambda: Neg. track phi vs eta
471 TH3F* fAntiLambdaBckgPhiEtaPosDaug; //! AntiLambda Bckg: Pos. track phi vs eta
472 TH3F* fAntiLambdaBckgPhiEtaNegDaug; //! AntiLambda Bckg: Neg. track phi vs eta
473
474 TH2F* fAntiLambdaDCAPosDaug; //! AntiLambda: Pos. track DCA to primary vertex
475 TH2F* fAntiLambdaDCANegDaug; //! AntiLambda: Neg. track DCA to primary vertex
476 TH2F* fAntiLambdaBckgDCAPosDaug; //! AntiLambda Bckg: Pos. track DCA to primary vertex
477 TH2F* fAntiLambdaBckgDCANegDaug; //! AntiLambda Bckg: Neg. track DCA to primary vertex
478
59e0735e 479 TH3F* fAntiLambdaDecayPos; //! AntiLambda: 2D decay position
480 TH3F* fAntiLambdaBckgDecayPos; //! AntiLambda Bckg: 2D decay position
481 TH2F* fAntiLambdaDecayVertex; //! AntiLambda: decay lenght
ca96d60a 482 TH2F* fAntiLambdaBckgDecayVertex; //! AntiLambda Bckg: decay lenght
59e0735e 483
484 TH2F* fAntiLambdaCPA; //! AntiLambda: cosine of the pointing angle
485 TH2F* fAntiLambdaBckgCPA; //! AntiLambda Bckg: cosine of the pointing angle
486 TH2F* fAntiLambdaDCAV0Daug; //! AntiLambda: distance of the closest approach to the primary vertex
487 TH2F* fAntiLambdaBckgDCAV0Daug; //! AntiLambda Bckg: distance of the closest approach to the primary vertex
488
489 TH3F* fAntiLambdaNClustersTPC; //! AntiLambda: Numbers of TPC clusters of the daughter tracks
490 TH3F* fAntiLambdaBckgNClustersTPC; //! AntiLambda Bckg: Numbers of TPC clusters of the daughter tracks
491 TH3F* fAntiLambdaNClustersITSPos; //! AntiLambda: Pos. Daug. Numbers of ITS clusters of the daughter tracks
492 TH3F* fAntiLambdaNClustersITSNeg; //! AntiLambda: Neg. Daug. Numbers of ITS clusters of the daughter tracks
493 TH3F* fAntiLambdaBckgNClustersITSPos; //! AntiLambda Bckg: Pos. Daug. Numbers of ITS clusters of the daughter tracks
494 TH3F* fAntiLambdaBckgNClustersITSNeg; //! AntiLambda Bckg: Neg. Daug. Numbers of ITS clusters of the daughter tracks
495
6668159e 496
348080d3 497 /// ==== Mixed Events plots === ///
498 TH2F* fK0sdPhidEtaME[kNVtxZ*kNCent*kN1+1]; //! K0s Mixed Events
499 TH2F* fLambdadPhidEtaME[kNVtxZ*kNCent*kN1+1]; //! Lambda Mixed Events
500 TH2F* fAntiLambdadPhidEtaME[kNVtxZ*kNCent*kN1+1]; //! AntiLambda Mixed Events
501
667b678a 502 ClassDef(AliAnalysisTaskLambdaOverK0sJets,1);
503
504};
505
348080d3 506
507/*
508 Based on AliV0ChBasicParticle class of AliAnalysisTaskV0ChCorrelations.
509 Keeps basic information to reduce memory consumption for event mixing.
510*/
511class AliMiniParticle : public AliVParticle
512{
ca96d60a 513 public:
b6f9da99 514 AliMiniParticle(Float_t centrality, Float_t vtxZ, Int_t id,Double_t pt, Double_t phi,
515 Double_t eta, Int_t negDaugMC, Int_t posDaugMC, Short_t candidate)
348080d3 516 :fCentrality(centrality), fVtxZ(vtxZ), fId(id), fPt(pt),
b6f9da99 517 fPhi(phi), fEta(eta), fNegDaugMC(negDaugMC), fPosDaugMC(posDaugMC), fCandidate(candidate)
ca96d60a 518 {
519 }
348080d3 520
521 virtual ~AliMiniParticle() {}
522
523 // event
524 virtual Float_t Centrality() const { return fCentrality; }
525 virtual Float_t VtxZ() const { return fVtxZ; }
526
527 virtual Int_t ID() const { return fId; }
528 // kinematics
529 virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
530 virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
531 virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
532
533 virtual Double_t Pt() const { return fPt; }
534 virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
535 virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
536
537 virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
538 virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
539 virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
540 virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
541
542 virtual Double_t OneOverPt() const { AliFatal("Not implemented"); return 0; }
543
544 virtual Double_t Phi() const { return fPhi; }
545 virtual Double_t Theta() const { AliFatal("Not implemented"); return 0; }
546 virtual Double_t E() const { AliFatal("Not implemented"); return 0; }
547 virtual Double_t M() const { AliFatal("Not implemented"); return 0; }
548
549 virtual Double_t Eta() const { return fEta; }
550 virtual Double_t Y() const { AliFatal("Not implemented"); return 0; }
551
552 virtual Short_t Charge() const { AliFatal("Not implemented"); return 0; }
553 virtual Int_t GetLabel() const { AliFatal("Not implemented"); return 0; }
554 // PID
555 virtual Int_t PdgCode() const { AliFatal("Not implemented"); return 0; }
556 virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
b6f9da99 557 virtual Int_t NegDaugMCLabel() const { return fNegDaugMC; }
558 virtual Int_t PosDaugMCLabel() const { return fPosDaugMC; }
348080d3 559 virtual Short_t WhichCandidate() const { return fCandidate; }
560
561 private:
562 Float_t fCentrality; // centrality of the event
563 Float_t fVtxZ; // vertex postition in the event
564 Int_t fId; // ID related either to AliAODtrack or AliAODv0
565 Float_t fPt; // pt
566 Float_t fPhi; // phi
567 Float_t fEta; // eta
b6f9da99 568 Int_t fNegDaugMC; // MC origin of negative daughter
569 Int_t fPosDaugMC; // MC origin of positive daughter
348080d3 570 Short_t fCandidate; // Candidate: 0-Not trigger, 1-Trigger, 2-Gamma Conversion, 3-K0s candidates, 4-Lambda candidates, 5-AntiLambda candidates
571
572 ClassDef( AliMiniParticle, 1); // class required for event mixing
573};
574
667b678a 575#endif