]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/AliAnalysisTaskJetChem.h
Transition PWG0 -> PWGUD
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetChem.h
1 /*************************************************************************
2  *                                                                       *
3  * Task for Jet Chemistry Analysis in PWG4 Jet Task Force Train          *
4  *                                                                       *
5  *                                                                       *
6  * contact: Oliver Busch                                                 *
7  * o.busch@gsi.de                                                        *
8  *                                                                       *
9  *************************************************************************/
10
11 #ifndef ALIANALYSISTASKJETCHEM_H
12 #define ALIANALYSISTASKJETCHEM_H
13
14 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
15  * See cxx source for full Copyright notice                               */
16
17 /* $Id$ */
18
19 #include "AliAnalysisTaskFragmentationFunction.h"
20
21 class AliAnalysisTaskJetChem : public AliAnalysisTaskFragmentationFunction {
22
23  public:
24   
25   //----------------------------------------
26   class AliFragFuncHistosInvMass : public TObject
27   {
28     
29     public:
30     
31     AliFragFuncHistosInvMass(const char* name = "FFIMhistos", 
32                              Int_t nJetPt = 0, Float_t jetPtMin = 0, Float_t jetPtMax = 0,
33                              Int_t nInvMass = 0, Float_t invMassMin=0, Float_t invMassMax=0,  
34                              Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
35                              Int_t nXi = 0, Float_t xiMin = 0, Float_t xiMax = 0,
36                              Int_t nZ  = 0, Float_t zMin  = 0, Float_t zMax  = 0);
37     AliFragFuncHistosInvMass(const AliFragFuncHistosInvMass& copy);
38     AliFragFuncHistosInvMass& operator=(const AliFragFuncHistosInvMass &o);
39     virtual ~AliFragFuncHistosInvMass();
40     
41     virtual void DefineHistos();
42     virtual void FillFF(Float_t trackPt, Float_t invM, Float_t jetPt,Bool_t incrementJetPt);
43     virtual void AddToOutput(TList* list) const;
44
45   private:
46
47     Int_t   fNBinsJetPt;    // FF histos bins
48     Float_t fJetPtMin;      // FF histos limits
49     Float_t fJetPtMax;      // FF histos limits
50     Int_t   fNBinsInvMass;  // FF histos bins
51     Float_t fInvMassMin;    // FF histos limits
52     Float_t fInvMassMax;    // FF histos limits
53     Int_t   fNBinsPt;       // FF histos bins
54     Float_t fPtMin;         // FF histos limits
55     Float_t fPtMax;         // FF histos limits
56     Int_t   fNBinsXi;       // FF histos bins
57     Float_t fXiMin;         // FF histos limits
58     Float_t fXiMax;         // FF histos limits
59     Int_t   fNBinsZ;        // FF histos bins
60     Float_t fZMin;          // FF histos limits
61     Float_t fZMax;          // FF histos limits
62   
63     TH3F*   fh3TrackPt;     //! FF: track transverse momentum 
64     TH3F*   fh3Xi;          //! FF: xi 
65     TH3F*   fh3Z;           //! FF: z  
66     TH1F*   fh1JetPt;       //! jet pt 
67
68     TString fNameFF;        // histo names prefix
69     
70     ClassDef(AliFragFuncHistosInvMass, 1);
71   };
72   
73
74  //----------------------------------------
75   class AliFragFuncHistosPhiCorrInvMass : public TObject
76   {
77                                    
78     public:
79     
80     AliFragFuncHistosPhiCorrInvMass(const char* name = "FFPhiCorrIMhistos", 
81                                     Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
82                                     Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0,
83                                     Int_t nInvMass = 0, Float_t invMassMin=0, Float_t invMassMax=0);
84
85     AliFragFuncHistosPhiCorrInvMass(const AliFragFuncHistosPhiCorrInvMass& copy);
86     AliFragFuncHistosPhiCorrInvMass& operator=(const AliFragFuncHistosPhiCorrInvMass &o);
87     virtual ~AliFragFuncHistosPhiCorrInvMass();
88     
89     virtual void DefineHistos();
90     virtual void FillPhiCorr(Float_t pt, Float_t phi, Float_t invM);
91     virtual void AddToOutput(TList* list) const;
92
93   private:
94
95     Int_t   fNBinsPt;       // FF histos bins
96     Float_t fPtMin;         // FF histos limits
97     Float_t fPtMax;         // FF histos limits
98
99     Int_t   fNBinsPhi;      // FF histos bins
100     Float_t fPhiMin;        // FF histos limits
101     Float_t fPhiMax;        // FF histos limits
102     
103     Int_t   fNBinsInvMass;  // FF histos bins
104     Float_t fInvMassMin;    // FF histos limits
105     Float_t fInvMassMax;    // FF histos limits
106   
107     TH3F*   fh3PhiCorr;     //! FF: phi correlation histo 
108
109     TString fNamePhiCorr;   // histo names prefix
110     
111     ClassDef(AliFragFuncHistosPhiCorrInvMass, 1);
112   };
113   
114   //----------------------------------------
115
116   AliAnalysisTaskJetChem(); 
117   AliAnalysisTaskJetChem(const char *name);
118   AliAnalysisTaskJetChem(const  AliAnalysisTaskJetChem &copy);
119   AliAnalysisTaskJetChem& operator=(const  AliAnalysisTaskJetChem &o);
120   virtual ~AliAnalysisTaskJetChem();
121   
122   virtual void   UserCreateOutputObjects();
123   virtual void   UserExec(Option_t *option);
124
125   static  void   SetProperties(TH3F* h,const char* x, const char* y,const char* z);
126
127   Bool_t IsAccepteddEdx(const Double_t mom,const Double_t signal, AliPID::EParticleType n, const Double_t cutnSig) const;
128   Bool_t IsK0InvMass(const Double_t mass) const; 
129   Int_t  GetListOfK0s(TList *list, const Int_t type);
130   virtual void SetK0Type(Int_t i){ fK0Type = i; }
131   virtual void SetFilterMaskK0(UInt_t i) {fFilterMaskK0 = i;}
132
133
134   void   SetFFInvMassHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5, Float_t jetPtMax = 100, 
135                                Int_t nInvM = 50, Float_t invMMin = 0.450,  Float_t invMMax = 0.550,
136                                Int_t nPt = 20, Float_t ptMin = 0., Float_t ptMax = 20., 
137                                Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
138                                Int_t nZ = 11,  Float_t zMin = 0.,  Float_t zMax = 1.1)
139   { fFFIMNBinsJetPt = nJetPt; fFFIMJetPtMin = jetPtMin; fFFIMJetPtMax = jetPtMax; 
140     fFFIMNBinsInvM = nInvM; fFFIMInvMMin = invMMin; fFFIMInvMMax = invMMax; fFFIMNBinsPt = nPt; fFFIMPtMin = ptMin; fFFIMPtMax = ptMax; 
141     fFFIMNBinsXi = nXi; fFFIMXiMin = xiMin; fFFIMXiMax = xiMax; fFFIMNBinsZ  = nZ;  fFFIMZMin  = zMin;  fFFIMZMax  = zMax; }
142
143   void   SetPhiCorrInvMassHistoBins(Int_t nPt = 40, Float_t ptMin = 0., Float_t ptMax = 20., 
144                                     Int_t nPhi = 20, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi(),
145                                     Int_t nInvM = 50, Float_t invMMin = 0.450,  Float_t invMMax = 0.550)
146                                     
147   { fPhiCorrIMNBinsPt = nPt; fPhiCorrIMPtMin = ptMin; fPhiCorrIMPtMax = ptMax;
148     fPhiCorrIMNBinsPhi = nPhi; fPhiCorrIMPhiMin = phiMin; fPhiCorrIMPhiMax = phiMax;
149     fPhiCorrIMNBinsInvM = nInvM; fPhiCorrIMInvMMin = invMMin; fPhiCorrIMInvMMax = invMMax;
150   }
151   
152   
153   // consts
154   enum { kTrackUndef =0, kOnFly, kOnFlyPID, kOnFlydEdx, kOnFlyPrim, kOffl, kOfflPID, kOffldEdx, kOfflPrim };  
155   
156  private:
157   
158   Int_t fK0Type;                                           //! K0 cuts
159   UInt_t fFilterMaskK0;                                    //! K0 legs cuts
160   TList* fListK0s;                                         //! K0 list 
161
162   AliFragFuncQATrackHistos*  fV0QAK0;                      //! track QA: V0s in K0 inv mass range
163   AliFragFuncHistos*         fFFHistosRecCutsK0Evt;        //! inclusive FF for K0 evt
164   AliFragFuncHistosInvMass*  fFFHistosIMK0AllEvt;          //! K0 pt spec for all events
165   AliFragFuncHistosInvMass*  fFFHistosIMK0Jet;             //! K0 FF all dPhi   
166   AliFragFuncHistosInvMass*  fFFHistosIMK0Cone;            //! K0 FF jet cone   
167   AliFragFuncHistosPhiCorrInvMass*  fFFHistosPhiCorrIMK0;  //! K0 corelation to jet axis 
168
169   // histogram bins  
170
171   Int_t   fFFIMNBinsJetPt;    // FF histos bins
172   Float_t fFFIMJetPtMin;      // FF histos limits
173   Float_t fFFIMJetPtMax;      // FF histos limits
174
175   Int_t   fFFIMNBinsInvM;     // FF histos bins
176   Float_t fFFIMInvMMin;       // FF histos bins
177   Float_t fFFIMInvMMax;       // FF histos bins
178
179   Int_t   fFFIMNBinsPt;       // FF histos bins
180   Float_t fFFIMPtMin;         // FF histos limits
181   Float_t fFFIMPtMax;         // FF histos limits
182
183   Int_t   fFFIMNBinsXi;       // FF histos bins
184   Float_t fFFIMXiMin;         // FF histos limits
185   Float_t fFFIMXiMax;         // FF histos limits
186
187   Int_t   fFFIMNBinsZ;        // FF histos bins
188   Float_t fFFIMZMin;          // FF histos limits
189   Float_t fFFIMZMax;          // FF histos limits
190
191
192   Int_t fPhiCorrIMNBinsPt;    // FF histos bins
193   Float_t fPhiCorrIMPtMin;    // FF histos limits
194   Float_t fPhiCorrIMPtMax;    // FF histos limits
195
196   Int_t fPhiCorrIMNBinsPhi;   // FF histos bins
197   Float_t fPhiCorrIMPhiMin;   // FF histos limits
198   Float_t fPhiCorrIMPhiMax;   // FF histos limits
199                 
200   Int_t fPhiCorrIMNBinsInvM;  // FF histos bins
201   Float_t fPhiCorrIMInvMMin;  // FF histos limits
202   Float_t fPhiCorrIMInvMMax;  // FF histos limits
203   
204
205
206   // Histograms
207
208   TH1F* fh1K0Mult;                  //!
209   TH1F* fh1dPhiJetK0;               //!
210
211
212   ClassDef(AliAnalysisTaskJetChem, 3);
213 };
214
215 #endif