]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h
9b1835f2f0a5411c70633d36a01dd9bc21489e13
[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 double kPtBinV0[kN1+1] = {2.,2.5,3.,4.,5.};
36
37 class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE {
38
39  public:
40
41   enum V0LoopStep_t { kTriggerCheck=1, kCorrelation=2, kMixedEvent=3 };
42
43   AliAnalysisTaskLambdaOverK0sJets(const char *name = "AliAnalysisTaskLambdaOverK0sJets");
44   virtual ~AliAnalysisTaskLambdaOverK0sJets() {}
45
46   // Setter for global variables in the event
47   void SetMC(Bool_t isMC=kTRUE) {fIsMC=isMC;} 
48   void SetPID(Bool_t usePID=kTRUE) {fUsePID=usePID;} 
49   void SetCentrality(Float_t min=0., Float_t max=90.) {fCentMin=min;fCentMax=max;} 
50   void SetQA(Bool_t doQA=kFALSE){fDoQA=doQA;}
51   void SetTriggerPt(Float_t ptMinTrig=8., Float_t ptMaxTrig=50.) {fTrigPtMin=ptMinTrig;fTrigPtMax=ptMaxTrig;} 
52   void SetTriggerEta(Float_t etaMaxTrig=0.8){fTrigEtaMax=etaMaxTrig;} 
53   void SetCheckIDTrig(Bool_t checkIDTrig=kFALSE){fCheckIDTrig=checkIDTrig;}
54   void SetSeparateInjectedPart(Bool_t doSep=kTRUE) {fSeparateInjPart=doSep;} 
55
56   // Setters for V0 candidate selection
57   // TO BE FIXED!!!
58   void SetV0Cuts(Float_t *cutsV0){
59     //   1.  Daughter cuts
60     fMinPtDaughter=cutsV0[0];
61     fMaxEtaDaughter=cutsV0[1];
62     fMaxDCADaughter=cutsV0[2];
63     //   2.  V0 candidate
64     fYMax=cutsV0[3];
65     fDCAToPrimVtx=cutsV0[4];
66     fMinCPA=cutsV0[5];
67     fNSigma=cutsV0[6];
68     fMinCtau=cutsV0[7];
69     fMaxCtau=cutsV0[8];
70   }
71
72   //   1.  Daughter cuts
73   void SetMinPtDaughter(Float_t minPtDaughter=0.160) {fMinPtDaughter=minPtDaughter;} 
74   void SetMaxEtaDaughter(Float_t maxEta=0.8) {fMaxEtaDaughter=maxEta;} 
75   void SetMaxDCADaughter(Float_t maxDCA=1.0) {fMaxDCADaughter=maxDCA;} 
76   //   2.  V0 candidate
77   void SetMaxY(Float_t yMax=0.5) {fYMax=yMax;} 
78   void SetDCAToPrimVtx(Float_t dcaToPrimVtx=0.1) {fDCAToPrimVtx=dcaToPrimVtx;}
79   void SetMinCPA(Float_t minCPA=0.998) {fMinCPA=minCPA;} 
80   void SetNSigmaPID(Float_t nSigma=3) {fNSigma=nSigma;} 
81   void SetCtau(Float_t minCtau = 0., Float_t maxCtau = 3.) {fMinCtau=minCtau;fMaxCtau=maxCtau;} 
82
83   // Getters
84   Float_t GetMinCentr() { return fCentMin; }
85   Float_t GetMaxCentr() { return fCentMax; }
86
87   // Main functions
88   virtual void     UserCreateOutputObjects();
89   virtual Bool_t   AcceptV0(AliAODVertex *vtx, const AliAODv0 *v0);
90   virtual void     RecCascade(AliAODTrack *trk1,const AliAODTrack *trk2,const AliAODTrack *trkBch,TString histo);
91   virtual TArrayD* V0Loop(AliAODTrack *trkLP, V0LoopStep_t step, Bool_t isTriggered);
92   virtual TArrayD* TriggerParticle();
93     
94   virtual void     UserExec(Option_t *option);
95   virtual void     Terminate(Option_t *);  
96
97  private: 
98
99   AliAnalysisTaskLambdaOverK0sJets(const AliAnalysisTaskLambdaOverK0sJets&);           //not implemented
100   AliAnalysisTaskLambdaOverK0sJets& operator=(const AliAnalysisTaskLambdaOverK0sJets&);//not implemented 
101
102   AliAODEvent *fAOD;
103   Bool_t   fIsMC;                        //  Use MC data 
104   Bool_t   fUsePID;                      //  Use PID for tracks
105   Float_t  fCentMin;                     //  Minimum centrality
106   Float_t  fCentMax;                     //  Maximum centrality
107   Bool_t   fDoQA;                        //  Do Auality Assurance?
108   Float_t  fTrigPtMin;                   //  Minimum pt for trigger particle
109   Float_t  fTrigPtMax;                   //  Maximum pt for trigger particle
110   Float_t  fTrigEtaMax;                  //  Maximum eta for trigger particle
111   Bool_t   fCheckIDTrig;
112   Bool_t   fSeparateInjPart;             //  Separate MC injected particles in case of correlation 
113   Int_t    fEndOfHijingEvent;            //  Limit natural-injected MC  particles 
114   AliPIDResponse *fPIDResponse;         //  PID Response
115
116
117   Float_t fMinPtDaughter;                //  Minimum transverse momentum for V0's daughters
118   Float_t fMaxEtaDaughter;               //  Maximum pseudo-rapidity for V0's daughters  
119   Float_t fMaxDCADaughter;               //  Maximum Distance of Closest Approach between daughters (given in sigmas)
120   Float_t fYMax;                         //  Maximum rapidity for V0
121   Float_t fDCAToPrimVtx;                 //  Mimimum distance of closest approach of daughters to the vertex            
122   Float_t fMinCPA;                       //  Minimum Cosine of the Pointing Angle to the vertex for V0  
123   Float_t fNSigma;                       //  Number of sigmas for PID wi dE/dx
124   Float_t fMinCtau;                      //  Minimum ctau
125   Float_t fMaxCtau;                      //  Maximum ctau
126
127   TList*  fOutput;                       //! List of histograms
128   TList*  fOutputQA;                     //! List of histograms
129
130   TH1F*   fEvents;                       //! Counter for the number of events in each step
131
132   TH1F*   fCentrality;                   //! Event centrality per centil
133   TH1F*   fPrimaryVertexX;               //! Primary vertex position in X
134   TH1F*   fPrimaryVertexY;               //! Primary vertex position in Y
135   TH1F*   fPrimaryVertexZ;               //! Primary vertex position in Z
136   TH2F*   fNumberPileUp;                 //! Number of pile up: SPD vs Tracks 
137   TH2F*   fCentMult;                     //! Event centrality vs Track multiplicity
138   TH2F*   fdEdx;                         //! dEdx
139   TH2F*   fdEdxPid;                      //! dEdx with PID
140
141   TH3F*   fTriggerMCPtCent;              //! Trigger particle MC: pt vs centrality
142   TH2F*   fTriggerPtCent;                //! Trigger particle: pt vs centrality
143   TH2F*   fTriggerEtaPhi;                //! Trigger particle: eta vs phi
144   TH1F*   fCheckTriggerFromV0Daug;       //! Trigger particle: it is a daughter from a V0-candidate
145   TH1F*   fTriggerComingFromDaug;        //! Trigger particle: pt when LP is a daughter from a V0-candidate
146   TH1F*   fTriggerIsV0;                  //! Trigger particle: the V0 is the highest-pt particle
147   TH3F*   fCheckIDTrigPtK0s;
148   TH3F*   fCheckIDTrigPhiK0s;
149   TH3F*   fCheckIDTrigPtLambda;
150   TH3F*   fCheckIDTrigPhiLambda;
151
152   TH1F*   fInjectedParticles;            //! Number of injected particles
153
154   TH1F*   fK0sMCPt;                      //! K0s MC: pt
155   TH3F*   fK0sMCPtRap;                   //! K0s MC: pt vs rapidity
156   TH3F*   fK0sMCPtPhiEta;                //! K0s MC: pt vs pseudo-rapidity
157   TH1F*   fK0sAssocPt;                   //! K0s Assoc: pt
158   TH3F*   fK0sAssocPtArm;                //! K0s Assoc: pt vs decay lenght vs centrality
159   TH3F*   fK0sAssocPtRap;                //! K0s Assoc: pt vs rapidity
160   TH3F*   fK0sAssocPtPhiEta;             //! K0s Assoc: pt vs pseudo-rapidity
161   TH3F*   fK0sMCResPhi;
162
163   TH1F*   fLambdaMCPt;                   //! Lambda MC: pt
164   TH3F*   fLambdaMCPtRap;                //! Lambda MC: pt vs rapidity
165   TH3F*   fLambdaMCPtPhiEta;             //! Lambda MC: pt vs pseudo-rapidity
166   TH1F*   fLambdaAssocPt;                //! Lambda Assoc: pt
167   TH3F*   fLambdaAssocPtArm;             //! Lambda Assoc: pt vs decay lenght vs centrality
168   TH3F*   fLambdaAssocPtRap;             //! Lambda Assoc: pt vs rapidity
169   TH3F*   fLambdaAssocPtPhiEta;          //! Lambda Assoc: pt vs pseudo-rapidity
170   TH3F*   fLambdaMCResPhi;
171
172   TH3F*   fHistArmenterosPodolanski;     //! Armenteros-Podolanski plot inside 3 sigma of the signal
173   TH3F*   fHistArmPodBckg;               //! Armenteros-Podolanski plot outside 3 sigma of the signal      
174
175   TH3F*   fK0sMass;                      //! Mass for K0s
176   TH2F*   fK0sPtLtSB;                    //! K0s: Side-band subtracted lt vs pt
177   TH3F*   fK0sPtvsEta;                   //! K0s: pt vs eta
178   TH3F*   fK0sPtvsRap;                   //! K0s: pt vs rap
179   TH2F*   fK0sEtaPhi;                    //! K0s: eta vs phi
180   TH3F*   fK0sMassPtPhi;                 //! K0s: mass vs phi
181
182   TH3F*   fK0sMassPtvsPtL;               //! K0s: mass, pt vs pt of leading particle
183   TH3F*   fK0sSiPtL;                     //! K0s: mass, vs leading particle
184   TH2F*   fK0sDaughtersPt;               //! K0s: pt of daughters
185   TH3F*   fK0sdPhiPtAssocPtL;            //! K0s: Delta phi,pt vs pt of the leading particle
186   TH3F*   fK0sDCADaugToPrimVtx;          //! K0s: DCA to primary vertex of daughters vs leading particle's pt inside a radio wrt the near-side peak
187    
188   TH3F*   fK0sdPhidEtaMC[kN1];           //! K0s MC: Delta phi,Delta eta vs pt of the leading particle
189   TH3F*   fK0sdPhidEtaMCCent[kN1];       //! K0s MC in central events: Delta phi,Delta eta vs pt of the leading particle
190
191   TH3F*   fK0sdPhidEtaPtL[kN1];          //! K0s: Delta phi,Delta eta vs pt of the leading particle
192   TH3F*   fK0sdPhidEtaPtLCent[kN1];      //! K0s in central events: Delta phi,Delta eta vs pt of the leading particle
193   TH3F*   fK0sdPhidEtaPtLBckg[kN1];      //! K0s background: Delta phi,Delta eta vs pt of the leading particle
194   TH3F*   fK0sdPhidEtaPtLCentBckg[kN1];  //! K0s background in central events: Delta phi,Delta eta vs pt of the leading particle
195
196   TH3F*   fK0sdPhidEtaPtL2[kN1];         //! K0s: Delta phi,Delta eta vs pt of the leading particle
197   TH3F*   fK0sdPhidEtaPtLCent2[kN1];     //! K0s in central events: Delta phi,Delta eta vs pt of the leading particle
198   TH3F*   fK0sdPhidEtaPtLBckg2[kN1];     //! K0s background: Delta phi,Delta eta vs pt of the leading particle
199   TH3F*   fK0sdPhidEtaPtLCentBckg2[kN1]; //! K0s background in central events: Delta phi,Delta eta vs pt of the leading particle
200
201   TH2F*   fK0sBckgDecLength;             //! K0s background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
202   TH3F*   fK0sBckgDCADaugToPrimVtx;      //! K0s background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
203   TH2F*   fK0sdEdxPosDaug;               //! K0s background: dE/dx of the positive daughter particle inside a radio wrt the near-side peak
204   TH2F*   fK0sdEdxNegDaug;               //! K0s background: dE/dx of the negative daughter particle inside a radio wrt the near-side peak
205   TH2F*   fK0sBckgEtaPhi;                //! K0s background: Phi vs Eta inside a radio wrt the near-side peak
206   TH2F*   fK0sBckgPhiRadio;              //! K0s background: Phi vs radio inside a radio wrt the near-side peak
207   TH2F*   fK0sBckgDCANegDaugToPrimVtx;   //! K0s background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
208   TH2F*   fK0sBckgDCAPosDaugToPrimVtx;   //! K0s background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
209   TH2F*   fK0sMassCascade;               //! K0s background: Poddible mismatching of tracks due to cascades decays
210
211   TH3F*   fLambdaMass;                   //! Mass for Lambda
212   TH2F*   fLambdaPtLtSB;                 //! Lambda: l vs p with side-band subtraction
213   TH3F*   fLambdaPtvsEta;                //! Lambda: pt vs eta
214   TH3F*   fLambdaPtvsRap;                //! Lambda: pt vs rap
215   TH2F*   fLambdaEtaPhi;                 //! Lambda: eta vs phi
216   TH3F*   fLambdaMassPtPhi;              //! Lambda: mass vs phi 
217
218   TH2F*   fLambdadEdx;                   //! Lambda: dE/dx for proton 
219   TH1F*   fCPA;                          //! Lambda: Cosine of the pointing angle
220   TH1F*   fDCA;                          //! Lambda: DCA between daughters
221
222   TH3F*   fLambdaMassPtvsPtL;            //! Lambda: mass, pt vs pt of leading particle
223   TH3F*   fLambdaSiPtL;                  //! Lambda: mass, vs leading particle
224   TH2F*   fLambdaDaughtersPt;            //! Lambda: pt of daughters
225   TH3F*   fLambdadPhiPtAssocPtL;         //! Lambda: Delta phi,pt vs pt of the leading particle
226   TH3F*   fLambdaDCADaugToPrimVtx;       //! Lambda: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
227
228   TH3F*   fLambdadPhidEtaMC[kN1];          //! Lambda MC: Delta phi,Delta eta vs pt of the leading particle
229   TH3F*   fLambdadPhidEtaMCCent[kN1];      //! Lambda MC in central events: Delta phi,Delta eta vs pt of the leading particle
230
231   TH3F*   fLambdadPhidEtaPtL[kN1];         //! Lambda: Delta phi,Delta eta vs pt of the leading particle
232   TH3F*   fLambdadPhidEtaPtLCent[kN1];     //! Lambda in central events: Delta phi,Delta eta vs pt of the leading particle
233   TH3F*   fLambdadPhidEtaPtLBckg[kN1];     //! Lambda background: Delta phi,Delta eta vs pt of the leading particle
234   TH3F*   fLambdadPhidEtaPtLCentBckg[kN1]; //! Lambda background in central events: Delta phi,Delta eta vs pt of the leading particle
235
236   TH3F*   fLambdadPhidEtaPtL2[kN1];        //! Lambda: Delta phi,Delta eta vs pt of the leading particle
237   TH3F*   fLambdadPhidEtaPtLCent2[kN1];    //! Lambda in central events: Delta phi,Delta eta vs pt of the leading particle
238   TH3F*   fLambdadPhidEtaPtLBckg2[kN1];    //! Lambda background: Delta phi,Delta eta vs pt of the leading particle
239   TH3F*   fLambdadPhidEtaPtLCentBckg2[kN1];//! Lambda background in central events: Delta phi,Delta eta vs pt of the leading particle
240
241   TH2F*   fLambdaBckgDecLength;            //! Lambda background: Decay lenght vs leading particle's pt inside a radio wrt the near-side peak
242   TH3F*   fLambdaBckgDCADaugToPrimVtx;     //! Lambda background: DCA to primary vrtex of daughters vs leading particle's pt inside a radio wrt the near-side peak
243   TH2F*   fLambdadEdxPosDaug;              //! Lambda background: dE/dx of the positive daughter particle inside a radio wrt the near-side peak
244   TH2F*   fLambdadEdxNegDaug;              //! Lambda background: dE/dx of the negative daughter particle inside a radio wrt the near-side peak
245   TH2F*   fLambdaBckgEtaPhi;               //! Lambda background: Phi vs Eta inside a radio wrt the near-side peak
246   TH2F*   fLambdaBckgPhiRadio ;            //! Lambda background: Phi vs radio inside a radio wrt the near-side peak
247   TH2F*   fLambdaBckgDCANegDaugToPrimVtx;  //! Lambda background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
248   TH2F*   fLambdaBckgDCAPosDaugToPrimVtx;  //! Lambda background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak
249   TH2F*   fLambdaMassCascade;              //! Lambda background: Poddible mismatching of tracks due to cascades decays
250         
251
252   TH3F*   fK0sPIDPosDaug;
253   TH3F*   fK0sPIDNegDaug;
254   TH3F*   fK0sBckgPIDPosDaug;
255   TH3F*   fK0sBckgPIDNegDaug;
256
257   TH3F*   fK0sPhiEtaPosDaug;
258   TH3F*   fK0sPhiEtaNegDaug;
259   TH3F*   fK0sBckgPhiEtaPosDaug;
260   TH3F*   fK0sBckgPhiEtaNegDaug;
261
262   TH2F*   fK0sDCAPosDaug;
263   TH2F*   fK0sDCANegDaug;
264   TH2F*   fK0sBckgDCAPosDaug;
265   TH2F*   fK0sBckgDCANegDaug;
266
267   TH2F*   fK0sDifPtPosDaug;
268   TH2F*   fK0sDifPtNegDaug;
269   TH2F*   fK0sBckgDifPtPosDaug;
270   TH2F*   fK0sBckgDifPtNegDaug;
271
272   TH3F*   fK0sDecayPos;
273   TH3F*   fK0sBckgDecayPos;
274   TH2F*   fK0sDecayVertex;
275   TH2F*   fK0sBckgDecayVertex;
276   TH2F*   fK0sDecayVertexZoom;
277   TH2F*   fK0sBckgDecayVertexZoom;
278
279   TH2F*   fK0sCPA;
280   TH2F*   fK0sBckgCPA;
281   TH2F*   fK0sDCAV0Daug;
282   TH2F*   fK0sBckgDCAV0Daug;
283
284   TH3F*   fLambdaPIDPosDaug;
285   TH3F*   fLambdaPIDNegDaug;
286   TH3F*   fLambdaBckgPIDPosDaug;
287   TH3F*   fLambdaBckgPIDNegDaug;
288
289   TH3F*   fLambdaPhiEtaPosDaug;
290   TH3F*   fLambdaPhiEtaNegDaug;
291   TH3F*   fLambdaBckgPhiEtaPosDaug;
292   TH3F*   fLambdaBckgPhiEtaNegDaug;
293
294   TH2F*   fLambdaDCAPosDaug;
295   TH2F*   fLambdaDCANegDaug;
296   TH2F*   fLambdaBckgDCAPosDaug;
297   TH2F*   fLambdaBckgDCANegDaug;
298
299   TH2F*   fLambdaDifPtPosDaug;
300   TH2F*   fLambdaDifPtNegDaug;
301   TH2F*   fLambdaBckgDifPtPosDaug;
302   TH2F*   fLambdaBckgDifPtNegDaug;
303
304   TH3F*   fLambdaDecayPos;
305   TH3F*   fLambdaBckgDecayPos;
306   TH2F*   fLambdaDecayVertex;
307   TH2F*   fLambdaBckgDecayVertex;
308   TH2F*   fLambdaDecayVertexZoom;
309   TH2F*   fLambdaBckgDecayVertexZoom;
310
311   TH2F*   fLambdaCPA;
312   TH2F*   fLambdaBckgCPA;
313   TH2F*   fLambdaDCAV0Daug;
314   TH2F*   fLambdaBckgDCAV0Daug;
315
316   ClassDef(AliAnalysisTaskLambdaOverK0sJets,1);
317
318 };
319
320 #endif