added 2dim unfolding histograms to jet task, cosmetic changes in steering macro
[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 ////////////////
9 #include <THnSparse.h>
10 ////////////////
11 class AliJetHeader;
12 class AliESDEvent;
13 class AliAODEvent;
14 class AliAODJet;
15 class AliGenPythiaEventHeader;
16
17 class TList;
18 class TChain;
19 class TH2F;
20 class TH3F;
21
22 class 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};
51     enum {kMaxJets =  5};
52     enum {kMaxCorrelation =  3};
53
54  private:
55
56     AliAnalysisTaskJetSpectrum(const AliAnalysisTaskJetSpectrum&);
57     AliAnalysisTaskJetSpectrum& operator=(const AliAnalysisTaskJetSpectrum&);
58     
59     static const Float_t fgkJetNpartCut[kMaxCorrelation];
60
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
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     ///////////////////////////////////////////////////////
119
120
121     ClassDef(AliAnalysisTaskJetSpectrum, 1) // Analysis task for standard jet analysis
122 };
123  
124 #endif