]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/AliAnalysisTaskJetSpectrum.h
Add Spectrum Task and helper class, some minor mods
[u/mrichter/AliRoot.git] / PWG4 / 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 AliJetFinder;
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 SetAnalysisType(Int_t b){fAnalysisType = b;}
36     virtual void SetBranchGen(char* c){fBranchGen = c;}
37     virtual void SetBranchRec(char* c){fBranchRec = c;}
38
39     // Helper
40     static void GetClosestJets(AliAODJet *genJets,Int_t &nGenJets,
41                                AliAODJet *recJets,Int_t &nRecJets,
42                                Int_t *iGenIndex,Int_t *iRecIndex,Int_t iDebug = 0);
43
44   //
45
46     enum {kAnaMC =  0x1};
47
48  private:
49
50     AliAnalysisTaskJetSpectrum(const AliAnalysisTaskJetSpectrum&);
51     AliAnalysisTaskJetSpectrum& operator=(const AliAnalysisTaskJetSpectrum&);
52     
53
54     enum {kMaxJets =  5};
55
56     AliJetFinder *fJetFinderRec;
57     AliJetFinder *fJetFinderGen;
58     AliAODEvent  *fAOD; // where we take the jets from can be input or output AOD
59
60     TString       fBranchRec;  // AOD branch name for reconstructed
61     TString       fConfigRec;  // Name of the Config file 
62     TString       fBranchGen;  // AOD brnach for genereated
63     TString       fConfigGen;  // Name of the Config file (if any)
64
65     Bool_t        fUseAODInput;
66     Bool_t        fUseExternalWeightOnly;
67     Int_t         fAnalysisType;
68     Float_t       fExternalWeight;    
69
70     TH1F*         fh1PtHard;  // Pt har of the event...       
71     TH1F*         fh1PtHard_NoW;  // Pt har of the event...       
72     TH1F*         fh1PtHard_Trials;  // Number of trials 
73     TH1F*         fh1PtHard_Trials_NoW;  // Number of trials 
74     TH1F*         fh1NGenJets;
75     TH1F*         fh1NRecJets;
76     TH1F*         fh1E[kMaxJets];       // Jet Energy       
77     TH1F*         fh1PtRecIn[kMaxJets];       // Jet pt for all      
78     TH1F*         fh1PtRecOut[kMaxJets];      // Jet pt with corellated generated jet    
79     TH1F*         fh1PtGenIn[kMaxJets];       // Detection efficiency for given p_T.gen
80     TH1F*         fh1PtGenOut[kMaxJets];      //
81
82
83     
84     TH2F*         fh2PtFGen[kMaxJets];  //
85     TH2F*         fh2Frag[kMaxJets];    // fragmentation function
86     TH2F*         fh2FragLn[kMaxJets];  //
87
88     TH3F*         fh3PtRecGenHard[kMaxJets];  //                              
89     TH3F*         fh3PtRecGenHard_NoW[kMaxJets];  //                  
90     TH3F*         fh3RecEtaPhiPt[kMaxJets]; // 
91     TH3F*         fh3RecEtaPhiPt_NoGen[kMaxJets]; // 
92     TH3F*         fh3RecEtaPhiPt_NoFound[kMaxJets]; //                    
93     TH3F*         fh3MCEtaPhiPt[kMaxJets]; //                                                                                                        
94     // ========= Multiplicity dependence ======
95
96     // ==========TODO , flavaor dependence ========                           
97     // ============================================                       
98                                      
99
100     // ============= TODO , phi dependence ========
101     // ============================================                            
102   
103     TList *fHistList; // Output list
104
105
106     ClassDef(AliAnalysisTaskJetSpectrum, 1) // Analysis task for standard jet analysis
107 };
108  
109 #endif