]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/StrangenessInJets/AliAnalysisTaskJetChem.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / StrangenessInJets / AliAnalysisTaskJetChem.h
1 /*************************************************************************
2  *                                                                       *
3  * Task for Jet Chemistry Analysis in PWG-JE Jet Task Force Train        *
4  *                                                                       *
5  *                                                                       *
6  *  contact:                                                             *
7  *  Alice Zimmermann                                                     *
8  *  zimmermann@physi.uni-heidelberg.de                                   *
9  *                                                                       *
10  *                                                                       *  
11  *                                                                       *
12  *                                                                       *
13  *************************************************************************/
14    
15
16 #ifndef ALIANALYSISTASKJETCHEM_H
17 #define ALIANALYSISTASKJETCHEM_H
18
19 /* Copyright(c) 1998-2013, ALICE Experiment at CERN, All rights reserved. *
20  * See cxx source for full Copyright notice                               */
21
22 /* $Id$ */
23
24 class AliAODv0;
25 class AliAODVertex;
26 class AliAnalysisCentralitySelector;
27 class AliPIDResponse;
28 class TString;
29 class TList;
30 class AliAODMCParticle;
31 class AliAODTrack;
32
33 #include "AliAnalysisTaskFragmentationFunction.h"
34 #include "AliPID.h"
35 #include "AliAnalysisTaskSE.h"
36 #include "AliAODMCHeader.h"
37
38 class AliAnalysisTaskJetChem : public AliAnalysisTaskFragmentationFunction {
39
40  public:
41   
42   //----------------------------------------
43   class AliFragFuncHistosInvMass : public TObject
44   {
45     
46     public:
47     
48     AliFragFuncHistosInvMass(const char* name = "FFIMhistos", 
49                              Int_t nJetPt = 0, Float_t jetPtMin = 0, Float_t jetPtMax = 0,
50                              Int_t nInvMass = 0, Float_t invMassMin=0, Float_t invMassMax=0,  
51                              Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
52                              Int_t nXi = 0, Float_t xiMin = 0, Float_t xiMax = 0,
53                              Int_t nZ  = 0, Float_t zMin  = 0, Float_t zMax  = 0);
54     AliFragFuncHistosInvMass(const AliFragFuncHistosInvMass& copy);
55     AliFragFuncHistosInvMass& operator=(const AliFragFuncHistosInvMass &o);
56     virtual ~AliFragFuncHistosInvMass();
57     
58     virtual void DefineHistos();
59     virtual void FillFF(Float_t trackPt, Float_t invM, Float_t jetPt,Bool_t incrementJetPt);
60     virtual void AddToOutput(TList* list) const;
61
62   private:
63
64     Int_t   fNBinsJetPt;    // FF histos bins
65     Float_t fJetPtMin;      // FF histos limits
66     Float_t fJetPtMax;      // FF histos limits
67     Int_t   fNBinsInvMass;  // FF histos bins
68     Float_t fInvMassMin;    // FF histos limits
69     Float_t fInvMassMax;    // FF histos limits
70     Int_t   fNBinsPt;       // FF histos bins
71     Float_t fPtMin;         // FF histos limits
72     Float_t fPtMax;         // FF histos limits
73     Int_t   fNBinsXi;       // FF histos bins
74     Float_t fXiMin;         // FF histos limits
75     Float_t fXiMax;         // FF histos limits
76     Int_t   fNBinsZ;        // FF histos bins
77     Float_t fZMin;          // FF histos limits
78     Float_t fZMax;          // FF histos limits
79   
80
81
82     TH3F*   fh3TrackPt;     //! FF: track transverse momentum 
83     TH3F*   fh3Xi;          //! FF: xi 
84     TH3F*   fh3Z;           //! FF: z  
85     TH1F*   fh1JetPt;       //! jet pt of all jets 
86
87     TString fNameFF;        // histo names prefix
88     
89     ClassDef(AliFragFuncHistosInvMass, 1);
90   };
91   
92
93  //----------------------------------------
94   class AliFragFuncHistosPhiCorrInvMass : public TObject
95   {
96                                    
97     public:
98     
99     AliFragFuncHistosPhiCorrInvMass(const char* name = "FFPhiCorrIMhistos", 
100                                     Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
101                                     Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0,
102                                     Int_t nInvMass = 0, Float_t invMassMin=0, Float_t invMassMax=0);
103
104     AliFragFuncHistosPhiCorrInvMass(const AliFragFuncHistosPhiCorrInvMass& copy);
105     AliFragFuncHistosPhiCorrInvMass& operator=(const AliFragFuncHistosPhiCorrInvMass &o);
106     virtual ~AliFragFuncHistosPhiCorrInvMass();
107     
108     virtual void DefineHistos();
109     virtual void FillPhiCorr(Float_t pt, Float_t phi, Float_t invM);
110     virtual void AddToOutput(TList* list) const;
111
112   private:
113
114     Int_t   fNBinsPt;       // FF histos bins
115     Float_t fPtMin;         // FF histos limits
116     Float_t fPtMax;         // FF histos limits
117
118     Int_t   fNBinsPhi;      // FF histos bins
119     Float_t fPhiMin;        // FF histos limits
120     Float_t fPhiMax;        // FF histos limits
121     
122     Int_t   fNBinsInvMass;  // FF histos bins
123     Float_t fInvMassMin;    // FF histos limits
124     Float_t fInvMassMax;    // FF histos limits
125   
126     TH3F*   fh3PhiCorr;     //! FF: phi correlation histo 
127
128     TString fNamePhiCorr;   // histo names prefix
129     
130     ClassDef(AliFragFuncHistosPhiCorrInvMass, 1);
131   };
132   
133   //----------------------------------------
134
135   AliAnalysisTaskJetChem(); 
136   AliAnalysisTaskJetChem(const char *name);
137   AliAnalysisTaskJetChem(const  AliAnalysisTaskJetChem &copy);
138   AliAnalysisTaskJetChem& operator=(const  AliAnalysisTaskJetChem &o);
139   virtual ~AliAnalysisTaskJetChem();
140   
141   virtual void   UserCreateOutputObjects();
142   virtual void   UserExec(Option_t *option);
143
144   static  void   SetProperties(TH3F* h,const char* x, const char* y,const char* z);
145
146   Bool_t IsAccepteddEdx(Double_t mom, Double_t signal, AliPID::EParticleType n, Double_t cutnSig) const;//not used anymore
147   Bool_t IsK0InvMass(Double_t mass) const; 
148   Int_t  GetListOfV0s(TList *list, Int_t type, Int_t particletype, AliAODVertex* primVertex, AliAODEvent* aod);
149   Int_t  GetListOfParticles(TList *list, Int_t type, Int_t particletype, AliAODVertex* primVertex);
150   Int_t  GetListOfMCParticles(TList *outputlist, Int_t particletype, AliAODEvent* mcaodevent);
151   void   GetTracksInCone(TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPt, Double_t minPt,  Double_t maxPt, Bool_t& isBadPt);
152   void   GetTracksInPerpCone(TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPerpPt);
153   Bool_t MCLabelCheck(AliAODv0* v0, Int_t particletype, const AliAODTrack* trackNeg, const AliAODTrack* trackPos, TList *listmc, Int_t& negDaughterpdg, Int_t& posDaughterpdg, Int_t& motherType, Int_t& v0Label, Double_t& MCPt, Bool_t& fPhysicalPrimary, Int_t& MCv0PDGCode);
154   Bool_t IsParticleMatching(const AliAODMCParticle* mcp0, Int_t v0Label);
155   Bool_t DaughterTrackCheck(AliAODv0* v0, Int_t& nnum, Int_t& pnum);
156   Int_t  IsTrackInjected(AliAODv0 *v0, AliAODMCHeader *header, TClonesArray *arrayMC);
157   TString GetGenerator(Int_t label, AliAODMCHeader* header);
158   Double_t SmearJetPt(Double_t jetPt, Int_t cl, Double_t jetRadius, Double_t ptmintrack, Double_t& jetPtSmear);
159   AliAODJet* GetMedianCluster();
160   
161   virtual void SetK0Type(Int_t i){ fK0Type = i; }
162   virtual void SetFilterMaskK0(UInt_t i) {fFilterMaskK0 = i;}
163
164   Bool_t IsLaInvMass(Double_t mass) const; //La and ALa mass check
165   virtual void SetLaType(Int_t i){ fLaType = i; }
166   virtual void SetFilterMaskLa(UInt_t i) {fFilterMaskLa = i;}
167
168   virtual void SetALaType(Int_t i){ fALaType = i; }
169   virtual void SetFilterMaskALa(UInt_t i) {fFilterMaskALa = i;}
170
171   virtual void SetSelectArmenteros(Bool_t b) {IsArmenterosSelected = b;}
172   //virtual void SetEventSelectionMask(UInt_t i){fEvtSelectionMask = i;}  //already inherited by AliAnalysisFragmentationFunctionTask
173   //virtual void UsePhysicsSelection(Bool_t b) {fUsePhysicsSelection = b;} //already inherited by AliAnalysisFragmentationFunctionTask
174
175   void CalculateInvMass(AliAODv0* v0vtx, Int_t particletype, Double_t& invM, Double_t& trackPt);
176   
177   Bool_t AcceptBetheBloch(AliAODv0 *v0, AliPIDResponse *PIDResponse, Int_t particletype); //don't use this method for MC Analysis
178
179
180   Double_t MyRapidity(Double_t rE, Double_t rPz) const;
181
182   //-- K0s
183
184   void   SetFFInvMassHistoBins(Int_t nJetPt = 39, Float_t jetPtMin = 5., Float_t jetPtMax = 200., //previous 19, 5.,100.
185                                Int_t nInvM = 400, Float_t invMMin = 0.4,  Float_t invMMax = 0.6, //previous 0.4 to 0.6
186                                Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20.,         //previous 0. to 10.
187                                Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
188                                Int_t nZ = 11,  Float_t zMin = 0.,  Float_t zMax = 1.1)
189   { fFFIMNBinsJetPt = nJetPt; fFFIMJetPtMin = jetPtMin; fFFIMJetPtMax = jetPtMax; 
190     fFFIMNBinsInvM = nInvM; fFFIMInvMMin = invMMin; fFFIMInvMMax = invMMax; fFFIMNBinsPt = nPt; fFFIMPtMin = ptMin; fFFIMPtMax = ptMax; 
191     fFFIMNBinsXi = nXi; fFFIMXiMin = xiMin; fFFIMXiMax = xiMax; fFFIMNBinsZ  = nZ;  fFFIMZMin  = zMin;  fFFIMZMax  = zMax; }
192
193
194   void   SetPhiCorrInvMassHistoBins(Int_t nPt = 40, Float_t ptMin = 0., Float_t ptMax = 20., 
195                                     Int_t nPhi = 20, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi(),
196                                     Int_t nInvM = 240, Float_t invMMin = 0.4,  Float_t invMMax = 0.6)
197                                     
198   { fPhiCorrIMNBinsPt = nPt; fPhiCorrIMPtMin = ptMin; fPhiCorrIMPtMax = ptMax;
199     fPhiCorrIMNBinsPhi = nPhi; fPhiCorrIMPhiMin = phiMin; fPhiCorrIMPhiMax = phiMax;
200     fPhiCorrIMNBinsInvM = nInvM; fPhiCorrIMInvMMin = invMMin; fPhiCorrIMInvMMax = invMMax;
201   }
202   
203   // --La and ALa
204
205   void   SetFFInvMassLaHistoBins(Int_t nJetPt = 39, Float_t jetPtMin = 5., Float_t jetPtMax = 200., //La
206                                  //Int_t nInvM = 140, Float_t invMMin = 1.06,  Float_t invMMax = 1.2,//original inv. mass range, now I shifted to Vits slightly larger mass window
207                                Int_t nInvM = 200, Float_t invMMin = 1.05,  Float_t invMMax = 1.25,
208                                Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20., 
209                                Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
210                                Int_t nZ = 11,  Float_t zMin = 0.,  Float_t zMax = 1.1)
211
212   { fFFIMLaNBinsJetPt = nJetPt; fFFIMLaJetPtMin = jetPtMin; fFFIMLaJetPtMax = jetPtMax; 
213     fFFIMLaNBinsInvM = nInvM; fFFIMLaInvMMin = invMMin; fFFIMLaInvMMax = invMMax; fFFIMLaNBinsPt = nPt; fFFIMLaPtMin = ptMin; fFFIMLaPtMax = ptMax; 
214     fFFIMLaNBinsXi = nXi; fFFIMLaXiMin = xiMin; fFFIMLaXiMax = xiMax; fFFIMLaNBinsZ  = nZ;  fFFIMLaZMin  = zMin;  fFFIMLaZMax  = zMax; }
215
216
217   void   SetPhiCorrInvMassLaHistoBins(Int_t nPt = 40, Float_t ptMin = 0., Float_t ptMax = 20.,    //La
218                                     Int_t nPhi = 20, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi(),
219                                     Int_t nInvM = 50, Float_t invMMin = 1.06,  Float_t invMMax = 1.2)
220                                     
221   { fPhiCorrIMLaNBinsPt = nPt; fPhiCorrIMLaPtMin = ptMin; fPhiCorrIMLaPtMax = ptMax;
222     fPhiCorrIMLaNBinsPhi = nPhi; fPhiCorrIMLaPhiMin = phiMin; fPhiCorrIMLaPhiMax = phiMax;
223     fPhiCorrIMLaNBinsInvM = nInvM; fPhiCorrIMLaInvMMin = invMMin; fPhiCorrIMLaInvMMax = invMMax;
224   }
225
226
227  
228   // consts
229
230   enum { kTrackUndef =0, kOnFly, kOnFlyPID, kOnFlydEdx, kOnFlyPrim, kOffl, kOfflPID, kOffldEdx, kOfflPrim };  
231   enum { kK0, kLambda, kAntiLambda };  
232  
233   //--
234   Bool_t   fAnalysisMC;
235   Double_t fDeltaVertexZ;
236   Double_t fCuttrackNegNcls;
237   Double_t fCuttrackPosNcls; 
238   Double_t fCutPostrackRap;
239   Double_t fCutNegtrackRap;
240   Double_t fCutRap;
241   Double_t fCutPostrackEta;
242   Double_t fCutNegtrackEta;
243   Double_t fCutEta;
244   Double_t fCutV0cosPointAngle;
245   Double_t fCutChi2PosDaughter;
246   Double_t fCutChi2NegDaughter;
247   Bool_t   fKinkDaughters;
248   Bool_t   fRequireTPCRefit;
249   Double_t fCutArmenteros; 
250   Double_t fCutV0DecayMin;
251   Double_t fCutV0DecayMax;
252   Double_t fCutV0totMom;
253   Double_t fCutDcaV0Daughters;
254   Double_t fCutDcaPosToPrimVertex;
255   Double_t fCutDcaNegToPrimVertex;
256   Double_t fCutV0RadiusMin;
257   Double_t fCutV0RadiusMax;
258   Double_t fCutBetheBloch;
259   Double_t fCutRatio;
260
261   // cuts
262   void SetCuttrackPosNcls(Double_t posNcls){fCuttrackPosNcls=posNcls; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosNcls %f",posNcls);}
263   void SetCuttrackNegNcls(Double_t negNcls){fCuttrackNegNcls=negNcls; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegNcls %f",negNcls);}
264   void SetCuttrackPosRap(Double_t posRap){fCutPostrackRap=posRap; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosRap %f",posRap);}
265   void SetCuttrackNegRap(Double_t negRap){fCutNegtrackRap=negRap; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegRap %f",negRap);}
266   void SetCutV0Rap(Double_t v0Rap){fCutRap=v0Rap; Printf("AliAnalysisTaskJetChem:: SetCutV0Rap %f",v0Rap);}
267   void SetCuttrackPosEta(Double_t posEta){fCutPostrackEta=posEta; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosEta %f",posEta);}
268   void SetCuttrackNegEta(Double_t negEta){fCutNegtrackEta=negEta; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegEta %f",negEta);}
269   void SetCutV0Eta(Double_t v0Eta){fCutEta=v0Eta; Printf("AliAnalysisTaskJetChem:: SetCutV0Eta %f",v0Eta);}
270   void SetCosOfPointingAngle(Double_t cospointAng){fCutV0cosPointAngle=cospointAng; Printf("AliAnalysisTaskJetChem:: SetCosOfPointingAngle %f",cospointAng);}
271   void SetChi2CutPosDaughter(Double_t chi2PosDaughter){fCutChi2PosDaughter=chi2PosDaughter; Printf("AliAnalysisTaskJetChem:: SetChi2CutPosDaughter %f",chi2PosDaughter);}
272   void SetChi2CutNegDaughter(Double_t chi2NegDaughter){fCutChi2NegDaughter=chi2NegDaughter; Printf("AliAnalysisTaskJetChem:: SetChi2CutNegDaughter %f",chi2NegDaughter);}
273   void SetAcceptKinkDaughters(Bool_t isKinkDaughtersAccepted){fKinkDaughters=isKinkDaughtersAccepted; Printf("AliAnalysisTaskJetChem:: SetAcceptKinkDaughters %i", isKinkDaughtersAccepted);}
274   void SetRequireTPCRefit(Bool_t isTPCRefit){fRequireTPCRefit=isTPCRefit; Printf("AliAnalysisTaskJetChem:: SetRequireTPCRefit %i", isTPCRefit);}
275   void SetCutArmenteros(Double_t armenteros){fCutArmenteros=armenteros; Printf("AliAnalysisTaskJetChem:: SetCutArmenteros %f", armenteros);}
276   void SetCutV0DecayMin(Double_t decayMin){fCutV0DecayMin=decayMin; Printf("AliAnalysisTaskJetChem:: SetCutDecayMin %f", decayMin);}
277   void SetCutV0DecayMax(Double_t decayMax){fCutV0DecayMax=decayMax; Printf("AliAnalysisTaskJetChem:: SetCutDecayMax %f", decayMax);}
278   void SetCutV0totMom(Double_t v0totMom){fCutV0totMom=v0totMom; Printf("AliAnalysisTaskJetChem:: SetCutV0totMom %f", v0totMom);}
279   void SetCutDcaV0Daughters(Double_t dcav0daughters){fCutDcaV0Daughters=dcav0daughters; Printf("AliAnalysisTaskJetChem:: SetCutDcaV0Daughters %f", dcav0daughters);}
280   void SetCutDcaPosToPrimVertex(Double_t dcaPosToPrimVertex){fCutDcaPosToPrimVertex=dcaPosToPrimVertex; Printf("AliAnalysisTaskJetChem:: SetCutDcaPosToPrimVertex %f", dcaPosToPrimVertex);}
281   void SetCutDcaNegToPrimVertex(Double_t dcaNegToPrimVertex){fCutDcaNegToPrimVertex=dcaNegToPrimVertex; Printf("AliAnalysisTaskJetChem:: SetCutDcaNegToPrimVertex %f", dcaNegToPrimVertex);}
282   void SetCutV0RadiusMin(Double_t v0RadiusMin){fCutV0RadiusMin=v0RadiusMin; Printf("AliAnalysisTaskJetChem:: SetCutV0RadiusMin %f", v0RadiusMin);}
283   void SetCutV0RadiusMax(Double_t v0RadiusMax){fCutV0RadiusMax=v0RadiusMax; Printf("AliAnalysisTaskJetChem:: SetCutV0RadiusMax %f", v0RadiusMax);}
284   void SetCutBetheBloch(Double_t cutBetheBloch){fCutBetheBloch=cutBetheBloch; Printf("AliAnalysisTaskJetChem:: SetCutBetheBloch %f", cutBetheBloch);}
285   void SetCutRatioTPC(Double_t cutRatioTPC){fCutRatio=cutRatioTPC; Printf("AliAnalysisTaskJetChem:: SetCutRatioTPC %f", cutRatioTPC);}
286   void SetAnalysisMC(Bool_t analysisMC) {fAnalysisMC = analysisMC;}
287   void SetDeltaZVertexCut(Float_t deltaVtxZ){fDeltaVertexZ = deltaVtxZ;}
288
289  private:
290   
291   Int_t fK0Type;                                           //! K0 cuts
292   UInt_t fFilterMaskK0;                                    //! K0 legs cuts
293   TList* fListK0s;                                         //! K0 list 
294   AliPIDResponse *fPIDResponse;                            // PID
295
296   AliFragFuncQATrackHistos*  fV0QAK0;                      //! track QA: V0s in K0 inv mass range
297   AliFragFuncHistos*         fFFHistosRecCutsK0Evt;        //! inclusive FF for K0 evt
298   AliFragFuncHistosInvMass*  fFFHistosIMK0AllEvt;          //! K0 pt spec for all events
299   AliFragFuncHistosInvMass*  fFFHistosIMK0Jet;             //! K0 FF all dPhi   
300   AliFragFuncHistosInvMass*  fFFHistosIMK0Cone;            //! K0 FF jet cone   
301   AliFragFuncHistosPhiCorrInvMass*  fFFHistosPhiCorrIMK0;  //! K0 correlation to jet axis 
302   
303   Int_t fLaType;                                           //! La cuts
304   UInt_t fFilterMaskLa;                                    //! La legs cuts
305   TList* fListLa;                                          //! La list 
306   
307   AliFragFuncHistosInvMass*  fFFHistosIMLaAllEvt;          //! La pt spec for all events
308   AliFragFuncHistosInvMass*  fFFHistosIMLaJet;             //! La FF all dPhi   
309   AliFragFuncHistosInvMass*  fFFHistosIMLaCone;            //! La FF jet cone   
310   AliFragFuncHistosPhiCorrInvMass*  fFFHistosPhiCorrIMLa;  //! La correlation to jet axis 
311   
312   Int_t fALaType;                                          //! ALa cuts
313
314   UInt_t fFilterMaskALa;                                   //! ALa legs cuts
315   TList* fListALa;                                         //! ALa list 
316   TList* fListFeeddownLaCand;                              //! feeddown from Xi (-,0) 
317   TList* fListFeeddownALaCand;                             //! feeddown from Xibar (+,0) 
318   TList* jetConeFDLalist;                                  //! feeddown from Xi (-,0) in jet cone
319   TList* jetConeFDALalist;                                 //! feeddown from Xibar (+,0) in jet cone
320   TList* fListMCgenK0s;                                    //! MC generated K0s
321   TList* fListMCgenLa;                                     //! MC generated La                 
322   TList* fListMCgenALa;                                    //! MC generated ALa              
323   TList* fListMCgenK0sCone;                                //! MC generated K0s in cone around jet axis, particles are from fragmentation but also from underlying event  
324   TList* fListMCgenLaCone;                                 //! MC generated Lambdas in cone around jet axis, particles are from fragmentation but also from underlying event
325   TList* fListMCgenALaCone;                                //! MC generated Antilambdas in cone around jet axis, particles are from fragmentation but also from underlying event
326
327   Bool_t IsArmenterosSelected;                             //Armenteros-Podolanski Cut (is/isn't) applied  
328  
329   AliFragFuncHistosInvMass*  fFFHistosIMALaAllEvt;          //! ALa pt spec for all events
330   AliFragFuncHistosInvMass*  fFFHistosIMALaJet;             //! ALa FF all dPhi   
331   AliFragFuncHistosInvMass*  fFFHistosIMALaCone;            //! ALa FF jet cone   
332   AliFragFuncHistosPhiCorrInvMass*  fFFHistosPhiCorrIMALa;  //! ALa corelation to jet axis 
333   
334   // histogram bins 
335   
336
337
338   //--K0s 
339   
340   Int_t   fFFIMNBinsJetPt;    // FF histos bins
341   Float_t fFFIMJetPtMin;      // FF histos limits
342   Float_t fFFIMJetPtMax;      // FF histos limits
343   
344   Int_t   fFFIMNBinsInvM;     // FF histos bins
345   Float_t fFFIMInvMMin;       // FF histos bins
346   Float_t fFFIMInvMMax;       // FF histos bins
347   
348   Int_t   fFFIMNBinsPt;       // FF histos bins
349   Float_t fFFIMPtMin;         // FF histos limits
350   Float_t fFFIMPtMax;         // FF histos limits
351   
352   Int_t   fFFIMNBinsXi;       // FF histos bins
353   Float_t fFFIMXiMin;         // FF histos limits
354   Float_t fFFIMXiMax;         // FF histos limits
355   
356   Int_t   fFFIMNBinsZ;        // FF histos bins
357   Float_t fFFIMZMin;          // FF histos limits
358   Float_t fFFIMZMax;          // FF histos limits
359   
360   //--La
361   
362   Int_t   fFFIMLaNBinsJetPt;    // FF histos bins
363   Float_t fFFIMLaJetPtMin;      // FF histos limits
364   Float_t fFFIMLaJetPtMax;      // FF histos limits
365   
366   Int_t   fFFIMLaNBinsInvM;     // FF histos bins
367   Float_t fFFIMLaInvMMin;       // FF histos bins
368   Float_t fFFIMLaInvMMax;       // FF histos bins
369   
370   Int_t   fFFIMLaNBinsPt;       // FF histos bins
371   Float_t fFFIMLaPtMin;         // FF histos limits
372   Float_t fFFIMLaPtMax;         // FF histos limits
373   
374   Int_t   fFFIMLaNBinsXi;       // FF histos bins
375   Float_t fFFIMLaXiMin;         // FF histos limits
376   Float_t fFFIMLaXiMax;         // FF histos limits
377   
378   Int_t   fFFIMLaNBinsZ;        // FF histos bins
379   Float_t fFFIMLaZMin;          // FF histos limits
380   Float_t fFFIMLaZMax;          // FF histos limits
381   
382
383   //--K0s
384   
385   Int_t fPhiCorrIMNBinsPt;    // FF histos bins
386   Float_t fPhiCorrIMPtMin;    // FF histos limits
387   Float_t fPhiCorrIMPtMax;    // FF histos limits
388   
389   Int_t fPhiCorrIMNBinsPhi;   // FF histos bins
390   Float_t fPhiCorrIMPhiMin;   // FF histos limits
391   Float_t fPhiCorrIMPhiMax;   // FF histos limits
392   
393   Int_t fPhiCorrIMNBinsInvM;  // FF histos bins
394   Float_t fPhiCorrIMInvMMin;  // FF histos limits
395   Float_t fPhiCorrIMInvMMax;  // FF histos limits
396   
397   //--La
398
399   Int_t fPhiCorrIMLaNBinsPt;    // FF histos bins
400   Float_t fPhiCorrIMLaPtMin;    // FF histos limits
401   Float_t fPhiCorrIMLaPtMax;    // FF histos limits
402
403   Int_t fPhiCorrIMLaNBinsPhi;   // FF histos bins
404   Float_t fPhiCorrIMLaPhiMin;   // FF histos limits
405   Float_t fPhiCorrIMLaPhiMax;   // FF histos limits
406                 
407   Int_t   fPhiCorrIMLaNBinsInvM;  // FF histos bins
408   Float_t fPhiCorrIMLaInvMMin;  // FF histos limits
409   Float_t fPhiCorrIMLaInvMMax;  // FF histos limits
410
411
412   // Histograms
413   
414   TH1F* fh1EvtAllCent; 
415   TH1F* fh1Evt;                      
416   TH1F* fh1K0Mult;                   
417   TH1F* fh1dPhiJetK0;                
418   TH1F* fh1LaMult;                   
419   TH1F* fh1dPhiJetLa;                
420   TH1F* fh1ALaMult;                  
421   TH1F* fh1dPhiJetALa; 
422   TH1F* fh1JetEta;        
423   TH1F* fh1JetPhi;                   
424   TH2F* fh2JetEtaPhi;  
425   TH1F* fh1V0JetPt; 
426   TH2F* fh2FFJetTrackEta; //charged jet track eta distribution                 
427   TH1F* fh1trackPosNCls;             
428   TH1F* fh1trackNegNCls; 
429   TH1F* fh1trackPosRap;              
430   TH1F* fh1trackNegRap;              
431   TH1F* fh1V0Rap;              
432   TH1F* fh1trackPosEta;              
433   TH1F* fh1trackNegEta;              
434   TH1F* fh1V0Eta;                    
435   TH1F* fh1V0totMom;                 
436   TH1F* fh1CosPointAngle;            
437   TH1F* fh1Chi2Pos;                  
438   TH1F* fh1Chi2Neg;                  
439   TH1F* fh1DecayLengthV0;            
440   TH2F* fh2ProperLifetimeK0sVsPtBeforeCut;
441   TH2F* fh2ProperLifetimeK0sVsPtAfterCut;
442   TH1F* fh1ProperLifetimeV0BeforeCut;
443   TH1F* fh1ProperLifetimeV0AfterCut; 
444   TH1F* fh1V0Radius;                 
445   TH1F* fh1DcaV0Daughters;           
446   TH1F* fh1DcaPosToPrimVertex;       
447   TH1F* fh1DcaNegToPrimVertex;        
448   TH2F* fh2ArmenterosBeforeCuts;     
449   TH2F* fh2ArmenterosAfterCuts;      
450   TH2F* fh2BB3SigProton;             
451   TH2F* fh2BBLaPos;                  
452   TH2F* fh2BBLaNeg;                  
453   TH1F* fh1CrossedRowsOverFindableNeg;
454   TH1F* fh1CrossedRowsOverFindablePos;
455   TH1F* fh1PosDaughterCharge;
456   TH1F* fh1NegDaughterCharge;
457   TH1F* fh1PtMCK0s;
458   TH1F* fh1PtMCLa;
459   TH1F* fh1PtMCALa;
460   TH1F* fh1EtaK0s;
461   TH1F* fh1EtaLa;
462   TH1F* fh1EtaALa;  
463   TH3F* fh3InvMassEtaTrackPtK0s;
464   TH3F* fh3InvMassEtaTrackPtLa;
465   TH3F* fh3InvMassEtaTrackPtALa;
466   TH1F* fh1noAssociatedK0s;
467   TH1F* fh1TrackMultCone;
468   TH2F* fh2TrackMultCone;
469   TH2F* fh2MCgenK0Cone;
470   TH2F* fh2MCgenLaCone;
471   TH2F* fh2MCgenALaCone;
472   TH2F* fh2MCEtagenK0Cone;
473   TH2F* fh2MCEtagenLaCone;
474   TH2F* fh2MCEtagenALaCone;
475   TH1F* fh1FFIMK0ConeSmear;
476   TH1F* fh1FFIMLaConeSmear;
477   TH1F* fh1FFIMALaConeSmear;
478   TH3F* fh3MCrecK0Cone;
479   TH3F* fh3MCrecLaCone;
480   TH3F* fh3MCrecALaCone;
481   TH3F* fh3MCrecK0ConeSmear;
482   TH3F* fh3MCrecLaConeSmear;
483   TH3F* fh3MCrecALaConeSmear;
484   TH3F* fh3SecContinCone;
485   TH3F* fh3StrContinCone;
486   TH3F* fh3IMK0PerpCone;
487   TH3F* fh3IMLaPerpCone;
488   TH3F* fh3IMALaPerpCone;
489   TH3F* fh3IMK0MedianCone;
490   TH3F* fh3IMLaMedianCone;
491   TH3F* fh3IMALaMedianCone;
492   TH1F* fh1MCMultiplicityPrimary;
493   TH1F* fh1MCMultiplicityTracks;
494   TH1F* fh1MCmotherLa;
495   TH1F* fh1MCmotherALa;
496   TH3F* fh3FeedDownLa;
497   TH3F* fh3FeedDownALa;     
498   TH1F* fh1MCProdRadiusK0s;
499   TH1F* fh1MCProdRadiusLambda;
500   TH1F* fh1MCProdRadiusAntiLambda;
501   TH1F* fh1MCPtV0s;
502   TH1F* fh1MCPtK0s; 
503   TH1F* fh1MCPtLambda; 
504   TH1F* fh1MCPtAntiLambda;
505   TH1F* fh1MCXiPt;
506   TH1F* fh1MCXibarPt;
507   TH2F* fh2MCEtaVsPtK0s;
508   TH2F* fh2MCEtaVsPtLa;
509   TH2F* fh2MCEtaVsPtALa;
510   TH1F* fh1MCRapK0s; 
511   TH1F* fh1MCRapLambda;
512   TH1F* fh1MCRapAntiLambda;
513   TH1F* fh1MCEtaAllK0s; 
514   TH1F* fh1MCEtaK0s; 
515   TH1F* fh1MCEtaLambda;
516   TH1F* fh1MCEtaAntiLambda;
517
518
519
520   ClassDef(AliAnalysisTaskJetChem, 3);
521 };
522
523 #endif
524
525