ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/FakeMods/interface/FakeRate.h
Revision: 1.4
Committed: Mon Aug 10 16:07:26 2009 UTC (15 years, 8 months ago) by phedex
Content type: text/plain
Branch: MAIN
Changes since 1.3: +38 -24 lines
Log Message:
Use TH2DAsymError class to store asymmetric statistical and systematic errors. Do comment and style cleanup.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 phedex 1.4 // $Id: FakeRate.h,v 1.3 2009/07/20 19:05:04 loizides Exp $
3 loizides 1.1 //
4     // FakeRate
5     //
6 loizides 1.2 // Class for storing the fake rates.
7 loizides 1.1 //
8     // Authors: S.Xie
9     //--------------------------------------------------------------------------------------------------
10    
11     #ifndef MITPHYSICS_FAKEMODS_FAKERATE_H
12     #define MITPHYSICS_FAKEMODS_FAKERATE_H
13    
14     #include "MitAna/DataTree/interface/DataObject.h"
15 phedex 1.4 #include "MitCommon/DataFormats/interface/TH2DAsymErr.h"
16 loizides 1.1
17     class TH1F;
18     class TH2F;
19     class TF1;
20     class TF2;
21    
22     namespace mithep
23     {
24     class FakeRate : public DataObject
25     {
26     public:
27     FakeRate() {}
28     FakeRate(TString eleFRFile, TString muonFRFile, TString eleFRFunctionName,
29     TString muonFRFunctionName, TString eleFRHistName, TString muonFRHistName,
30     Bool_t use2DFakeRate,
31     Bool_t useFitFunction) : fElectronFRFilename(eleFRFile),
32     fMuonFRFilename(muonFRFile),
33     fElectronFRFunctionName(eleFRFunctionName),
34     fMuonFRFunctionName(muonFRFunctionName),
35     fElectronFRHistName(eleFRHistName),
36     fMuonFRHistName(muonFRHistName),
37     fUse2DFakeRate (use2DFakeRate),
38     fUseFitFunction(useFitFunction) {
39     fIsInit = Init();
40     }
41    
42     Bool_t Init();
43     Double_t ElectronFakeRate(Double_t et, Double_t eta, Double_t phi);
44 phedex 1.4 Double_t ElectronFakeRateError(Double_t pt, Double_t eta, Double_t phi,
45     mithep::TH2DAsymErr::ErrorType errorType);
46     Double_t ElectronFakeRateStatErrorLow(Double_t pt, Double_t eta, Double_t phi);
47     Double_t ElectronFakeRateStatErrorHigh(Double_t pt, Double_t eta, Double_t phi);
48     Double_t ElectronFakeRateSysErrorLow(Double_t pt, Double_t eta, Double_t phi);
49     Double_t ElectronFakeRateSysErrorHigh(Double_t pt, Double_t eta, Double_t phi);
50     Double_t ElectronFakeRateErrorLow(Double_t pt, Double_t eta, Double_t phi);
51     Double_t ElectronFakeRateErrorHigh(Double_t pt, Double_t eta, Double_t phi);
52 loizides 1.1 Double_t MuonFakeRate(Double_t pt, Double_t eta, Double_t phi);
53 phedex 1.4 Double_t MuonFakeRateError(Double_t pt, Double_t eta, Double_t phi,
54     mithep::TH2DAsymErr::ErrorType errorType);
55     Double_t MuonFakeRateStatErrorLow(Double_t pt, Double_t eta, Double_t phi);
56     Double_t MuonFakeRateStatErrorHigh(Double_t pt, Double_t eta, Double_t phi);
57     Double_t MuonFakeRateSysErrorLow(Double_t pt, Double_t eta, Double_t phi);
58     Double_t MuonFakeRateSysErrorHigh(Double_t pt, Double_t eta, Double_t phi);
59     Double_t MuonFakeRateErrorLow(Double_t pt, Double_t eta, Double_t phi);
60     Double_t MuonFakeRateErrorHigh(Double_t pt, Double_t eta, Double_t phi);
61    
62 loizides 1.1 const char *GetElectronFRFilename() { return fElectronFRFilename; }
63     const char *GetMuonFRFilename() { return fMuonFRFilename; }
64     const char *GetElectronFRFunctionName() { return fElectronFRFunctionName; }
65     const char *GetMuonFRFunctionName() { return fMuonFRFunctionName; }
66     const char *GetElectronFRHistName() { return fElectronFRHistName; }
67     const char *GetMuonFRHistName() { return fMuonFRHistName; }
68     Bool_t GetUse2DFakeRate() { return fUse2DFakeRate; }
69     Bool_t GetUseFitFunction() { return fUseFitFunction; }
70 phedex 1.4 TH2DAsymErr *GetMuonFakeRate() { return fMuonFakeRateHist_PtEta; }
71     TH2DAsymErr *GetElectronFakeRate() { return fElectronFakeRateHist_PtEta; }
72 loizides 1.1
73     void SetElectronFRFilename(const char *name) { fElectronFRFilename = name; }
74     void SetMuonFRFilename(const char *name) { fMuonFRFilename = name; }
75     void SetElectronFRFunctionName(const char *name) { fElectronFRFunctionName = name; }
76     void SetMuonFRFunctionName(const char *name) { fMuonFRFunctionName = name; }
77     void SetElectronFRHistName(const char *name) { fElectronFRHistName = name; }
78     void SetMuonFRHistName(const char *name) { fMuonFRHistName = name; }
79     void SetUse2DFakeRate(Bool_t b) { fUse2DFakeRate = b; }
80     void SetUseFitFunction(Bool_t b) { fUseFitFunction = b; }
81    
82     protected:
83     void DeleteHistos();
84 phedex 1.4 TString fElectronFRFilename; //filename of file containing electron fake rate
85     TString fMuonFRFilename; //filename of file containing muon fake rate
86     TString fElectronFRFunctionName; //name of electron fake rate function
87     TString fMuonFRFunctionName; //name of muon fake rate function
88     TString fElectronFRHistName; //name of histogram containing electron fake rate
89     TString fMuonFRHistName; //name of histogram containing muon fake rate
90     Bool_t fUse2DFakeRate; //whether to use 2D pt-eta fake rate
91     Bool_t fUseFitFunction; //whether to use fit function or not
92 loizides 1.1
93     private:
94 phedex 1.4 Bool_t fIsInit; //=true if histograms are loaded
95     TH2DAsymErr *fElectronFakeRateHist_PtEta; //2D Fake Rate for electrons
96     TH2DAsymErr *fMuonFakeRateHist_PtEta; //2D Fake Rate for muons
97     TH1F *fElectronFakeRateHist_Pt; //1D Fake Rate for electrons
98     TH1F *fMuonFakeRateHist_Pt; //1D Fake Rate for electrons
99     TF2 *fElectronFakeRateFit_PtEta; //2D Fake Rate Fit for electrons
100     TF2 *fMuonFakeRateFit_PtEta; //2D Fake Rate Fit for muons
101     TF1 *fElectronFakeRateFit_Pt; //1D Fake Rate Fit for electrons
102     TF1 *fMuonFakeRateFit_Pt; //1D Fake Rate Fit for electrons
103 loizides 1.1
104 loizides 1.3 ClassDef(FakeRate, 1) // Fake rate class
105 loizides 1.1 };
106     }
107     #endif