temporary workaround for circular dependency libSTEERbase <-> libRAWDatabase, see...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJetSpectrum.h
CommitLineData
f3050824 1#ifndef ALIANALYSISTASKJETSPECTRUM_H
2#define ALIANALYSISTASKJETSPECTRUM_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7#include "AliAnalysisTaskSE.h"
df65bddb 8////////////////
9#include <THnSparse.h>
10////////////////
f3050824 11class AliJetHeader;
12class AliESDEvent;
13class AliAODEvent;
14class AliAODJet;
15class AliGenPythiaEventHeader;
16
17class TList;
18class TChain;
19class TH2F;
20class TH3F;
21
22class AliAnalysisTaskJetSpectrum : public AliAnalysisTaskSE
23{
24 public:
25 AliAnalysisTaskJetSpectrum();
26 AliAnalysisTaskJetSpectrum(const char* name);
27 virtual ~AliAnalysisTaskJetSpectrum() {;}
28 // Implementation of interface methods
29 virtual void UserCreateOutputObjects();
30 virtual void Init();
31 virtual void LocalInit() { Init(); }
32 virtual void UserExec(Option_t *option);
33 virtual void Terminate(Option_t *option);
34
35 virtual void SetExternalWeight(Float_t f){fExternalWeight = f;}
36 virtual void SetUseExternalWeightOnly(Bool_t b){fUseExternalWeightOnly = b;}
37 virtual void SetAODInput(Bool_t b){fUseAODInput = b;}
38 virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;}
39 virtual void SetAnalysisType(Int_t i){fAnalysisType = i;}
40 virtual void SetBranchGen(char* c){fBranchGen = c;}
41 virtual void SetBranchRec(char* c){fBranchRec = c;}
42
43 // Helper
44 static void GetClosestJets(AliAODJet *genJets,Int_t &nGenJets,
45 AliAODJet *recJets,Int_t &nRecJets,
46 Int_t *iGenIndex,Int_t *iRecIndex,Int_t iDebug = 0);
47
48 //
49
50 enum {kAnaMC = 0x1};
df65bddb 51 enum {kMaxJets = 5};
52 enum {kMaxCorrelation = 3};
f3050824 53
54 private:
55
56 AliAnalysisTaskJetSpectrum(const AliAnalysisTaskJetSpectrum&);
57 AliAnalysisTaskJetSpectrum& operator=(const AliAnalysisTaskJetSpectrum&);
58
df65bddb 59 static const Float_t fgkJetNpartCut[kMaxCorrelation];
f3050824 60
f3050824 61
62 AliJetHeader *fJetHeaderRec;
63 AliJetHeader *fJetHeaderGen;
64 AliAODEvent *fAOD; // where we take the jets from can be input or output AOD
65
66 TString fBranchRec; // AOD branch name for reconstructed
67 TString fConfigRec; // Name of the Config file
68 TString fBranchGen; // AOD brnach for genereated
69 TString fConfigGen; // Name of the Config file (if any)
70
71 Bool_t fUseAODInput;
72 Bool_t fUseExternalWeightOnly;
73 Bool_t fLimitGenJetEta;
74 Int_t fAnalysisType;
75 Float_t fExternalWeight;
76
77 TH1F* fh1PtHard; // Pt har of the event...
78 TH1F* fh1PtHard_NoW; // Pt har of the event...
79 TH1F* fh1PtHard_Trials; // Number of trials
80 TH1F* fh1NGenJets;
81 TH1F* fh1NRecJets;
82 TH1F* fh1E[kMaxJets]; // Jet Energy
83 TH1F* fh1PtRecIn[kMaxJets]; // Jet pt for all
84 TH1F* fh1PtRecOut[kMaxJets]; // Jet pt with corellated generated jet
85 TH1F* fh1PtGenIn[kMaxJets]; // Detection efficiency for given p_T.gen
86 TH1F* fh1PtGenOut[kMaxJets]; //
87
88
89
90 TH2F* fh2PtFGen[kMaxJets]; //
91 TH2F* fh2Frag[kMaxJets]; // fragmentation function
92 TH2F* fh2FragLn[kMaxJets]; //
93
94 TH3F* fh3PtRecGenHard[kMaxJets]; //
95 TH3F* fh3PtRecGenHard_NoW[kMaxJets]; //
96 TH3F* fh3RecEtaPhiPt[kMaxJets]; //
97 TH3F* fh3RecEtaPhiPt_NoGen[kMaxJets]; //
98 TH3F* fh3GenEtaPhiPt_NoFound[kMaxJets]; //
99 TH3F* fh3GenEtaPhiPt[kMaxJets]; //
100 // ========= Multiplicity dependence ======
101
102 // ==========TODO , flavaor dependence ========
103 // ============================================
104
105
106 // ============= TODO , phi dependence ========
107 // ============================================
108
109 TList *fHistList; // Output list
df65bddb 110
111 ///////// For 2 dimensional unfolding //////////////////
112 TH1F* fh1JetMultiplicity;
113 TH2F* fh2ERecZRec;
114 TH2F* fh2EGenZGen;
115 TH2F* fh2Efficiency;
116 TH3F* fh3EGenERecN;
117 THnSparseF* fhnCorrelation[kMaxCorrelation];
118 ///////////////////////////////////////////////////////
f3050824 119
120
121 ClassDef(AliAnalysisTaskJetSpectrum, 1) // Analysis task for standard jet analysis
122};
123
124#endif