]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/UserTasks/AliAnalysisTaskIDFFTCF.h
- Don't change binning of multiplicity, if not stored (in order to maintain jet code...
[u/mrichter/AliRoot.git] / PWGJE / UserTasks / AliAnalysisTaskIDFFTCF.h
CommitLineData
7f0c28ff
ML
1// *************************************************************************
2// * Task for Fragmentation Function Analysis in PWG4 Jet Task Force Train *
3// *************************************************************************
4
5#ifndef ALIANALYSISTASKIDFFTCFN_H
6#define ALIANALYSISTASKIDFFTCFN_H
7
8/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
9 * See cxx source for full Copyright notice */
10
11/* $Id$ */
12
13class AliESDEvent;
14class AliAODEvent;
15class AliAODJets;
16class AliAODExtension;
17class TList;
18class TH1F;
19class TH2F;
20class TH3F;
21class TProfile;
22class THnSparse;
23class TRandom3;
24class TArrayS;
25class AliAODTrack;
26class AliAODMCParticle;
27
28#include "AliAnalysisTaskSE.h"
29#include "TAxis.h"
30#include "THnSparse.h"
31#include <TTreeStream.h>
32
33class AliAnalysisTaskIDFFTCF : public AliAnalysisTaskSE {
34
35 public:
36
37 //----------------------------------------
38 class AliFragFuncHistos : public TObject
39 {
40
41 public:
42
43 AliFragFuncHistos(const char* name = "FFhistos",
44 Int_t nJetPt = 0, Float_t jetPtMin = 0, Float_t jetPtMax = 0,
45 Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
46 Int_t nXi = 0, Float_t xiMin = 0, Float_t xiMax = 0,
47 Int_t nZ = 0, Float_t zMin = 0, Float_t zMax = 0);
48
49 AliFragFuncHistos(const AliFragFuncHistos& copy);
50 AliFragFuncHistos& operator=(const AliFragFuncHistos &o);
51 virtual ~AliFragFuncHistos();
52
53 virtual void DefineHistos();
1bb86680 54 virtual void FillFF(Float_t trackPt, Float_t trackEta, Float_t jetPt,
55 Bool_t incrementJetPt, Float_t norm = 0, Bool_t scaleStrangeness = kFALSE, Float_t scaleFacStrangeness = 1.);
7f0c28ff
ML
56
57 virtual void AddToOutput(TList* list) const;
58
59 private:
60
61 Int_t fNBinsJetPt; // FF histos bins
62 Float_t fJetPtMin; // FF histos limits
63 Float_t fJetPtMax; // FF histos limits
64 Int_t fNBinsPt; // FF histos bins
65 Float_t fPtMin; // FF histos limits
66 Float_t fPtMax; // FF histos limits
67 Int_t fNBinsXi; // FF histos bins
68 Float_t fXiMin; // FF histos limits
69 Float_t fXiMax; // FF histos limits
70 Int_t fNBinsZ; // FF histos bins
71 Float_t fZMin; // FF histos limits
72 Float_t fZMax; // FF histos limits
73
74 TH2F* fh2TrackPt; //! FF: track transverse momentum
75 TH2F* fh2Xi; //! FF: xi
76 TH2F* fh2Z; //! FF: z
77 TH1F* fh1JetPt; //! jet pt
78
1bb86680 79 TH3F* fh3TrackPtVsEta; //! FF: track transverse momentum vs track eta
80 TH3F* fh3TrackPVsEta; //! FF: track momentum vs track eta
81
7f0c28ff
ML
82 TString fNameFF; // histo names prefix
83
84 ClassDef(AliFragFuncHistos, 1);
85 };
86
87 //----------------------------------------
88 class AliFragFuncQAJetHistos : public TObject
89 {
90
91 public:
92
93 AliFragFuncQAJetHistos(const char* name = "QAJethistos",
94 Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
95 Int_t nEta = 0, Float_t etaMin = 0, Float_t etaMax = 0,
96 Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0);
97
98 AliFragFuncQAJetHistos(const AliFragFuncQAJetHistos& copy);
99 AliFragFuncQAJetHistos& operator=(const AliFragFuncQAJetHistos &o);
100 virtual ~AliFragFuncQAJetHistos();
101 virtual void DefineHistos();
102 virtual void FillJetQA(Float_t eta, Float_t phi, Float_t pt);
103 virtual void AddToOutput(TList* list) const;
104
105 private:
106
107 Int_t fNBinsPt; // jet QA histos bins
108 Float_t fPtMin; // jet QA histos limits
109 Float_t fPtMax; // jet QA histos limits
110 Int_t fNBinsEta; // jet QA histos bins
111 Float_t fEtaMin; // jet QA histos limits
112 Float_t fEtaMax; // jet QA histos limits
113 Int_t fNBinsPhi; // jet QA histos bins
114 Float_t fPhiMin; // jet QA histos limits
115 Float_t fPhiMax; // jet QA histos limits
116
117 TH2F* fh2EtaPhi; //! jet phi vs eta
118 TH1F* fh1Pt; //! jet transverse momentum
119 TString fNameQAJ; // histo names prefix
120
121 ClassDef(AliFragFuncQAJetHistos, 1);
122 };
123
124 //----------------------------------------
125 class AliFragFuncQATrackHistos : public TObject
126 {
127
128 public:
129
130 AliFragFuncQATrackHistos(const char* name = "QATrackhistos",
131 Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
132 Int_t nEta = 0, Float_t etaMin = 0, Float_t etaMax = 0,
133 Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0,
134 Float_t ptThresh = 0);
135
136 AliFragFuncQATrackHistos(const AliFragFuncQATrackHistos& copy);
137 AliFragFuncQATrackHistos& operator=(const AliFragFuncQATrackHistos &o);
138 virtual ~AliFragFuncQATrackHistos();
139 virtual void DefineHistos();
140 virtual void FillTrackQA(Float_t eta, Float_t phi, Float_t pt, Bool_t weightPt = kFALSE, Float_t norm = 0., Bool_t scaleStrangeness = kFALSE, Float_t scaleFacStrangeness = 1.);
141 virtual void AddToOutput(TList* list) const;
142
143 private:
144
145 Int_t fNBinsPt; // track QA histos bins in pt
146 Float_t fPtMin; // track QA histos limits in pt
147 Float_t fPtMax; // track QA histos limits in pt
148 Int_t fNBinsEta; // track QA histos bins in eta
149 Float_t fEtaMin; // track QA histos limits in eta
150 Float_t fEtaMax; // track QA histos limits in eta
151 Int_t fNBinsPhi; // track QA histos bins in phi
152 Float_t fPhiMin; // track QA histos limits in phi
153 Float_t fPhiMax; // track QA histos limits in phi
154
155 Float_t fHighPtThreshold; // high pt track phi vs eta distribution
156
157 TH2F* fh2EtaPhi; //! track phi vs eta
158 TH1F* fh1Pt; //! track transverse momentum
159 TH2F* fh2HighPtEtaPhi; //! phi vs eta for high pt (>fgHighPtThreshold) tracks
160 TH2F* fh2PhiPt; //! track phi vs pt
161
162 TString fNameQAT; // histo names prefix
163
164 ClassDef(AliFragFuncQATrackHistos, 2);
165 };
166
167 enum TPCCUTMODE{
168 kPIDNone = 0,
169 kPIDN,
170 kMIGeo
171 };
172 static Bool_t fkDump; //=1: enable debug streamer; =0 : not.
173
174 AliAnalysisTaskIDFFTCF();
175 AliAnalysisTaskIDFFTCF(const char *name);
176 AliAnalysisTaskIDFFTCF(const AliAnalysisTaskIDFFTCF &copy);
177 AliAnalysisTaskIDFFTCF& operator=(const AliAnalysisTaskIDFFTCF &o);
178 virtual ~AliAnalysisTaskIDFFTCF();
179
180 virtual void UserCreateOutputObjects();
181 virtual void Init();
182 virtual void LocalInit() {Init();}
183
184 virtual void UserExec(Option_t *option);
185 virtual void Terminate(Option_t* );
186 virtual Bool_t Notify();
187
188 virtual void SetNonStdFile(char* c){fNonStdFile = c;}
189
190 virtual void SetTrackTypeGen(Int_t i){fTrackTypeGen = i;}
191 virtual void SetJetTypeGen(Int_t i){fJetTypeGen = i;}
192 virtual void SetJetTypeRecEff(Int_t i){fJetTypeRecEff = i;}
193
194 virtual void SetBranchGenJets(const char* c){fBranchGenJets = c;}
195 virtual void SetBranchRecJets(const char* c){fBranchRecJets = c;}
196
197 virtual void SetTrackCuts(Float_t trackPt = 0.15, Float_t trackEtaMin = -0.9, Float_t trackEtaMax = 0.9,
198 Float_t trackPhiMin = 0., Float_t trackPhiMax = 2*TMath::Pi())
199 {fTrackPtCut = trackPt; fTrackEtaMin = trackEtaMin; fTrackEtaMax = trackEtaMax;
200 fTrackPhiMin = trackPhiMin; fTrackPhiMax = trackPhiMax;}
201
202 virtual void UseAODInputJets(Bool_t b) {fUseAODInputJets = b;}
203 virtual void SetFilterMask(UInt_t i) {fFilterMask = i;}
204 virtual void UsePhysicsSelection(Bool_t b) {fUsePhysicsSelection = b;}
205 virtual void SetEventSelectionMask(UInt_t i){fEvtSelectionMask = i;}
206 virtual void SetEventClass(Int_t i){fEventClass = i;}
207 virtual void SetMaxVertexZ(Float_t z){fMaxVertexZ = z;}
208 virtual void UseLeadingJet(Bool_t b){fLeadingJets = b;}
209
210 virtual void SetJetCuts(Float_t jetPt = 5., Float_t jetEtaMin = -0.5, Float_t jetEtaMax = 0.5,
211 Float_t jetPhiMin = 0., Float_t jetPhiMax = 2*TMath::Pi())
212 {fJetPtCut = jetPt; fJetEtaMin = jetEtaMin; fJetEtaMax = jetEtaMax;
213 fJetPhiMin = jetPhiMin; fJetPhiMax = jetPhiMax;}
214
215 virtual void SetFFRadius(Float_t r = 0.4) { fFFRadius = r; }
216 virtual void SetFFMinLTrackPt(Float_t pt = -1) { fFFMinLTrackPt = pt; }
217 virtual void SetFFMaxTrackPt(Float_t pt = -1) { fFFMaxTrackPt = pt; }
218 virtual void SetFFMinNTracks(Int_t nTracks = 0) { fFFMinnTracks = nTracks; }
219 virtual void SetQAMode(Int_t qa = 3) {fQAMode = qa;}
220 virtual void SetFFMode(Int_t ff = 1) {fFFMode = ff;}
221 virtual void SetEffMode(Int_t eff = 1) {fEffMode = eff;}
222
223 static void SetProperties(TH1* h,const char* x, const char* y);
224 static void SetProperties(TH1* h,const char* x, const char* y,const char* z);
4caa033c 225 static void SetProperties(THnSparse* h, Int_t dim, const char** labels);
7f0c28ff 226
4caa033c 227 void SetTPCCutMode(Int_t mode){ fTPCCutMode = mode; }
7f0c28ff
ML
228 Int_t GetTPCCutMode(){return fTPCCutMode; }
229
4caa033c 230 void SetTOFCutMode(Int_t mode){ fTOFCutMode = mode; }
7f0c28ff
ML
231 Int_t GetTOFCutMode(){return fTOFCutMode; }
232
233 void SetHighPtThreshold(Float_t pt = 5.) { fQATrackHighPtThreshold = pt; }
234
235 void SetFFHistoBins(Int_t nJetPt = 245, Float_t jetPtMin = 5, Float_t jetPtMax = 250,
236 Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 200.,
237 Int_t nXi = 70, Float_t xiMin = 0., Float_t xiMax = 7.,
238 Int_t nZ = 22, Float_t zMin = 0., Float_t zMax = 1.1)
239 { fFFNBinsJetPt = nJetPt; fFFJetPtMin = jetPtMin; fFFJetPtMax = jetPtMax;
240 fFFNBinsPt = nPt; fFFPtMin = ptMin; fFFPtMax = ptMax;
241 fFFNBinsXi = nXi; fFFXiMin = xiMin; fFFXiMax = xiMax;
242 fFFNBinsZ = nZ; fFFZMin = zMin; fFFZMax = zMax; }
243
244 void SetQAJetHistoBins(Int_t nPt = 300, Float_t ptMin = 0., Float_t ptMax = 300.,
245 Int_t nEta = 20, Float_t etaMin = -1.0, Float_t etaMax = 1.0,
246 Int_t nPhi = 60, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi())
247 { fQAJetNBinsPt = nPt; fQAJetPtMin = ptMin; fQAJetPtMax = ptMax;
248 fQAJetNBinsEta = nEta; fQAJetEtaMin = etaMin; fQAJetEtaMax = etaMax;
249 fQAJetNBinsPhi = nPhi; fQAJetPhiMin = phiMin; fQAJetPhiMax = phiMax; }
250
251 void SetQATrackHistoBins(Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 200.,
252 Int_t nEta = 20, Float_t etaMin = -1.0, Float_t etaMax = 1.0,
253 Int_t nPhi = 60, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi())
254 { fQATrackNBinsPt = nPt; fQATrackPtMin = ptMin; fQATrackPtMax = ptMax;
255 fQATrackNBinsEta = nEta; fQATrackEtaMin = etaMin; fQATrackEtaMax = etaMax;
256 fQATrackNBinsPhi = nPhi; fQATrackPhiMin = phiMin; fQATrackPhiMax = phiMax; }
257
258
259 Float_t GetFFRadius() const { return fFFRadius; }
260 Float_t GetFFMinLTrackPt() const { return fFFMinLTrackPt; }
261 Float_t GetFFMaxTrackPt() const { return fFFMaxTrackPt; }
262 Float_t GetFFMinNTracks() const { return fFFMinnTracks; }
263
4caa033c 264 void GetJetTracksTrackrefs(TList* l, const AliAODJet* j, Double_t minPtL, Double_t maxPt, Bool_t& isBadPt);
265 void GetJetTracksPointing(TList* in, TList* out, const AliAODJet* j, Double_t r, Double_t& sumPt, Double_t minPtL, Double_t maxPt, Bool_t& isBadPt);
7f0c28ff
ML
266
267 void AssociateGenRec(TList* tracksAODMCCharged,TList* tracksRec, TArrayI& indexAODTr,TArrayI& indexMCTr,TArrayS& isRefGen,TH2F* fh2PtRecVsGen);
268
269 void FillSingleTrackHistosRecGen(AliFragFuncQATrackHistos* trackQAGen, AliFragFuncQATrackHistos* trackQARec, TList* tracksGen,
4caa033c 270 const TArrayI& indexAODTr, const TArrayS& isRefGen, Int_t pdg = 0,
271 Bool_t scaleGFL = kFALSE, Bool_t scaleStrangeness = kFALSE);
7f0c28ff
ML
272
273
274 void FillJetTrackHistosRec(AliFragFuncHistos* histRec, AliAODJet* jet,
275 TList* jetTrackList, const TList* tracksGen, const TList* tracksRec, const TArrayI& indexAODTr,
4caa033c 276 const TArrayS& isRefGen, TList* jetTrackListTR = 0, Int_t pdg = 0,
277 Bool_t scaleGFL = kFALSE, Bool_t scaleStrangeness = kFALSE);
7f0c28ff
ML
278
279
4caa033c 280 Float_t CalcJetArea(Float_t etaJet, Float_t rc) const;
7f0c28ff
ML
281
282 void BookQAHistos(TList* list = 0, AliFragFuncQATrackHistos** rec = 0, TString strTitRec = "", AliFragFuncQATrackHistos** gen = 0, TString strTitGen = "",
283 AliFragFuncQATrackHistos** sec = 0, TString strTitSec = "");
284
285 void BookFFHistos(TList* list, AliFragFuncHistos** rec = 0, TString strTitRec = "", AliFragFuncHistos** gen = 0, TString strTitGen = "",
286 AliFragFuncHistos** sec = 0, TString strTitSec = "");
287
4caa033c 288 Double_t TrackingPtGeantFlukaCorrectionPrMinus(Double_t pTmc);
289 Double_t TrackingPtGeantFlukaCorrectionKaMinus(Double_t pTmc);
1bb86680 290 Double_t GetMCStrangenessFactorCMS(AliAODMCParticle* daughter);
7f0c28ff
ML
291
292
1bb86680 293
7f0c28ff
ML
294 // Consts
295 enum {kTrackUndef=0, kTrackAOD, kTrackAODQualityCuts, kTrackAODCuts,
296 kTrackKineAll, kTrackKineCharged, kTrackKineChargedAcceptance,
297 kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance, kTrackAODMCChargedSec, kTrackAOCMCChargedPrimAcceptance};
298 enum {kJetsUndef=0, kJetsRec, kJetsRecAcceptance, kJetsGen, kJetsGenAcceptance, kJetsKine, kJetsKineAcceptance};
299
300
301 protected:
302
303 Int_t GetListOfTracks(TList* list, Int_t type);
304 Int_t GetListOfJets(TList* list, Int_t type);
305
306 AliESDEvent* fESD; // ESD event
307 AliAODEvent* fAOD; // AOD event
308 AliAODEvent* fAODJets; // AOD event with jet branch (case we have AOD both in input and output)
309 AliAODExtension *fAODExtension; //! where we take the jets from can be input or output AOD
310 TString fNonStdFile; // name of delta aod file to catch the extension
311
312
313 TString fBranchRecJets; // branch name for reconstructed jets
314 TString fBranchGenJets; // branch name for generated jets
315
316 Int_t fTrackTypeGen; // type of generated tracks
317 Int_t fJetTypeGen; // type of generated jets
318
319 Int_t fJetTypeRecEff; // type of jets used for filling reconstruction efficiency histos
320
321 Bool_t fUseAODInputJets; // take jets from in/output - only relevant if AOD event both in input AND output and we want to use output
322 UInt_t fFilterMask; // filter bit for selected tracks
323 Bool_t fUsePhysicsSelection; // switch for event selection
324 UInt_t fEvtSelectionMask; // trigger class selection
325 Int_t fEventClass; // centrality class selection
326 Float_t fMaxVertexZ; // maximum abs(z) position of primiary vertex [cm]
327 Bool_t fLeadingJets; // leading/all jets
328
329
330 Int_t fTPCCutMode; //mode for cutting TPC for good dE/dx
331 Int_t fTOFCutMode; //mode for cutting TOF
332 TTreeStream * fStream; //debug streamer
333 TTree * fTree; //tree of streamer
334
335 // track cuts
336 Float_t fTrackPtCut; // track transverse momentum cut
337 Float_t fTrackEtaMin; // track eta cut
338 Float_t fTrackEtaMax; // track eta cut
339 Float_t fTrackPhiMin; // track phi cut
340 Float_t fTrackPhiMax; // track phi cut
341
342
343 // jet cuts
344 Float_t fJetPtCut; // jet transverse momentum cut
345 Float_t fJetEtaMin; // jet eta cut
346 Float_t fJetEtaMax; // jet eta cut
347 Float_t fJetPhiMin; // jet phi cut
348 Float_t fJetPhiMax; // jet phi cut
349
350 Float_t fFFRadius; // if radius > 0 construct FF from tracks within cone around jet axis, otherwise use trackRefs
351 Float_t fFFMinLTrackPt; // reject jets with leading track with pt smaller than this value
352 Float_t fFFMaxTrackPt; // reject jets containing any track with pt larger than this value
353 Int_t fFFMinnTracks; // reject jets with less tracks than this value
354 Int_t fQAMode; // QA mode: 0x00=0 none, 0x01=1 track qa, 0x10=2 track qa, 0x11=3 both
355 Int_t fFFMode; // fragmentation function mode
356 Int_t fEffMode; // efficiency mode
357
358 Float_t fAvgTrials; // average number of trials per event
359
360 TList* fTracksRecCuts; //! reconstructed tracks after cuts
361 TList* fTracksGen; //! generated tracks
362 TList* fTracksAODMCCharged; //! AOD MC tracks
363 TList* fTracksAODMCChargedSec; //! AOD MC tracks - secondaries
364 TList* fTracksRecQualityCuts; //! reconstructed tracks after quality cuts, no acceptance/pt cut
365
366 TList* fJetsRec; //! jets from reconstructed tracks
367 TList* fJetsRecCuts; //! jets from reonstructed tracks after jet cuts
368 TList* fJetsGen; //! jets from generated tracks
369 TList* fJetsRecEff; //! jets used for reconstruction efficiency histos
370
371
372 AliFragFuncQATrackHistos* fQATrackHistosRecCuts; //! track QA: reconstructed tracks after cuts
373 AliFragFuncQATrackHistos* fQATrackHistosGen; //! track QA: generated tracks
374
375 AliFragFuncQAJetHistos* fQAJetHistosRec; //! jet QA: jets from reconstructed tracks
376 AliFragFuncQAJetHistos* fQAJetHistosRecCuts; //! jet QA: jets from reconstructed tracks after jet cuts
377 AliFragFuncQAJetHistos* fQAJetHistosRecCutsLeading; //! jet QA: leading jet from reconstructed tracks after jet cuts
378 AliFragFuncQAJetHistos* fQAJetHistosGen; //! jet QA: jets from generated tracks
379 AliFragFuncQAJetHistos* fQAJetHistosGenLeading; //! jet QA: leading jet from generated tracks
380 AliFragFuncQAJetHistos* fQAJetHistosRecEffLeading; //! jet QA: leading jet used for reconstruction efficiency histos
381
382
383 AliFragFuncHistos* fFFHistosRecCutsInc; //! inclusive FF (all jets)
384 AliFragFuncHistos* fFFHistosRecCutsIncPi; //! inclusive FF (all jets)
385 AliFragFuncHistos* fFFHistosRecCutsIncPro; //! inclusive FF (all jets)
386 AliFragFuncHistos* fFFHistosRecCutsIncK; //! inclusive FF (all jets)
387 AliFragFuncHistos* fFFHistosRecCutsIncEl; //! inclusive FF (all jets)
388 AliFragFuncHistos* fFFHistosRecCutsIncMu; //! inclusive FF (all jets)
389
390 AliFragFuncHistos* fFFHistosRecLeadingTrack; //! FF reconstructed tracks after cuts: leading track pt / jet pt (all jets)
391
392 AliFragFuncHistos* fFFHistosGenInc; //! inclusive FF (all jets)
393 AliFragFuncHistos* fFFHistosGenIncPi; //! inclusive FF (all jets)
394 AliFragFuncHistos* fFFHistosGenIncPro; //! inclusive FF (all jets)
395 AliFragFuncHistos* fFFHistosGenIncK; //! inclusive FF (all jets)
396 AliFragFuncHistos* fFFHistosGenIncEl; //! inclusive FF (all jets)
397 AliFragFuncHistos* fFFHistosGenIncMu; //! inclusive FF (all jets)
398 AliFragFuncHistos* fFFHistosGenLeadingTrack; //! FF reconstructed tracks after cuts: leading track pt / jet pt (all jets)
399
400 Float_t fQATrackHighPtThreshold; // track QA high transverse momentum threshold
401
402 THnSparseD * fTHnIDFF; //! tracks in jets
403 THnSparseD * fTHnIncl; //! inclusive tracks
404
405 // histogram bins
406
407 Int_t fFFNBinsJetPt; // FF histos bins
408 Float_t fFFJetPtMin; // FF histos limits
409 Float_t fFFJetPtMax; // FF histos limits
410
411 Int_t fFFNBinsPt; // FF histos bins
412 Float_t fFFPtMin; // FF histos limits
413 Float_t fFFPtMax; // FF histos limits
414
415 Int_t fFFNBinsXi; // FF histos bins
416 Float_t fFFXiMin; // FF histos limits
417 Float_t fFFXiMax; // FF histos limits
418
419 Int_t fFFNBinsZ; // FF histos bins
420 Float_t fFFZMin; // FF histos limits
421 Float_t fFFZMax; // FF histos limits
422
423 Int_t fQAJetNBinsPt; // jet QA histos bins
424 Float_t fQAJetPtMin; // jet QA histos limits
425 Float_t fQAJetPtMax; // jet QA histos limits
426
427 Int_t fQAJetNBinsEta; // jet QA histos bins
428 Float_t fQAJetEtaMin; // jet QA histos limits
429 Float_t fQAJetEtaMax; // jet QA histos limits
430
431 Int_t fQAJetNBinsPhi; // jet QA histos bins
432 Float_t fQAJetPhiMin; // jet QA histos limits
433 Float_t fQAJetPhiMax; // jet QA histos limits
434
435 Int_t fQATrackNBinsPt; // track QA histos bins
436 Float_t fQATrackPtMin; // track QA histos limits
437 Float_t fQATrackPtMax; // track QA histos limits
438
439 Int_t fQATrackNBinsEta; // track QA histos bins
440 Float_t fQATrackEtaMin; // track QA histos limits
441 Float_t fQATrackEtaMax; // track QA histos limits
442
443 Int_t fQATrackNBinsPhi; // track QA histos bins
444 Float_t fQATrackPhiMin; // track QA histos limits
445 Float_t fQATrackPhiMax; // track QA histos limits
446
447 // Histograms
448 TList *fCommonHistList; // List of common histos
449
450 TH1F *fh1EvtSelection; //! event cuts
451 TH1F *fh1VertexNContributors; //! NContributors to prim vertex
452 TH1F *fh1VertexZ; //! prim vertex z distribution
453 TH1F *fh1EvtMult; //! number of reconstructed tracks after cuts
454 TH1F *fh1EvtCent; //! centrality percentile
455
456 TProfile* fh1Xsec; //! pythia cross section and trials
457 TH1F* fh1Trials; //! sum of trials
458 TH1F* fh1PtHard; //! pt hard of the event
459 TH1F* fh1PtHardTrials; //! pt hard of the event
460
461 TH1F *fh1nRecJetsCuts; //! number of jets from reconstructed tracks per event
462 TH1F *fh1nGenJets; //! number of jets from generated tracks per event
463 TH1F *fh1nRecEffJets; //! number of jets for reconstruction eff per event
464
465 TH2F *fh2PtRecVsGenPrim; //! association rec/gen MC: rec vs gen pt, primaries
466 TH2F *fh2PtRecVsGenSec; //! association rec/gen MC: rec vs gen pt, secondaries
467
468 // tracking efficiency / secondaries
469
470 AliFragFuncQATrackHistos* fQATrackHistosRecEffGen; //! tracking efficiency: generated primaries
471 AliFragFuncQATrackHistos* fQATrackHistosRecEffRec; //! tracking efficiency: reconstructed primaries
472 AliFragFuncQATrackHistos* fQATrackHistosSecRec; //! reconstructed secondaries
1bb86680 473 AliFragFuncQATrackHistos* fQATrackHistosSecRecSSc; //! reconstructed secondaries
7f0c28ff
ML
474
475 AliFragFuncQATrackHistos* fQATrackHistosRecEffGenPi; //! tracking efficiency: generated primaries
476 AliFragFuncQATrackHistos* fQATrackHistosRecEffGenPro; //! tracking efficiency: generated primaries
477 AliFragFuncQATrackHistos* fQATrackHistosRecEffGenK; //! tracking efficiency: generated primaries
478 AliFragFuncQATrackHistos* fQATrackHistosRecEffGenEl; //! tracking efficiency: generated primaries
479 AliFragFuncQATrackHistos* fQATrackHistosRecEffGenMu; //! tracking efficiency: generated primaries
480
481 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecPi; //! tracking efficiency: generated primaries
482 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecPro; //! tracking efficiency: generated primaries
483 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecK; //! tracking efficiency: generated primaries
484 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecEl; //! tracking efficiency: generated primaries
485 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecMu; //! tracking efficiency: generated primaries
486 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecProGFL; //! tracking efficiency: generated primaries
487 AliFragFuncQATrackHistos* fQATrackHistosRecEffRecKGFL; //! tracking efficiency: generated primaries
488
489 AliFragFuncQATrackHistos* fQATrackHistosSecRecPi; //! tracking efficiency: generated primaries
490 AliFragFuncQATrackHistos* fQATrackHistosSecRecPro; //! tracking efficiency: generated primaries
491 AliFragFuncQATrackHistos* fQATrackHistosSecRecK; //! tracking efficiency: generated primaries
492 AliFragFuncQATrackHistos* fQATrackHistosSecRecEl; //! tracking efficiency: generated primaries
493 AliFragFuncQATrackHistos* fQATrackHistosSecRecMu; //! tracking efficiency: generated primaries
494 AliFragFuncQATrackHistos* fQATrackHistosSecRecProGFL; //! tracking efficiency: generated primaries
495 AliFragFuncQATrackHistos* fQATrackHistosSecRecKGFL; //! tracking efficiency: generated primaries
496
1bb86680 497 AliFragFuncQATrackHistos* fQATrackHistosSecRecPiSSc; //! tracking efficiency: generated primaries
498 AliFragFuncQATrackHistos* fQATrackHistosSecRecProSSc; //! tracking efficiency: generated primaries
499 AliFragFuncQATrackHistos* fQATrackHistosSecRecKSSc; //! tracking efficiency: generated primaries
500 AliFragFuncQATrackHistos* fQATrackHistosSecRecElSSc; //! tracking efficiency: generated primaries
501 AliFragFuncQATrackHistos* fQATrackHistosSecRecMuSSc; //! tracking efficiency: generated primaries
502 AliFragFuncQATrackHistos* fQATrackHistosSecRecProGFLSSc; //! tracking efficiency: generated primaries
503 AliFragFuncQATrackHistos* fQATrackHistosSecRecKGFLSSc; //! tracking efficiency: generated primaries
504
505
7f0c28ff
ML
506
507
508 AliFragFuncHistos* fFFHistosRecEffRec; //! tracking efficiency: FF reconstructed primaries
509 AliFragFuncHistos* fFFHistosSecRec; //! secondary contamination: FF reconstructed secondaries
1bb86680 510 AliFragFuncHistos* fFFHistosSecRecSSc; //! secondary contamination: FF reconstructed secondaries
7f0c28ff
ML
511
512 AliFragFuncHistos* fFFHistosRecEffRecPi; //! tracking efficiency: FF reconstructed primaries
513 AliFragFuncHistos* fFFHistosRecEffRecPro; //! tracking efficiency: FF reconstructed primaries
514 AliFragFuncHistos* fFFHistosRecEffRecK; //! tracking efficiency: FF reconstructed primaries
515 AliFragFuncHistos* fFFHistosRecEffRecEl; //! tracking efficiency: FF reconstructed primaries
516 AliFragFuncHistos* fFFHistosRecEffRecMu; //! tracking efficiency: FF reconstructed primaries
517 AliFragFuncHistos* fFFHistosRecEffRecProGFL; //! tracking efficiency: FF reconstructed primaries
518 AliFragFuncHistos* fFFHistosRecEffRecKGFL; //! tracking efficiency: FF reconstructed primaries
519
7f0c28ff
ML
520 AliFragFuncHistos* fFFHistosSecRecPi; //! secondary contamination: FF reconstructed secondaries
521 AliFragFuncHistos* fFFHistosSecRecPro; //! secondary contamination: FF reconstructed secondaries
522 AliFragFuncHistos* fFFHistosSecRecK; //! secondary contamination: FF reconstructed secondaries
523 AliFragFuncHistos* fFFHistosSecRecEl; //! secondary contamination: FF reconstructed secondaries
524 AliFragFuncHistos* fFFHistosSecRecMu; //! secondary contamination: FF reconstructed secondaries
525 AliFragFuncHistos* fFFHistosSecRecProGFL; //! secondary contamination: FF reconstructed secondaries
526 AliFragFuncHistos* fFFHistosSecRecKGFL; //! secondary contamination: FF reconstructed secondaries
527
1bb86680 528 AliFragFuncHistos* fFFHistosSecRecPiSSc; //! tracking efficiency: FF reconstructed primaries
529 AliFragFuncHistos* fFFHistosSecRecProSSc; //! tracking efficiency: FF reconstructed primaries
530 AliFragFuncHistos* fFFHistosSecRecKSSc; //! tracking efficiency: FF reconstructed primaries
531 AliFragFuncHistos* fFFHistosSecRecElSSc; //! tracking efficiency: FF reconstructed primaries
532 AliFragFuncHistos* fFFHistosSecRecMuSSc; //! tracking efficiency: FF reconstructed primaries
533 AliFragFuncHistos* fFFHistosSecRecProGFLSSc; //! tracking efficiency: FF reconstructed primaries
534 AliFragFuncHistos* fFFHistosSecRecKGFLSSc; //! tracking efficiency: FF reconstructed primaries
7f0c28ff
ML
535
536
537 TRandom3* fRandom; // TRandom3 for background estimation
538
539 ClassDef(AliAnalysisTaskIDFFTCF, 1);
540};
541
542#endif