Jet and Particle identification tasks moved to different directories
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJetSpectrum.h
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