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

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: FakeRate.h,v 1.3 2009/07/20 19:05:04 loizides Exp $
3 //
4 // FakeRate
5 //
6 // Class for storing the fake rates.
7 //
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 #include "MitCommon/DataFormats/interface/TH2DAsymErr.h"
16
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 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 Double_t MuonFakeRate(Double_t pt, Double_t eta, Double_t phi);
53 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 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 TH2DAsymErr *GetMuonFakeRate() { return fMuonFakeRateHist_PtEta; }
71 TH2DAsymErr *GetElectronFakeRate() { return fElectronFakeRateHist_PtEta; }
72
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 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
93 private:
94 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
104 ClassDef(FakeRate, 1) // Fake rate class
105 };
106 }
107 #endif