Rewritten Task for Fragmentation Function, added to compilation of JetTasks module now
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskFragmentationFunction.h
CommitLineData
6bec8236 1#ifndef ALIANALYSISTASKFRAGMENTATIONFUNCTION_H
2#define ALIANALYSISTASKFRAGMENTATIONFUNCTION_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
f32b5a77 7//
8// Task for fragmentation
9//
10
6bec8236 11#include "AliAnalysisTaskSE.h"
12
13class AliJetHeader;
14class AliAODJet;
15class TProfile;
16class TH1F;
17
18class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE
19{
20 public:
21 AliAnalysisTaskFragmentationFunction();
22 AliAnalysisTaskFragmentationFunction(const char* name);
23 virtual ~AliAnalysisTaskFragmentationFunction() {;}
24 // Implementation of interface methods
25 virtual Bool_t Notify();
26 virtual void UserCreateOutputObjects();
27 virtual void Init();
28 virtual void LocalInit() {Init();}
29 virtual void UserExec(Option_t *option);
30 virtual void Terminate(Option_t *option);
31
32 virtual void SetAODInput(Bool_t b){fUseAODInput = b;}
33 virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;}
34 virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;}
35 virtual void SetAnalysisType(Int_t i){fAnalysisType = i;}
36 virtual void SetBranchGen(const char* c){fBranchGen = c;}
37 virtual void SetBranchRec(const char* c){fBranchRec = c;}
38 virtual void SetFilterMask(UInt_t i){fFilterMask = i;}
39
40 virtual void FillMonoJetH(Int_t goodBin, AliAODJet* jet, TClonesArray* Tracks);
41 virtual void DefineJetH();
42
43// virtual void DeleteHists();
44 virtual void SetProperties(TH1* h,const char* x, const char* y);
45
46 // Helper
47 //
48
49 // we have different cases
50 // AOD reading -> MC from AOD
51 // ESD reading -> MC from Kinematics
52 // this has to match with our selection of input events
53 enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
54 enum {kAnaMC = 0x1, kAnaMCESD = 0x2};
55 enum {kMaxJets = 4};
56 enum {kMaxCorrelation = 3};
57
58 //
59 // 0 all jets
60 // 1 all jet in eta window
61 // 2 all jets with partner
62 // 3 all jets in eta window with partner
63 // 4 all jets with partner in eta window
64 enum {kStep0 = 0, kStep1, kStep2, kStep3, kStep4,kMaxStep};
65
66
67 private:
68 AliAnalysisTaskFragmentationFunction(const AliAnalysisTaskFragmentationFunction &det);
69 AliAnalysisTaskFragmentationFunction &operator=(const AliAnalysisTaskFragmentationFunction &det);
70
6bec8236 71
72 private:
73 AliJetHeader *fJetHeaderRec;
74 AliJetHeader *fJetHeaderGen;
75 AliAODEvent *fAOD; // wherewe take the jets from can be input or output AOD
76 // THnSparseF *fhnJetContainer[kMaxStep*2]; // like particle container in corrfw with different steps need AliCFContainer with Scale(), and clone() to do the same
77 // THnSparseF *fhnCorrelation; // response matrix for unfolding
78
79 TString fBranchRec; // AOD branch name for reconstructed
80 TString fBranchGen; // AOD brnach for genereated
81
82 Bool_t fUseAODInput; // use AOD input
83 Bool_t fUseAODJetInput; // use AOD input
84 Bool_t fUseAODTrackInput; // take track from input AOD not from ouptu AOD
85 Bool_t fUseAODMCInput; // take MC from input AOD not from ouptu AOD
86 Bool_t fUseGlobalSelection; // Limit the eta of the generated jets
87 Bool_t fUseExternalWeightOnly; // use only external weight
88 Bool_t fLimitGenJetEta; // Limit the eta of the generated jets
89 UInt_t fFilterMask; // filter bit for slecected tracks
90 Int_t fAnalysisType; // Analysis type
91 Int_t fTrackTypeRec; // type of tracks used for FF
92 Int_t fTrackTypeGen; // type of tracks used for FF
93 Float_t fAvgTrials; // Average nimber of trials
94 Float_t fExternalWeight; // external weight
95 Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen
96
f32b5a77 97 Double_t fR; // tmp
98 Double_t fdRdNdxi; // tmp
99 Double_t fPartPtCut; // tmp
100 Double_t fEfactor; // tmp
101 Int_t fNff; // tmp
102 Int_t fNim; // tmp
103 TList* fList; // tmp
6bec8236 104
f32b5a77 105 Int_t fGlobVar; // tmp
106
107 Bool_t fCDFCut; // tmp
6bec8236 108
109 // INTERVALS
110 Int_t fnEBin; // Number of energy bins
f32b5a77 111 Double_t fEmin; // tmp
112 Double_t fEmax; // tmp
113 Int_t fnEInterval; // tmp
6bec8236 114
115 Int_t fnRBin; // Number of radius bins
f32b5a77 116 Double_t fRmin; // tmp
117 Double_t fRmax; // tmp
118 Int_t fnRInterval; // tmp
119
6bec8236 120 // HISTOGRAMS LIMITS
f32b5a77 121 Int_t fnEtaHBin; // tmp
122 Double_t fEtaHBinMin; // tmp
123 Double_t fEtaHBinMax; // tmp
124
125 Int_t fnPhiHBin; // tmp
126 Double_t fPhiHBinMin; // tmp
127 Double_t fPhiHBinMax; // tmp
6bec8236 128
f32b5a77 129 Int_t fnPtHBin; // tmp
130 Double_t fPtHBinMin; // tmp
131 Double_t fPtHBinMax; // tmp
6bec8236 132
f32b5a77 133 Int_t fnEHBin; // tmp
134 Double_t fEHBinMin; // tmp
135 Double_t fEHBinMax; // tmp
6bec8236 136
f32b5a77 137 Int_t fnXiHBin; // tmp
138 Double_t fXiHBinMax; // tmp
139 Double_t fXiHBinMin; // tmp
6bec8236 140
f32b5a77 141 Int_t fnPthadHBin; // tmp
142 Double_t fPthadHBinMin; // tmp
143 Double_t fPthadHBinMax; // tmp
6bec8236 144
f32b5a77 145 Int_t fnZHBin; // tmp
146 Double_t fZHBinMin; // tmp
147 Double_t fZHBinMax; // tmp
6bec8236 148
f32b5a77 149 Int_t fnThetaHBin; // tmp
150 Double_t fThetaHBinMax; // tmp
6bec8236 151
f32b5a77 152 Int_t fnCosThetaHBin; // tmp
153 Double_t fcosThetaHBinMin; // tmp
154 Double_t fcosThetaHBinMax; // tmp
6bec8236 155
f32b5a77 156 Int_t fnkTHBin; // tmp
157 Double_t fkTHBinMin; // tmp
158 Double_t fkTHBinMax; // tmp
6bec8236 159
f32b5a77 160 Int_t fnRHBin; // tmp
161 Double_t fRHBinMin; // tmp
162 Double_t fRHBinMax; // tmp
6bec8236 163
f32b5a77 164 Int_t fnPtTrigBin; // tmp
6bec8236 165
166 //HISTOGRAMS
f32b5a77 167 TH1F** fEtaMonoJet1H; // tmp
168 TH1F** fPhiMonoJet1H; // tmp
169 TH1F** fPtMonoJet1H; // tmp
170 TH1F** fEMonoJet1H; // tmp
171
172 TH1F*** fdNdXiMonoJet1H; // tmp
173 TH1F*** fdNdPtMonoJet1H; // tmp
174 TH1F*** fdNdZMonoJet1H; // tmp
175 TH1F*** fdNdThetaMonoJet1H; // tmp
176 TH1F*** fdNdcosThetaMonoJet1H; // tmp
177 TH1F*** fdNdkTMonoJet1H; // tmp
178 TH1F*** fdNdpTvsZMonoJet1H; // tmp
179 TH1F*** fShapeMonoJet1H; // tmp
180 TH1F*** fNMonoJet1sH; // tmp
181
182 TH2F*** fThetaPtPartMonoJet1H; // tmp
183 TH2F*** fcosThetaPtPartMonoJet1H; // tmp
184 TH2F*** fkTPtPartMonoJet1H; // tmp
185 TH2F*** fThetaPtJetMonoJet1H; // tmp
186 TH2F*** fcosThetaPtJetMonoJet1H; // tmp
187 TH2F*** fkTPtJetMonoJet1H; // tmp
188 TH2F*** fpTPtJetMonoJet1H; // tmp
6bec8236 189
190 //ARRAYS
f32b5a77 191 Double_t* farrayEmin; //! tmp
192 Double_t* farrayEmax; //! tmp
193 Double_t* farrayRadii; //! tmp
194 Double_t* farrayPtTrigmin; //! tmp
195 Double_t* farrayPtTrigmax; //! tmp
6bec8236 196
197 // TRACK CONTROL PLOTS
f32b5a77 198 TH1F* fptAllTracks; //! tmp
199 TH1F* fetaAllTracks; //! tmp
200 TH1F* fphiAllTracks; //! tmp
201 TH2F* fetaphiptAllTracks; //! tmp
202 TH2F* fetaphiAllTracks; //! tmp
203 TH1F* fptAllTracksCut; //! tmp
204 TH1F* fetaAllTracksCut; //! tmp
205 TH1F* fphiAllTracksCut; //! tmp
206 TH2F* fetaphiptAllTracksCut; //! tmp
207 TH2F* fetaphiAllTracksCut; //! tmp
208
209 TH1F** fptTracks; //! tmp
210 TH1F** fetaTracks; //! tmp
211 TH1F** fphiTracks; //! tmp
212 TH1F** fdetaTracks; //! tmp
213 TH1F** fdphiTracks; //! tmp
214 TH2F** fetaphiptTracks; //! tmp
215 TH2F** fetaphiTracks; //! tmp
216 TH2F** fdetadphiTracks; //! tmp
217 TH1F** fptTracksCut; //! tmp
218 TH1F** fetaTracksCut; //! tmp
219 TH1F** fphiTracksCut; //! tmp
220 TH1F** fdetaTracksCut; //! tmp
221 TH1F** fdphiTracksCut; //! tmp
222 TH2F** fetaphiptTracksCut; //! tmp
223 TH2F** fetaphiTracksCut; //! tmp
224 TH2F** fdetadphiTracksCut; //! tmp
225 TH1F** fNPtTrig; // tmp
226 TH1F** fNPtTrigCut; // tmp
227
228 TH2F* fvertexXY; //! tmp
229 TH1F* fvertexZ; //! tmp
230 TH1F* fEvtMult; //! tmp
231 TH2F* fEvtMultvsJetPt; //! tmp
232 TH2F* fPtvsEtaJet; //! tmp
233 TH2F* fNpvsEtaJet; //! tmp
234 TH2F* fNpevtvsEtaJet; //! tmp
235 TH2F* fPtvsPtJet; //! tmp
236 TH2F* fNpvsPtJet; //! tmp
237 TH2F* fNpevtvsPtJet; //! tmp
238 TH1F* fPtvsPtJet1D; //! tmp
239 TH1F* fNpvsPtJet1D; //! tmp
240 TH1F* fNpevtvsPtJet1D; //! tmp
241 TH1F* fptLeadingJet; //! tmp
242 TH1F* fetaLeadingJet; //! tmp
243 TH1F* fphiLeadingJet; //! //
244 TH1F* fptJet; //! // tmp
245 TH1F* fetaJet; //! // tmp
246 TH1F* fphiJet; //! // tmp
6bec8236 247
248
249 TList* fHistList; //! Output list
250
251 Int_t fNBadRuns; //!
252 TH1F* fNBadRunsH; //!
253
254 ClassDef(AliAnalysisTaskFragmentationFunction, 1) // Analysis task for standard jet analysis
255};
256
257#endif