1 /*************************************************************************
3 * Task for Jet Chemistry Analysis in PWG4 Jet Task Force Train *
6 * contact: Oliver Busch *
9 *************************************************************************/
11 #ifndef ALIANALYSISTASKJETCHEM_H
12 #define ALIANALYSISTASKJETCHEM_H
14 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
15 * See cxx source for full Copyright notice */
19 #include "AliAnalysisTaskFragmentationFunction.h"
21 class AliAnalysisTaskJetChem : public AliAnalysisTaskFragmentationFunction {
25 //----------------------------------------
26 class AliFragFuncHistosInvMass : public TObject
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();
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;
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
63 TH3F* fh3TrackPt; //! FF: track transverse momentum
64 TH3F* fh3Xi; //! FF: xi
66 TH1F* fh1JetPt; //! jet pt
68 TString fNameFF; // histo names prefix
70 ClassDef(AliFragFuncHistosInvMass, 1);
74 //----------------------------------------
75 class AliFragFuncHistosPhiCorrInvMass : public TObject
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);
85 AliFragFuncHistosPhiCorrInvMass(const AliFragFuncHistosPhiCorrInvMass& copy);
86 AliFragFuncHistosPhiCorrInvMass& operator=(const AliFragFuncHistosPhiCorrInvMass &o);
87 virtual ~AliFragFuncHistosPhiCorrInvMass();
89 virtual void DefineHistos();
90 virtual void FillPhiCorr(Float_t pt, Float_t phi, Float_t invM);
91 virtual void AddToOutput(TList* list) const;
95 Int_t fNBinsPt; // FF histos bins
96 Float_t fPtMin; // FF histos limits
97 Float_t fPtMax; // FF histos limits
99 Int_t fNBinsPhi; // FF histos bins
100 Float_t fPhiMin; // FF histos limits
101 Float_t fPhiMax; // FF histos limits
103 Int_t fNBinsInvMass; // FF histos bins
104 Float_t fInvMassMin; // FF histos limits
105 Float_t fInvMassMax; // FF histos limits
107 TH3F* fh3PhiCorr; //! FF: phi correlation histo
109 TString fNamePhiCorr; // histo names prefix
111 ClassDef(AliFragFuncHistosPhiCorrInvMass, 1);
114 //----------------------------------------
116 AliAnalysisTaskJetChem();
117 AliAnalysisTaskJetChem(const char *name);
118 AliAnalysisTaskJetChem(const AliAnalysisTaskJetChem ©);
119 AliAnalysisTaskJetChem& operator=(const AliAnalysisTaskJetChem &o);
120 virtual ~AliAnalysisTaskJetChem();
122 virtual void UserCreateOutputObjects();
123 virtual void UserExec(Option_t *option);
125 static void SetProperties(TH3F* h,const char* x, const char* y,const char* z);
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;}
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; }
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)
147 { fPhiCorrIMNBinsPt = nPt; fPhiCorrIMPtMin = ptMin; fPhiCorrIMPtMax = ptMax;
148 fPhiCorrIMNBinsPhi = nPhi; fPhiCorrIMPhiMin = phiMin; fPhiCorrIMPhiMax = phiMax;
149 fPhiCorrIMNBinsInvM = nInvM; fPhiCorrIMInvMMin = invMMin; fPhiCorrIMInvMMax = invMMax;
154 enum { kTrackUndef =0, kOnFly, kOnFlyPID, kOnFlydEdx, kOnFlyPrim, kOffl, kOfflPID, kOffldEdx, kOfflPrim };
158 Int_t fK0Type; //! K0 cuts
159 UInt_t fFilterMaskK0; //! K0 legs cuts
160 TList* fListK0s; //! K0 list
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
171 Int_t fFFIMNBinsJetPt; // FF histos bins
172 Float_t fFFIMJetPtMin; // FF histos limits
173 Float_t fFFIMJetPtMax; // FF histos limits
175 Int_t fFFIMNBinsInvM; // FF histos bins
176 Float_t fFFIMInvMMin; // FF histos bins
177 Float_t fFFIMInvMMax; // FF histos bins
179 Int_t fFFIMNBinsPt; // FF histos bins
180 Float_t fFFIMPtMin; // FF histos limits
181 Float_t fFFIMPtMax; // FF histos limits
183 Int_t fFFIMNBinsXi; // FF histos bins
184 Float_t fFFIMXiMin; // FF histos limits
185 Float_t fFFIMXiMax; // FF histos limits
187 Int_t fFFIMNBinsZ; // FF histos bins
188 Float_t fFFIMZMin; // FF histos limits
189 Float_t fFFIMZMax; // FF histos limits
192 Int_t fPhiCorrIMNBinsPt; // FF histos bins
193 Float_t fPhiCorrIMPtMin; // FF histos limits
194 Float_t fPhiCorrIMPtMax; // FF histos limits
196 Int_t fPhiCorrIMNBinsPhi; // FF histos bins
197 Float_t fPhiCorrIMPhiMin; // FF histos limits
198 Float_t fPhiCorrIMPhiMax; // FF histos limits
200 Int_t fPhiCorrIMNBinsInvM; // FF histos bins
201 Float_t fPhiCorrIMInvMMin; // FF histos limits
202 Float_t fPhiCorrIMInvMMax; // FF histos limits
209 TH1F* fh1dPhiJetK0; //!
212 ClassDef(AliAnalysisTaskJetChem, 3);