1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
loizides |
1.5 |
// $Id: FakeRate.h,v 1.4 2009/08/10 16:07:26 phedex 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 |
loizides |
1.5 |
mithep::TH2DAsymErr::EErrType errorType);
|
46 |
phedex |
1.4 |
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 |
loizides |
1.5 |
mithep::TH2DAsymErr::EErrType errorType);
|
55 |
phedex |
1.4 |
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 |
loizides |
1.5 |
|
85 |
|
|
TString fElectronFRFilename; //filename of file containing electron fake rate
|
86 |
|
|
TString fMuonFRFilename; //filename of file containing muon fake rate
|
87 |
|
|
TString fElectronFRFunctionName; //name of electron fake rate function
|
88 |
|
|
TString fMuonFRFunctionName; //name of muon fake rate function
|
89 |
|
|
TString fElectronFRHistName; //name of histogram containing electron fake rate
|
90 |
|
|
TString fMuonFRHistName; //name of histogram containing muon fake rate
|
91 |
|
|
Bool_t fUse2DFakeRate; //whether to use 2D pt-eta fake rate
|
92 |
|
|
Bool_t fUseFitFunction; //whether to use fit function or not
|
93 |
loizides |
1.1 |
|
94 |
|
|
private:
|
95 |
loizides |
1.5 |
Bool_t fIsInit; //=true if histograms are loaded
|
96 |
|
|
TH2DAsymErr *fElectronFakeRateHist_PtEta; //2D Fake Rate for electrons
|
97 |
|
|
TH2DAsymErr *fMuonFakeRateHist_PtEta; //2D Fake Rate for muons
|
98 |
|
|
TH1F *fElectronFakeRateHist_Pt; //1D Fake Rate for electrons
|
99 |
|
|
TH1F *fMuonFakeRateHist_Pt; //1D Fake Rate for electrons
|
100 |
|
|
TF2 *fElectronFakeRateFit_PtEta; //2D Fake Rate Fit for electrons
|
101 |
|
|
TF2 *fMuonFakeRateFit_PtEta; //2D Fake Rate Fit for muons
|
102 |
|
|
TF1 *fElectronFakeRateFit_Pt; //1D Fake Rate Fit for electrons
|
103 |
|
|
TF1 *fMuonFakeRateFit_Pt; //1D Fake Rate Fit for electrons
|
104 |
loizides |
1.1 |
|
105 |
loizides |
1.3 |
ClassDef(FakeRate, 1) // Fake rate class
|
106 |
loizides |
1.1 |
};
|
107 |
|
|
}
|
108 |
|
|
#endif
|