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" |
8 | class AliJetHeader; |
9 | class AliESDEvent; |
10 | class AliAODEvent; |
11 | class AliAODJet; |
12 | class AliGenPythiaEventHeader; |
13 | |
14 | class TList; |
15 | class TChain; |
16 | class TH2F; |
17 | class TH3F; |
18 | |
19 | class AliAnalysisTaskJetSpectrum : public AliAnalysisTaskSE |
20 | { |
21 | public: |
22 | AliAnalysisTaskJetSpectrum(); |
23 | AliAnalysisTaskJetSpectrum(const char* name); |
24 | virtual ~AliAnalysisTaskJetSpectrum() {;} |
25 | // Implementation of interface methods |
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 SetExternalWeight(Float_t f){fExternalWeight = f;} |
33 | virtual void SetUseExternalWeightOnly(Bool_t b){fUseExternalWeightOnly = b;} |
34 | virtual void SetAODInput(Bool_t b){fUseAODInput = b;} |
35 | virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;} |
36 | virtual void SetAnalysisType(Int_t i){fAnalysisType = i;} |
37 | virtual void SetBranchGen(char* c){fBranchGen = c;} |
38 | virtual void SetBranchRec(char* c){fBranchRec = c;} |
39 | |
40 | // Helper |
41 | static void GetClosestJets(AliAODJet *genJets,Int_t &nGenJets, |
42 | AliAODJet *recJets,Int_t &nRecJets, |
43 | Int_t *iGenIndex,Int_t *iRecIndex,Int_t iDebug = 0); |
44 | |
45 | // |
46 | |
47 | enum {kAnaMC = 0x1}; |
48 | |
49 | private: |
50 | |
51 | AliAnalysisTaskJetSpectrum(const AliAnalysisTaskJetSpectrum&); |
52 | AliAnalysisTaskJetSpectrum& operator=(const AliAnalysisTaskJetSpectrum&); |
53 | |
54 | |
55 | enum {kMaxJets = 5}; |
56 | |
57 | AliJetHeader *fJetHeaderRec; |
58 | AliJetHeader *fJetHeaderGen; |
59 | AliAODEvent *fAOD; // where we take the jets from can be input or output AOD |
60 | |
61 | TString fBranchRec; // AOD branch name for reconstructed |
62 | TString fConfigRec; // Name of the Config file |
63 | TString fBranchGen; // AOD brnach for genereated |
64 | TString fConfigGen; // Name of the Config file (if any) |
65 | |
66 | Bool_t fUseAODInput; |
67 | Bool_t fUseExternalWeightOnly; |
68 | Bool_t fLimitGenJetEta; |
69 | Int_t fAnalysisType; |
70 | Float_t fExternalWeight; |
71 | |
72 | TH1F* fh1PtHard; // Pt har of the event... |
73 | TH1F* fh1PtHard_NoW; // Pt har of the event... |
74 | TH1F* fh1PtHard_Trials; // Number of trials |
75 | TH1F* fh1NGenJets; |
76 | TH1F* fh1NRecJets; |
77 | TH1F* fh1E[kMaxJets]; // Jet Energy |
78 | TH1F* fh1PtRecIn[kMaxJets]; // Jet pt for all |
79 | TH1F* fh1PtRecOut[kMaxJets]; // Jet pt with corellated generated jet |
80 | TH1F* fh1PtGenIn[kMaxJets]; // Detection efficiency for given p_T.gen |
81 | TH1F* fh1PtGenOut[kMaxJets]; // |
82 | |
83 | |
84 | |
85 | TH2F* fh2PtFGen[kMaxJets]; // |
86 | TH2F* fh2Frag[kMaxJets]; // fragmentation function |
87 | TH2F* fh2FragLn[kMaxJets]; // |
88 | |
89 | TH3F* fh3PtRecGenHard[kMaxJets]; // |
90 | TH3F* fh3PtRecGenHard_NoW[kMaxJets]; // |
91 | TH3F* fh3RecEtaPhiPt[kMaxJets]; // |
92 | TH3F* fh3RecEtaPhiPt_NoGen[kMaxJets]; // |
93 | TH3F* fh3GenEtaPhiPt_NoFound[kMaxJets]; // |
94 | TH3F* fh3GenEtaPhiPt[kMaxJets]; // |
95 | // ========= Multiplicity dependence ====== |
96 | |
97 | // ==========TODO , flavaor dependence ======== |
98 | // ============================================ |
99 | |
100 | |
101 | // ============= TODO , phi dependence ======== |
102 | // ============================================ |
103 | |
104 | TList *fHistList; // Output list |
105 | |
106 | |
107 | ClassDef(AliAnalysisTaskJetSpectrum, 1) // Analysis task for standard jet analysis |
108 | }; |
109 | |
110 | #endif |