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