305980e5418b1599602e57712859b15cbc700dd2
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinderPlots.h
1 #ifndef ALIEMCALJETFINDERPLOTS_H
2 #define ALIEMCALJETFINDERPLOTS_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  *  *  * See cxx source for full Copyright notice     */
6
7
8 /* $Id$ */
9
10 //_________________________________________________________________________
11 //  Class for Filling jetfinder plots
12 //
13 //*-- Author: Mark Horner (LBL/UCT)
14 //
15 //
16
17
18
19 #include "TObject.h"
20 #include "TH1F.h"
21 #include "TH2F.h"
22
23 #include "AliEMCALJetFinderOutput.h"
24
25 class AliEMCALJetFinderPlots : public TObject
26 {
27         public: 
28         AliEMCALJetFinderPlots();
29         ~AliEMCALJetFinderPlots();
30         void SetConeRadius(Float_t coneradius){fConeRadius = coneradius;}
31         void SetNominalEnergy(Float_t energy){fNominalEnergy = energy;}
32         void SetDebug(Int_t debug){fDebug = debug;}
33         void SetBackHisto(TH1F* histo){fhBackHisto=histo;}
34         void FillFromOutput(AliEMCALJetFinderOutput* output);
35         //========================== CASE 1 ========================
36         // Only consider events with only 1 jet
37         TH1F* GetFragmFcn(){return fhFragmFcn;} 
38         TH1F* GetPartonFragmFcn(){return fhPartonFragmFcn;}     
39         TH1F* GetPT(){return fhJetPT;}  
40         TH1F* GetPartonPT(){return fhPartonPT;} 
41         TH1F* GetJetJT(){return fhJetJT;}       
42         TH1F* GetPartonJT(){return fhPartonJT;} 
43         TH1F* GetJetPL(){return fhJetPL;}
44         TH1F* GetPartonPL(){return fhPartonPL;}
45         TH1F* GetJetEt(){return fhJetEt;}
46         TH1F* GetJetEtDiff(){return fhJetEtDiff;}
47         TH1F* GetJetEta(){return fhJetEta;}
48         TH1F* GetPartonEta(){return fhPartonEta;}
49         TH1F* GetPartonPhi(){return fhPartonPhi;}
50         TH1F* GetJetPhi(){return fhJetPhi;}
51         TH1F* GetEtaDiff(){return fhEtaDiff;}
52         TH1F* GetPhiDiff(){return fhPhiDiff;}
53         TH2F* GetEtaPhiSpread(){return fhEtaPhiSpread;}
54         TH1F* GetNJets(){return fhNJets;}
55
56         //========================== CASE 2 ========================
57         // Only consider events with at least 2 jets
58         TH1F* GetFragmFcn2(){return fhFragmFcn2;}       
59         TH1F* GetPartonFragmFcn2(){return fhPartonFragmFcn2;}   
60         TH1F* GetPT2(){return fhJetPT2;}        
61         TH1F* GetPartonPT2(){return fhPartonPT2;}       
62         TH1F* GetJetJT2(){return fhJetJT2;}     
63         TH1F* GetPartonJT2(){return fhPartonJT2;}       
64         TH1F* GetJetPL2(){return fhJetPL2;}
65         TH1F* GetPartonPL2(){return fhPartonPL2;}
66         TH1F* GetJetEt2(){return fhJetEt2;}
67         TH1F* GetJetEtDiff2(){return fhJetEtDiff2;}
68         TH1F* GetJetEta2(){return fhJetEta2;}
69         TH1F* GetPartonEta2(){return fhPartonEta2;}
70         TH1F* GetPartonPhi2(){return fhPartonPhi2;}
71         TH1F* GetJetPhi2(){return fhJetPhi2;}
72         TH1F* GetEtaDiff2(){return fhEtaDiff2;}
73         TH1F* GetPhiDiff2(){return fhPhiDiff2;}
74         TH2F* GetEtaPhiSpread2(){return fhEtaPhiSpread2;}
75         TH1F* GetNJets2(){return fhNJets2;}
76         TH1F* GetJetEtSecond2(){return fhJetEtSecond2;}
77         TH1F* GetJetEtRatio2(){return fhJetEtRatio2;}
78         TH1F* GetEtaPhiDist2(){return fhEtaPhiDist2;}
79
80         
81         TH1F* GetJetPt(){return fhJetPT ;}
82         TH1F* GetPartonPt(){return fhPartonPT ;}
83         TH1F* GetJetPt2(){return        fhJetPT2;}
84         TH1F* GetPartonPt2(){return fhPartonPT2;}
85         TH1F* GetRecoBinFragmFcn() {return fhRecoBinFragmFcn;}
86         TH1F* GetRecoBinFragmFcnNoBg() {return fhRecoBinFragmFcnNoBg;}
87         TH1F* GetRecoBinPartonFragmFcn() {return        fhRecoBinPartonFragmFcn;}
88
89         //============================== ALL CASES ============================================
90         
91         TH2F* GetInputOutput(){return fhInputOutput;}
92         
93         //============================== Reconstruction Bin Comparison  ============================================
94         
95         TH1F* GetRecoBinPt(){return fhRecoBinPt;}                  // ("fhRecoBinPt","Reconstructed Pt Distribution",100,0,1);
96         TH1F* GetRecoBinPartonPt(){return fhRecoBinPartonPt;}      // ("fhRecoBinPartonPt","Input Pt Distribution",100,0,1);
97         TH1F* GetRecoBinJetEt(){return fhRecoBinJetEt;}            // ("fhRecoJetEt","E_{T}^{reco}",250,0.,250.);
98         TH1F* GetRecoBinInputJetEt(){return fhRecoBinInputJetEt;}  // ("fhRecoInputJetEt","E_{T}^{reco}",250,0.,250.);
99
100         private:
101         void InitPlots();
102         Int_t                           fDebug;         // Debug value
103         Float_t                         fConeRadius;    // Cone radius to be used in filling
104         Float_t                         fNominalEnergy; // Force a nominal energy - specifically for 80+20 jets
105         AliEMCALJetFinderOutput*        fOutput;        // Output object to be analysed
106         //===================== CASE 1 ===========================================
107         TH1F                            *fhFragmFcn;    // ("hFragmFcn","Fragmentation Function",100,0,1);
108         TH1F                            *fhPartonFragmFcn;// ("hFragmFcn","Parton Fragmentation Function",100,0,1);
109         TH1F                            *fhPartonJT;    // ("hPartonJT","Track Momentum Perpendicular to Parton Axis",100,0.,10.);
110         TH1F                            *fhPartonPL;    // ("hPartonPL","Track Momentum Parallel to Parton Axis ",100,0.,100.);
111         TH1F                            *fhJetJT;       // ("hJetJT","Track Momentum Perpendicular to Jet Axis",100,0.,10.);
112         TH1F                            *fhJetPL;       // ("hJetPL","Track Momentum Parallel to Jet Axis ",100,0.,100.);
113         TH1F                            *fhJetEt;       // ("hJetEt","E_{T}^{reco}",250,0.,250.);
114         TH1F                            *fhJetEtDiff;   // ("hJetEt","E_{T}^{reco}",250,0.,250.);
115         TH1F                            *fhJetEta;      // ("hJetEta","#eta_{jet}^{reco}",180,-0.9,0.9);
116         TH1F                            *fhJetPhi;      // ("hJetPhi","#phi_{jet}^{reco}",62,0.,3.1);
117         TH1F                            *fhPartonEta;   // ("hPartonEta","#eta_{Parton}",180,-0.9,0.9);
118         TH1F                            *fhPartonPhi;   // ("hPartonPhi","#phi_{Parton}",62,0.,3.1);
119         TH1F                            *fhEtaDiff;     // ("hEtaDiff","#eta_{jet}^{reco}-#eta_{jet}^{input}",100,-0.5,0.5);
120         TH1F                            *fhPhiDiff;     // ("hPhiDiff","#phi_{jet}^{reco}-#phi_{jet}^{input}",100,-0.5,0.5);
121         TH2F                            *fhEtaPhiSpread;        // ("hEtaPhiSpread","#eta - #phi Distribution 
122                                                         //of Reconstructed Jets",192,-0.7,0.7,288,pi/3,pi);
123         TH1F                            *fhNJets;       // ("hNJets","N Reconstructed jets",11,-0.5,10.5);
124   
125         //============================== CASE 2 ============================================
126
127         TH1F                            *fhFragmFcn2;   // ("hFragmFcn2","Fragmentation Function",100,0,1);
128         TH1F                            *fhPartonFragmFcn2;// ("hFragmFcn2","Parton Fragmentation Function",100,0,1);
129         TH1F                            *fhPartonJT2;   // ("hPartonJT2","Track Momentum Perpendicular to Parton Axis",100,0.,10.);
130         TH1F                            *fhPartonPL2;   // ("hPartonPL2","Track Momentum Parallel to Parton Axis ",100,0.,100.);
131         TH1F                            *fhJetJT2;      // ("hJetJT2","Track Momentum Perpendicular to Jet Axis",100,0.,10.);
132         TH1F                            *fhJetPL2;      // ("hJetPL2","Track Momentum Parallel to Jet Axis ",100,0.,100.);
133         TH1F                            *fhJetEt2;      // ("hJetEt2","E_{T}^{reco}",250,0.,250.);
134         TH1F                            *fhJetEtDiff2;  // ("hJetEt","E_{T}^{reco}",250,0.,250.);
135         TH1F                            *fhJetEta2;     // ("hJetEta2","#eta_{jet}^{reco}",180,-0.9,0.9);
136         TH1F                            *fhJetPhi2;     // ("hJetPhi2","#phi_{jet}^{reco}",62,0.,3.1);
137         TH1F                            *fhPartonEta2;  // ("hPartonEta2","#eta_{Parton}",180,-0.9,0.9);
138         TH1F                            *fhPartonPhi2;  // ("hPartonPhi2","#phi_{Parton}",62,0.,3.1);
139         TH1F                            *fhEtaDiff2;    // ("hEtaDiff2","#eta_{jet}^{reco}-#eta_{jet}^{input}",100,-0.5,0.5);
140         TH1F                            *fhPhiDiff2;    // ("hPhiDiff2","#phi_{jet}^{reco}-#phi_{jet}^{input}",100,-0.5,0.5);
141         TH2F                            *fhEtaPhiSpread2;       // ("hEtaPhiSpread2","#eta - #phi Distribution 
142                                                         //of Reconstructed Jets",192,-0.7,0.7,288,pi/3,pi);
143         TH1F                            *fhNJets2;      // ("hNJets2","N Reconstructed jets",11,-0.5,10.5);
144         TH1F                            *fhJetEtSecond2; //("hJetEtSecond2","E_{T}^{reco}",250,0.,250.); 
145         TH1F                            *fhJetEtRatio2;  //("hJetEtRatio2","Ratio of Second Highest to Highest",100,0,1);
146         TH1F                            *fhEtaPhiDist2;  //("hEtaPhiDist2","Angular Distance Between First and Second",100,0,3);
147
148         //============================== ALL CASES ============================================
149
150         TH2F                            *fhInputOutput;  //("hJetEtRatio2","Ratio of Second Highest to Highest",100,0,1);
151
152         //============================== Reconstruction Bin Comparison  ============================================
153         
154         TH1F                            *fhRecoBinPt;          // ("fhRecoBinPt","Reconstructed Pt Distribution",100,0,1);
155         TH1F                            *fhRecoBinPartonPt;    // ("fhRecoBinPartonPt","Input Pt Distribution",100,0,1);
156         TH1F                            *fhRecoBinJetEt;       // ("fhRecoJetEt","E_{T}^{reco}",250,0.,250.);
157         TH1F                            *fhRecoBinInputJetEt;  // ("fhRecoInputJetEt","E_{T}^{reco}",250,0.,250.);
158     TH1F*                               fhJetPT ;// new TH1F("hJetPT","P_{T} Distribution",200,0,200);
159     TH1F*                               fhPartonPT ;// new TH1F("hPartonPT","Parton P_{T} Distribution",200,0,1);
160     TH1F*                               fhJetPT2 ;// new TH1F("hJetPT","P_{T} Distribution",200,0,200);
161     TH1F*                               fhPartonPT2 ;// new TH1F("hPartonPT","Parton P_{T} Distribution",200,0,1);
162     TH1F*                               fhRecoBinFragmFcn;//new TH1F("fhRecoBinFragmFcn","Reconstructed Frag. Fcn",100,0,1);
163     TH1F*                               fhRecoBinFragmFcnNoBg;//new TH1F("fhRecoBinFragmFcn","Reconstructed Frag. Fcn",100,0,1);
164     TH1F*                               fhRecoBinPartonFragmFcn;// new TH1F("fhRecoBinPartonFragmFcn","Input Bin Fragm Fcn Distribution",100,0,1);
165         
166         TH1F*                           fhJetInvE;// new TH1F("fhJetInvE","#frac{1}{E_{R}}",100,0,1);
167         TH1F*                           fhJetInvE2;// new TH1F("fhJetInvE2","#frac{1}{E_{R}}",100,0,1);
168  
169         TH1F*                           fhBackHisto;
170         Float_t                         fScaleFactor; //Scaling to get back to correct energy
171         Bool_t                          fInitialised; // have histograms been initialised
172                 
173         
174         ClassDef(AliEMCALJetFinderPlots,6)
175         
176 };
177 #endif
178