]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h
Correlations changed to be obtained with all the trigger particles inside a pt-range
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Correlations / AliAnalysisTaskLambdaOverK0sJets.h
1
2 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * 
3  * See cxx source for full Copyright notice */ 
4
5 /*
6           AliAnalysisTaskLambdaOverK0sJets class
7
8           This program obtains the production of K0s and Lambdas and calculates 
9           the correlation (in the variables phi and eta) with respect to a
10           high-pt charged particle.
11           It works with MC info and AOD tree.
12           WARNING: The Mixed Event part is under construction.
13           Origin: X. Sanchez Castro August2012, xsanchez@cern.ch
14 */
15
16
17 #ifndef ALIANALYSISTASKLAMBDAOVERK0SJETS_H
18 #define ALIANALYSISTASKLAMBDAOVERK0SJETS_H
19  
20 #include "AliAnalysisTaskSE.h"
21
22 class AliAODEvent;
23 class AliPIDResponse;
24 class AliAODTrack;
25 class AliAODVertex;
26 class AliAODv0;
27
28 class TH1F;
29 class TH2F;
30 class TH3F;
31 class TList;
32 class TString;
33
34 const int    kN1 = 4; 
35 const float  kPtBinV0[kN1+1] = {2.,2.5,3.,4.,5.};
36
37 const int    kNVtxZ = 10; 
38 const double kBinVtxZ[kNVtxZ+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.};
39
40 const int    kNCent  = 9;
41 const double kBinCent[kNCent+1] = {0.0,10.0,20.0,30.0,40.0,50.0,60.0,70.0,80.0,90.0};
42
43 class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE {
44
45  public:
46   
47   enum V0LoopStep_t { kTriggerCheck=1, kReconstruction=2 };
48
49   AliAnalysisTaskLambdaOverK0sJets(const char *name = "AliAnalysisTaskLambdaOverK0sJets");
50   virtual ~AliAnalysisTaskLambdaOverK0sJets();
51
52   // Setter for global variables in the event
53   void SetData(TString data="PbPb2010") {fData=data;}
54   void SetMC(Bool_t isMC=kTRUE) {fIsMC=isMC;} 
55   void SetPID(Bool_t usePID=kTRUE) {fUsePID=usePID;} 
56   void SetCentrality(Float_t min=0., Float_t max=90.) {fCentMin=min;fCentMax=max;} 
57   void SetQA(Bool_t doQA=kFALSE){fDoQA=doQA;}
58   void SetDoMix(Bool_t doMixEvt=kTRUE) {fDoMixEvt=doMixEvt;} 
59   void SetTriggerPt(Float_t ptMinTrig=8., Float_t ptMaxTrig=50.) {fTrigPtMin=ptMinTrig;fTrigPtMax=ptMaxTrig;} 
60   void SetTriggerEta(Float_t etaMaxTrig=0.8){fTrigEtaMax=etaMaxTrig;} 
61   void SetCheckIDTrig(Bool_t checkIDTrig=kFALSE){fCheckIDTrig=checkIDTrig;}
62   void SetSeparateInjectedPart(Bool_t doSep=kTRUE) {fSeparateInjPart=doSep;} 
63
64   //   1.  Daughter cuts
65   void SetMinPtDaughter(Float_t minPtDaughter=0.160) {fMinPtDaughter=minPtDaughter;} 
66   void SetMaxEtaDaughter(Float_t maxEta=0.8) {fMaxEtaDaughter=maxEta;} 
67   void SetMaxDCADaughter(Float_t maxDCA=1.0) {fMaxDCADaughter=maxDCA;} 
68   //   2.  V0 candidate
69   void SetMaxY(Float_t yMax=0.5) {fYMax=yMax;} 
70   void SetDCAToPrimVtx(Float_t dcaToPrimVtx=0.1) {fDCAToPrimVtx=dcaToPrimVtx;}
71   void SetMinCPA(Float_t minCPA=0.998) {fMinCPA=minCPA;} 
72   void SetNSigmaPID(Float_t nSigma=3) {fNSigma=nSigma;} 
73   void SetCtau(Float_t minCtau = 0., Float_t maxCtau = 3.) {fMinCtau=minCtau;fMaxCtau=maxCtau;} 
74
75   // Getters
76   Float_t GetMinCentr() { return fCentMin; }
77   Float_t GetMaxCentr() { return fCentMax; }
78
79   // Main functions
80   virtual void     UserCreateOutputObjects();
81   virtual Bool_t   AcceptTrack(AliAODTrack *t); 
82   virtual Bool_t   AcceptV0(AliAODVertex *vtx, const AliAODv0 *v0);
83   virtual void     RecCascade(AliAODTrack *trk1,const AliAODTrack *trk2,const AliAODTrack *trkBch,TString histo);
84   virtual void     V0Loop(V0LoopStep_t step, Bool_t isTriggered, Int_t iArray, Int_t idTrig);
85   virtual void     TriggerParticle();
86     
87   virtual void     UserExec(Option_t *option);
88   virtual void     Terminate(Option_t *);  
89
90  private: 
91
92   AliAnalysisTaskLambdaOverK0sJets(const AliAnalysisTaskLambdaOverK0sJets&);           //not implemented
93   AliAnalysisTaskLambdaOverK0sJets& operator=(const AliAnalysisTaskLambdaOverK0sJets&);//not implemented 
94
95   AliAODEvent *fAOD;
96   Bool_t   fIsMC;                        //  Use MC data 
97   TString  fData;                        //  Data: PbPb2010 / PbPb2011
98   Bool_t   fUsePID;                      //  Use PID for tracks
99   Float_t  fCentMin;                     //  Minimum centrality
100   Float_t  fCentMax;                     //  Maximum centrality
101   Bool_t   fDoQA;                        //  Do Auality Assurance?
102   Bool_t   fDoMixEvt;                    //  Do Mixed Events
103   Float_t  fTrigPtMin;                   //  Minimum pt for trigger particle
104   Float_t  fTrigPtMax;                   //  Maximum pt for trigger particle
105   Float_t  fTrigEtaMax;                  //  Maximum eta for trigger particle
106   Bool_t   fCheckIDTrig;                 //  Do comparison with V0's daughter tracks?
107   Bool_t   fSeparateInjPart;             //  Separate MC injected particles in case of correlation 
108   Int_t    fEndOfHijingEvent;            //  Limit natural-injected MC  particles 
109   AliPIDResponse *fPIDResponse;          //  PID Response
110
111
112   Float_t fMinPtDaughter;                //  Minimum transverse momentum for V0's daughters
113   Float_t fMaxEtaDaughter;               //  Maximum pseudo-rapidity for V0's daughters  
114   Float_t fMaxDCADaughter;               //  Maximum Distance of Closest Approach between daughters (given in sigmas)
115   Float_t fYMax;                         //  Maximum rapidity for V0
116   Float_t fDCAToPrimVtx;                 //  Mimimum distance of closest approach of daughters to the vertex            
117   Float_t fMinCPA;                       //  Minimum Cosine of the Pointing Angle to the vertex for V0  
118   Float_t fNSigma;                       //  Number of sigmas for PID wi dE/dx
119   Float_t fMinCtau;                      //  Minimum ctau
120   Float_t fMaxCtau;                      //  Maximum ctau
121
122   Int_t   fIdTrigger;                    //  ID track of the trigger particle
123   Int_t   fIsV0LP;                       //  Flag: V0 has the highest pt in the event
124   Float_t fPtV0LP;                       //  Pt of the leading V0
125   Int_t   fIsSndCheck;                   //  Flag: trigger particle is the second leaidng particle
126   
127
128   TList*  fOutput;                       //! List of histograms for main analysis
129   TList*  fOutputQA;                     //! List of histograms for Quality Assurance
130   TList*  fOutputME;                     //! List of histograms for Mixed Events
131   TList** fMEList;                       //![] List of Mixed Events
132
133   TObjArray* fTriggerParticles;
134   TObjArray* fAssocParticles;
135
136
137   TH1F*   fEvents;                       //! Counter for the number of events in each step
138   TH1F*   fCentrality;                   //! Event centrality per centil
139   TH1F*   fPrimaryVertexX;               //! Primary vertex position in X
140   TH1F*   fPrimaryVertexY;               //! Primary vertex position in Y
141   TH1F*   fPrimaryVertexZ;               //! Primary vertex position in Z
142   TH2F*   fCentMult;                     //! Event centrality vs Track multiplicity
143   TH2F*   fdEdx;                         //! dEdx
144   TH2F*   fdEdxPid;                      //! dEdx with PID
145
146   TH3F*   fTriggerMCPtCent;              //! Trigger particle MC: pt vs centrality
147   TH3F*   fTriggerPtCent;                //! Trigger particle: pt vs centrality vs Z vertex
148   TH1F*   fNTrigPerEvt;                  //! Trigger particle: Number of particle triggers per event
149   TH1F*   fTriggerWiSPDHit;              //! Trigger particle: Has Hits in the SPD?
150   TH2F*   fTriggerEtaPhi;                //! Trigger particle: eta vs phi
151   TH1F*   fCheckTriggerFromV0Daug;       //! Trigger particle: it is a daughter from a V0-candidate
152   TH1F*   fTriggerComingFromDaug;        //! Trigger particle: pt when LP is a daughter from a V0-candidate
153   TH1F*   fTriggerIsV0;                  //! Trigger particle: the V0 is the highest-pt particle
154   TH3F*   fCheckIDTrigPtK0s;             //! Trigger particle: pt comparison between trigger track and K0s daughter track
155   TH3F*   fCheckIDTrigPhiK0s;            //! Trigger particle: phi comparison between trigger track and K0s daughter track
156   TH3F*   fCheckIDTrigEtaK0s;            //! Trigger particle: eta comparison between trigger track and K0s daughter track
157   TH3F*   fCheckIDTrigPtLambda;          //! Trigger particle: pt comparison between trigger track and Lambda daughter track
158   TH3F*   fCheckIDTrigPhiLambda;         //! Trigger particle: phi comparison between trigger track and Lambda daughter track
159   TH3F*   fCheckIDTrigEtaLambda;         //! Trigger particle: eta comparison between trigger track and Lambda daughter track
160   TH3F*   fCheckIDTrigPtAntiLambda;      //! Trigger particle: pt comparison between trigger track and Lambda daughter track
161   TH3F*   fCheckIDTrigPhiAntiLambda;     //! Trigger particle: phi comparison between trigger track and Lambda daughter track
162   TH3F*   fCheckIDTrigEtaAntiLambda;     //! Trigger particle: eta comparison between trigger track and Lambda daughter track
163  
164
165   TH1F*   fInjectedParticles;            //! Number of injected particles
166
167   TH1F*   fK0sMCPt;                      //! K0s MC: pt
168   TH3F*   fK0sMCPtRap;                   //! K0s MC: pt vs rapidity
169   TH3F*   fK0sMCPtPhiEta;                //! K0s MC: pt vs pseudo-rapidity
170   TH1F*   fK0sAssocPt;                   //! K0s Assoc: pt
171   TH3F*   fK0sAssocPtArm;                //! K0s Assoc: pt vs decay lenght vs centrality
172   TH3F*   fK0sAssocPtRap;                //! K0s Assoc: pt vs rapidity
173   TH3F*   fK0sAssocPtPhiEta;             //! K0s Assoc: pt vs pseudo-rapidity
174   TH3F*   fK0sMCResPhi;                  //! K0s Assoc: phi resolution
175
176   TH1F*   fLambdaMCPt;                   //! Lambda MC: pt
177   TH3F*   fLambdaMCPtRap;                //! Lambda MC: pt vs rapidity
178   TH3F*   fLambdaMCPtPhiEta;             //! Lambda MC: pt vs pseudo-rapidity
179   TH1F*   fLambdaAssocPt;                //! Lambda Assoc: pt
180   TH3F*   fLambdaAssocPtArm;             //! Lambda Assoc: pt vs decay lenght vs centrality
181   TH3F*   fLambdaAssocPtRap;             //! Lambda Assoc: pt vs rapidity
182   TH3F*   fLambdaAssocPtPhiEta;          //! Lambda Assoc: pt vs pseudo-rapidity
183   TH3F*   fLambdaMCResPhi;               //! Lambda Assoc: phi resolution
184
185   TH1F*   fAntiLambdaMCPt;               //! AntiLambda MC: pt
186   TH3F*   fAntiLambdaMCPtRap;            //! AntiLambda MC: pt vs rapidity
187   TH3F*   fAntiLambdaMCPtPhiEta;         //! AntiLambda MC: pt vs pseudo-rapidity
188   TH1F*   fAntiLambdaAssocPt;            //! AntiLambda Assoc: pt
189   TH3F*   fAntiLambdaAssocPtArm;         //! AntiLambda Assoc: pt vs decay lenght vs centrality
190   TH3F*   fAntiLambdaAssocPtRap;         //! AntiLambda Assoc: pt vs rapidity
191   TH3F*   fAntiLambdaAssocPtPhiEta;      //! AntiLambda Assoc: pt vs pseudo-rapidity
192   TH3F*   fAntiLambdaMCResPhi;           //! AntiLambda Assoc: phi resolution
193
194   /// ====== Histohgrmas for Correlations ====== ///
195
196   TH3F*   fHistArmenterosPodolanski;     //! Armenteros-Podolanski plot inside 3 sigma of the signal
197   TH3F*   fHistArmPodBckg;               //! Armenteros-Podolanski plot outside 3 sigma of the signal      
198
199   TH3F*   fK0sMass;                      //! Mass for K0s
200   TH3F*   fK0sPtvsEta;                   //! K0s: pt vs eta
201   TH3F*   fK0sPtvsRap;                   //! K0s: pt vs rap
202   TH2F*   fK0sEtaPhi;                    //! K0s: eta vs phi
203   TH3F*   fK0sMassPtPhi;                 //! K0s: mass vs phi
204
205   TH3F*   fK0sSiPtL;                     //! K0s: mass, vs leading particle
206   TH2F*   fK0sDaughtersPt;               //! K0s: pt of daughters
207   TH3F*   fK0sDCADaugToPrimVtx;          //! K0s: DCA to primary vertex of daughters vs leading particle's pt inside a radio wrt the near-side peak
208   TH3F*   fK0sSpatialRes;                //! K0s: Spatial resolution  
209    
210   TH3F*   fK0sdPhidEtaMC[kNCent*kN1];           //! K0s MC: Delta phi,Delta eta vs pt of the leading particle
211   TH3F*   fK0sdPhidEtaPtL[kNCent*kN1];          //! K0s: Delta phi,Delta eta vs pt of the leading particle
212   TH3F*   fK0sdPhidEtaPtLBckg[kNCent*kN1];      //! K0s background: Delta phi,Delta eta vs pt of the leading particle
213  
214   TH2F*   fK0sBckgDecLength;             //! K0s background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
215   TH3F*   fK0sBckgDCADaugToPrimVtx;      //! K0s background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
216   TH2F*   fK0sdEdxPosDaug;               //! K0s background: dE/dx of the positive daughter particle inside a radio wrt the near-side peak
217   TH2F*   fK0sdEdxNegDaug;               //! K0s background: dE/dx of the negative daughter particle inside a radio wrt the near-side peak
218   TH2F*   fK0sBckgEtaPhi;                //! K0s background: Phi vs Eta inside a radio wrt the near-side peak
219   TH2F*   fK0sBckgPhiRadio;              //! K0s background: Phi vs radio inside a radio wrt the near-side peak
220   TH2F*   fK0sBckgDCANegDaugToPrimVtx;   //! K0s background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
221   TH2F*   fK0sBckgDCAPosDaugToPrimVtx;   //! K0s background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
222   TH2F*   fV0MassCascade;                //! V0s candiates: Possible mismatching of tracks due to cascades decays
223
224   TH3F*   fLambdaMass;                   //! Mass for Lambda
225   TH3F*   fLambdaPtvsEta;                //! Lambda: pt vs eta
226   TH3F*   fLambdaPtvsRap;                //! Lambda: pt vs rap
227   TH2F*   fLambdaEtaPhi;                 //! Lambda: eta vs phi
228   TH3F*   fLambdaMassPtPhi;              //! Lambda: mass vs phi 
229
230   TH3F*   fLambdaSiPtL;                  //! Lambda: mass, vs leading particle
231   TH2F*   fLambdaDaughtersPt;            //! Lambda: pt of daughters
232   TH3F*   fLambdaDCADaugToPrimVtx;       //! Lambda: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
233   TH3F*   fLambdaSpatialRes;             //! Lambda: Spatial resolution  
234
235   TH3F*   fLambdadPhidEtaMC[kNCent*kN1];          //! Lambda MC: Delta phi,Delta eta vs pt of the leading particle
236   TH3F*   fLambdadPhidEtaPtL[kNCent*kN1];         //! Lambda: Delta phi,Delta eta vs pt of the leading particle
237   TH3F*   fLambdadPhidEtaPtLBckg[kNCent*kN1];     //! Lambda background: Delta phi,Delta eta vs pt of the leading particle
238  
239
240   TH2F*   fLambdaBckgDecLength;            //! Lambda background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
241   TH3F*   fLambdaBckgDCADaugToPrimVtx;     //! Lambda background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
242   TH2F*   fLambdadEdxPosDaug;              //! Lambda background: dE/dx of the positive daughter particle inside a radio wrt the near-side peak
243   TH2F*   fLambdadEdxNegDaug;              //! Lambda background: dE/dx of the negative daughter particle inside a radio wrt the near-side peak
244   TH2F*   fLambdaBckgEtaPhi;               //! Lambda background: Phi vs Eta inside a radio wrt the near-side peak
245   TH2F*   fLambdaBckgPhiRadio ;            //! Lambda background: Phi vs radio inside a radio wrt the near-side peak
246   TH2F*   fLambdaBckgDCANegDaugToPrimVtx;  //! Lambda background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
247   TH2F*   fLambdaBckgDCAPosDaugToPrimVtx;  //! Lambda background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
248
249   TH3F*   fAntiLambdaMass;                     //! Mass for AntiLambda
250   TH3F*   fAntiLambdaPtvsEta;                  //! AntiLambda: pt vs eta
251   TH3F*   fAntiLambdaPtvsRap;                  //! AntiLambda: pt vs rap
252   TH2F*   fAntiLambdaEtaPhi;                   //! AntiLambda: eta vs phi
253   TH3F*   fAntiLambdaMassPtPhi;                //! Lambda: mass vs phi 
254
255   TH3F*   fAntiLambdaSiPtL;                    //! AntiLambda: mass, vs leading particle
256   TH2F*   fAntiLambdaDaughtersPt;              //! AntiLambda: pt of daughters
257   TH3F*   fAntiLambdaDCADaugToPrimVtx;         //! AntiLambda: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
258   TH3F*   fAntiLambdaSpatialRes;               //! AntiLambda: Spatial resolution  
259
260   TH3F*   fAntiLambdadPhidEtaMC[kNCent*kN1];          //! AntiLambda MC: Delta phi,Delta eta vs pt of the leading particle
261   TH3F*   fAntiLambdadPhidEtaPtL[kNCent*kN1];         //! AntiLambda: Delta phi,Delta eta vs pt of the leading particle
262   TH3F*   fAntiLambdadPhidEtaPtLBckg[kNCent*kN1];     //! AntiLambda background: Delta phi,Delta eta vs pt of the leading particle
263
264   TH2F*   fAntiLambdaBckgDecLength;            //! AntiLambda background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
265   TH3F*   fAntiLambdaBckgDCADaugToPrimVtx;     //! AntiLambda background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
266   TH2F*   fAntiLambdadEdxPosDaug;              //! AntiLambda background: dE/dx of the positive daughter particle inside a radio wrt the near-side peak
267   TH2F*   fAntiLambdadEdxNegDaug;              //! AntiLambda background: dE/dx of the negative daughter particle inside a radio wrt the near-side peak
268   TH2F*   fAntiLambdaBckgEtaPhi;               //! AntiLambda background: Phi vs Eta inside a radio wrt the near-side peak
269   TH2F*   fAntiLambdaBckgPhiRadio ;            //! AntiLambda background: Phi vs radio inside a radio wrt the near-side peak
270   TH2F*   fAntiLambdaBckgDCANegDaugToPrimVtx;  //! AntiLambda background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
271   TH2F*   fAntiLambdaBckgDCAPosDaugToPrimVtx;  //! AntiLambda background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
272
273   TH3F*  fGammaConversiondPhidEta[kNCent];
274   
275     
276   ///  ==== Quality Assurance plots === ///
277
278   //           K0s            //
279
280   TH3F*   fK0sPIDPosDaug;                    //! K0s: Pos. track PID
281   TH3F*   fK0sPIDNegDaug;                    //! K0s: Neg. track PID
282   TH3F*   fK0sBckgPIDPosDaug;                //! K0s Bckg: Pos. track PID
283   TH3F*   fK0sBckgPIDNegDaug;                //! K0s Bckg: Neg. track PID
284
285   TH3F*   fK0sPhiEtaPosDaug;                 //! K0s: Pos. track phi vs eta 
286   TH3F*   fK0sPhiEtaNegDaug;                 //! K0s: Neg. track phi vs eta
287   TH3F*   fK0sBckgPhiEtaPosDaug;             //! K0s Bckg: Pos. track phi vs eta  
288   TH3F*   fK0sBckgPhiEtaNegDaug;             //! K0s Bckg: Neg. track phi vs eta
289
290   TH2F*   fK0sDCAPosDaug;                    //! K0s: Pos. track DCA to primary vertex
291   TH2F*   fK0sDCANegDaug;                    //! K0s: Neg. track DCA to primary vertex
292   TH2F*   fK0sBckgDCAPosDaug;                //! K0s Bckg: Pos. track DCA to primary vertex
293   TH2F*   fK0sBckgDCANegDaug;                //! K0s Bckg: Neg. track DCA to primary vertex
294
295   TH2F*   fK0sDifPtPosDaug;                  //! K0s: Pos. track diference berween pt of the daughter and the V0
296   TH2F*   fK0sDifPtNegDaug;                  //! K0s: Neg. track diference berween pt of the daughter and the V0
297   TH2F*   fK0sBckgDifPtPosDaug;              //! K0s Bckg: Pos. track diference berween pt of the daughter and the V0
298   TH2F*   fK0sBckgDifPtNegDaug;              //! K0s Bckg: Neg. track diference berween pt of the daughter and the V0
299
300   TH3F*   fK0sDecayPos;                      //! K0s: 2D decay position  
301   TH3F*   fK0sBckgDecayPos;                  //! K0s Bckg: 2D decay position   
302   TH2F*   fK0sDecayVertex;                   //! K0s: decay lenght
303   TH2F*   fK0sBckgDecayVertex;               //! K0s Bckg: decay lenght 
304   TH2F*   fK0sDecayVertexZoom;               //! K0s: decay lenght Zoom
305   TH2F*   fK0sBckgDecayVertexZoom;           //! K0s Bckg: decay lenght Zoom
306
307   TH2F*   fK0sCPA;                           //! K0s: cosine of the pointing angle
308   TH2F*   fK0sBckgCPA;                       //! K0s Bckg: cosine of the pointing angle
309   TH2F*   fK0sDCAV0Daug;                     //! K0s: distance of the closest approach to the primary vertex
310   TH2F*   fK0sBckgDCAV0Daug;                 //! K0s Bckg: distance of the closest approach to the primary vertex 
311
312   TH3F*   fK0sNClustersTPC;                  //! K0s: Numbers of TPC clusters of the daughter tracks 
313   TH3F*   fK0sBckgNClustersTPC;              //! K0s Bckg: Numbers of TPC clusters of the daughter tracks 
314   TH3F*   fK0sNClustersITSPos;               //! K0s: Pos. Daug. Numbers of ITS clusters of the daughter tracks 
315   TH3F*   fK0sNClustersITSNeg;               //! K0s: Neg. Daug. Numbers of ITS clusters of the daughter tracks 
316   TH3F*   fK0sBckgNClustersITSPos;           //! K0s Bckg: Pos. Daug. Numbers of ITS clusters of the daughter tracks 
317   TH3F*   fK0sBckgNClustersITSNeg;           //! K0s Bckg: Neg. Daug. Numbers of ITS clusters of the daughter tracks 
318
319   //          Lambda          //
320
321   TH3F*   fLambdaPIDPosDaug;                    //! Lambda: Pos. track PID
322   TH3F*   fLambdaPIDNegDaug;                    //! Lambda: Neg. track PID
323   TH3F*   fLambdaBckgPIDPosDaug;                //! Lambda Bckg: Pos. track PID
324   TH3F*   fLambdaBckgPIDNegDaug;                //! Lambda Bckg: Neg. track PID
325
326   TH3F*   fLambdaPhiEtaPosDaug;                 //! Lambda: Pos. track phi vs eta 
327   TH3F*   fLambdaPhiEtaNegDaug;                 //! Lambda: Neg. track phi vs eta
328   TH3F*   fLambdaBckgPhiEtaPosDaug;             //! Lambda Bckg: Pos. track phi vs eta  
329   TH3F*   fLambdaBckgPhiEtaNegDaug;             //! Lambda Bckg: Neg. track phi vs eta
330
331   TH2F*   fLambdaDCAPosDaug;                    //! Lambda: Pos. track DCA to primary vertex
332   TH2F*   fLambdaDCANegDaug;                    //! Lambda: Neg. track DCA to primary vertex
333   TH2F*   fLambdaBckgDCAPosDaug;                //! Lambda Bckg: Pos. track DCA to primary vertex
334   TH2F*   fLambdaBckgDCANegDaug;                //! Lambda Bckg: Neg. track DCA to primary vertex
335
336   TH2F*   fLambdaDifPtPosDaug;                  //! Lambda: Pos. track diference berween pt of the daughter and the V0
337   TH2F*   fLambdaDifPtNegDaug;                  //! Lambda: Neg. track diference berween pt of the daughter and the V0
338   TH2F*   fLambdaBckgDifPtPosDaug;              //! Lambda Bckg: Pos. track diference berween pt of the daughter and the V0
339   TH2F*   fLambdaBckgDifPtNegDaug;              //! Lambda Bckg: Neg. track diference berween pt of the daughter and the V0
340
341   TH3F*   fLambdaDecayPos;                      //! Lambda: 2D decay position  
342   TH3F*   fLambdaBckgDecayPos;                  //! Lambda Bckg: 2D decay position   
343   TH2F*   fLambdaDecayVertex;                   //! Lambda: decay lenght
344   TH2F*   fLambdaBckgDecayVertex;               //! Lambda Bckg: decay lenght 
345   TH2F*   fLambdaDecayVertexZoom;               //! Lambda: decay lenght Zoom
346   TH2F*   fLambdaBckgDecayVertexZoom;           //! Lambda Bckg: decay lenght Zoom
347
348   TH2F*   fLambdaCPA;                           //! Lambda: cosine of the pointing angle
349   TH2F*   fLambdaBckgCPA;                       //! Lambda Bckg: cosine of the pointing angle
350   TH2F*   fLambdaDCAV0Daug;                     //! Lambda: distance of the closest approach to the primary vertex
351   TH2F*   fLambdaBckgDCAV0Daug;                 //! Lambda Bckg: distance of the closest approach to the primary vertex 
352
353   TH3F*   fLambdaNClustersTPC;                  //! Lambda: Numbers of TPC clusters of the daughter tracks 
354   TH3F*   fLambdaBckgNClustersTPC;              //! Lambda Bckg: Numbers of TPC clusters of the daughter tracks 
355   TH3F*   fLambdaNClustersITSPos;               //! Lambda: Pos. Daug. Numbers of ITS clusters of the daughter tracks 
356   TH3F*   fLambdaNClustersITSNeg;               //! Lambda: Neg. Daug. Numbers of ITS clusters of the daughter tracks 
357   TH3F*   fLambdaBckgNClustersITSPos;           //! Lambda Bckg: Pos. Daug. Numbers of ITS clusters of the daughter tracks 
358   TH3F*   fLambdaBckgNClustersITSNeg;           //! Lambda Bckg: Neg. Daug. Numbers of ITS clusters of the daughter tracks 
359
360   //        AntiLambda        //
361
362   TH3F*   fAntiLambdaPIDPosDaug;                    //! AntiLambda: Pos. track PID
363   TH3F*   fAntiLambdaPIDNegDaug;                    //! AntiLambda: Neg. track PID
364   TH3F*   fAntiLambdaBckgPIDPosDaug;                //! AntiLambda Bckg: Pos. track PID
365   TH3F*   fAntiLambdaBckgPIDNegDaug;                //! AntiLambda Bckg: Neg. track PID
366
367   TH3F*   fAntiLambdaPhiEtaPosDaug;                 //! AntiLambda: Pos. track phi vs eta 
368   TH3F*   fAntiLambdaPhiEtaNegDaug;                 //! AntiLambda: Neg. track phi vs eta
369   TH3F*   fAntiLambdaBckgPhiEtaPosDaug;             //! AntiLambda Bckg: Pos. track phi vs eta  
370   TH3F*   fAntiLambdaBckgPhiEtaNegDaug;             //! AntiLambda Bckg: Neg. track phi vs eta
371
372   TH2F*   fAntiLambdaDCAPosDaug;                    //! AntiLambda: Pos. track DCA to primary vertex
373   TH2F*   fAntiLambdaDCANegDaug;                    //! AntiLambda: Neg. track DCA to primary vertex
374   TH2F*   fAntiLambdaBckgDCAPosDaug;                //! AntiLambda Bckg: Pos. track DCA to primary vertex
375   TH2F*   fAntiLambdaBckgDCANegDaug;                //! AntiLambda Bckg: Neg. track DCA to primary vertex
376
377   TH2F*   fAntiLambdaDifPtPosDaug;                  //! AntiLambda: Pos. track diference berween pt of the daughter and the V0
378   TH2F*   fAntiLambdaDifPtNegDaug;                  //! AntiLambda: Neg. track diference berween pt of the daughter and the V0
379   TH2F*   fAntiLambdaBckgDifPtPosDaug;              //! AntiLambda Bckg: Pos. track diference berween pt of the daughter and the V0
380   TH2F*   fAntiLambdaBckgDifPtNegDaug;              //! AntiLambda Bckg: Neg. track diference berween pt of the daughter and the V0
381
382   TH3F*   fAntiLambdaDecayPos;                      //! AntiLambda: 2D decay position  
383   TH3F*   fAntiLambdaBckgDecayPos;                  //! AntiLambda Bckg: 2D decay position   
384   TH2F*   fAntiLambdaDecayVertex;                   //! AntiLambda: decay lenght
385   TH2F*   fAntiLambdaBckgDecayVertex;               //! AntiLambda Bckg: decay lenght 
386   TH2F*   fAntiLambdaDecayVertexZoom;               //! AntiLambda: decay lenght Zoom
387   TH2F*   fAntiLambdaBckgDecayVertexZoom;           //! AntiLambda Bckg: decay lenght Zoom
388
389   TH2F*   fAntiLambdaCPA;                           //! AntiLambda: cosine of the pointing angle
390   TH2F*   fAntiLambdaBckgCPA;                       //! AntiLambda Bckg: cosine of the pointing angle
391   TH2F*   fAntiLambdaDCAV0Daug;                     //! AntiLambda: distance of the closest approach to the primary vertex
392   TH2F*   fAntiLambdaBckgDCAV0Daug;                 //! AntiLambda Bckg: distance of the closest approach to the primary vertex 
393
394   TH3F*   fAntiLambdaNClustersTPC;                  //! AntiLambda: Numbers of TPC clusters of the daughter tracks 
395   TH3F*   fAntiLambdaBckgNClustersTPC;              //! AntiLambda Bckg: Numbers of TPC clusters of the daughter tracks 
396   TH3F*   fAntiLambdaNClustersITSPos;               //! AntiLambda: Pos. Daug. Numbers of ITS clusters of the daughter tracks 
397   TH3F*   fAntiLambdaNClustersITSNeg;               //! AntiLambda: Neg. Daug. Numbers of ITS clusters of the daughter tracks 
398   TH3F*   fAntiLambdaBckgNClustersITSPos;           //! AntiLambda Bckg: Pos. Daug. Numbers of ITS clusters of the daughter tracks 
399   TH3F*   fAntiLambdaBckgNClustersITSNeg;           //! AntiLambda Bckg: Neg. Daug. Numbers of ITS clusters of the daughter tracks 
400
401
402   ///  ==== Mixed Events plots === ///
403   TH2F*  fK0sdPhidEtaME[kNVtxZ*kNCent*kN1+1];             //! K0s Mixed Events
404   TH2F*  fLambdadPhidEtaME[kNVtxZ*kNCent*kN1+1];          //! Lambda Mixed Events
405   TH2F*  fAntiLambdadPhidEtaME[kNVtxZ*kNCent*kN1+1];      //! AntiLambda Mixed Events
406
407   ClassDef(AliAnalysisTaskLambdaOverK0sJets,1);
408
409 };
410
411
412 /*  
413     Based on AliV0ChBasicParticle class of AliAnalysisTaskV0ChCorrelations.
414     Keeps basic information to reduce memory consumption for event mixing.
415 */
416 class AliMiniParticle : public AliVParticle
417 {
418   public:
419  AliMiniParticle(Float_t centrality, Float_t vtxZ, Int_t id,
420                  Double_t pt, Double_t phi, Double_t eta, Short_t candidate)
421    :fCentrality(centrality), fVtxZ(vtxZ),  fId(id), fPt(pt),
422     fPhi(phi), fEta(eta), fCandidate(candidate)
423     {
424     }
425   
426   virtual ~AliMiniParticle() {}
427   
428   // event
429   virtual Float_t Centrality() const { return fCentrality; }
430   virtual Float_t VtxZ() const { return fVtxZ; }
431
432   virtual Int_t   ID()  const { return fId; }  
433   // kinematics
434   virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
435   virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
436   virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
437
438   virtual Double_t Pt() const { return fPt; }
439   virtual Double_t P()  const { AliFatal("Not implemented"); return 0; }
440   virtual Bool_t   PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
441
442   virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
443   virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
444   virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
445   virtual Bool_t   XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
446
447   virtual Double_t OneOverPt()  const { AliFatal("Not implemented"); return 0; }
448     
449   virtual Double_t Phi()        const { return fPhi; }
450   virtual Double_t Theta()      const { AliFatal("Not implemented"); return 0; }
451   virtual Double_t E()          const { AliFatal("Not implemented"); return 0; }
452   virtual Double_t M()          const { AliFatal("Not implemented"); return 0; }
453     
454   virtual Double_t Eta()        const { return fEta; }
455   virtual Double_t Y()          const { AliFatal("Not implemented"); return 0; }
456
457   virtual Short_t Charge()      const { AliFatal("Not implemented"); return 0; }
458   virtual Int_t   GetLabel()    const { AliFatal("Not implemented"); return 0; }
459   // PID
460   virtual Int_t   PdgCode()     const { AliFatal("Not implemented"); return 0; }
461   virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
462   virtual Short_t WhichCandidate() const { return fCandidate; }
463   
464  private:
465   Float_t fCentrality; // centrality of the event
466   Float_t fVtxZ;       // vertex postition in the event
467   Int_t   fId;         // ID related either to AliAODtrack or AliAODv0
468   Float_t fPt;         // pt 
469   Float_t fPhi;        // phi
470   Float_t fEta;        // eta 
471   Short_t fCandidate;  // Candidate: 0-Not trigger, 1-Trigger, 2-Gamma Conversion, 3-K0s candidates, 4-Lambda candidates, 5-AntiLambda candidates
472   
473   ClassDef( AliMiniParticle, 1); // class required for event mixing
474 };
475
476 #endif