1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
loizides |
1.3 |
// $Id: FakeRate.h,v 1.2 2009/07/13 11:27:13 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 |
|
|
|
16 |
|
|
class TH1F;
|
17 |
|
|
class TH2F;
|
18 |
|
|
class TF1;
|
19 |
|
|
class TF2;
|
20 |
|
|
|
21 |
|
|
namespace mithep
|
22 |
|
|
{
|
23 |
|
|
class FakeRate : public DataObject
|
24 |
|
|
{
|
25 |
|
|
public:
|
26 |
|
|
FakeRate() {}
|
27 |
|
|
FakeRate(TString eleFRFile, TString muonFRFile, TString eleFRFunctionName,
|
28 |
|
|
TString muonFRFunctionName, TString eleFRHistName, TString muonFRHistName,
|
29 |
|
|
Bool_t use2DFakeRate,
|
30 |
|
|
Bool_t useFitFunction) : fElectronFRFilename(eleFRFile),
|
31 |
|
|
fMuonFRFilename(muonFRFile),
|
32 |
|
|
fElectronFRFunctionName(eleFRFunctionName),
|
33 |
|
|
fMuonFRFunctionName(muonFRFunctionName),
|
34 |
|
|
fElectronFRHistName(eleFRHistName),
|
35 |
|
|
fMuonFRHistName(muonFRHistName),
|
36 |
|
|
fUse2DFakeRate (use2DFakeRate),
|
37 |
|
|
fUseFitFunction(useFitFunction) {
|
38 |
|
|
fIsInit = Init();
|
39 |
|
|
}
|
40 |
|
|
|
41 |
|
|
Bool_t Init();
|
42 |
|
|
Double_t ElectronFakeRate(Double_t et, Double_t eta, Double_t phi);
|
43 |
|
|
Double_t MuonFakeRate(Double_t pt, Double_t eta, Double_t phi);
|
44 |
|
|
Double_t ElectronFakeRateError(Double_t et, Double_t eta, Double_t phi);
|
45 |
|
|
Double_t MuonFakeRateError(Double_t pt, Double_t eta, Double_t phi);
|
46 |
|
|
const char *GetElectronFRFilename() { return fElectronFRFilename; }
|
47 |
|
|
const char *GetMuonFRFilename() { return fMuonFRFilename; }
|
48 |
|
|
const char *GetElectronFRFunctionName() { return fElectronFRFunctionName; }
|
49 |
|
|
const char *GetMuonFRFunctionName() { return fMuonFRFunctionName; }
|
50 |
|
|
const char *GetElectronFRHistName() { return fElectronFRHistName; }
|
51 |
|
|
const char *GetMuonFRHistName() { return fMuonFRHistName; }
|
52 |
|
|
Bool_t GetUse2DFakeRate() { return fUse2DFakeRate; }
|
53 |
|
|
Bool_t GetUseFitFunction() { return fUseFitFunction; }
|
54 |
|
|
|
55 |
|
|
void SetElectronFRFilename(const char *name) { fElectronFRFilename = name; }
|
56 |
|
|
void SetMuonFRFilename(const char *name) { fMuonFRFilename = name; }
|
57 |
|
|
void SetElectronFRFunctionName(const char *name) { fElectronFRFunctionName = name; }
|
58 |
|
|
void SetMuonFRFunctionName(const char *name) { fMuonFRFunctionName = name; }
|
59 |
|
|
void SetElectronFRHistName(const char *name) { fElectronFRHistName = name; }
|
60 |
|
|
void SetMuonFRHistName(const char *name) { fMuonFRHistName = name; }
|
61 |
|
|
void SetUse2DFakeRate(Bool_t b) { fUse2DFakeRate = b; }
|
62 |
|
|
void SetUseFitFunction(Bool_t b) { fUseFitFunction = b; }
|
63 |
|
|
|
64 |
|
|
protected:
|
65 |
|
|
void DeleteHistos();
|
66 |
|
|
TString fElectronFRFilename; //!filename of file containing electron fake rate
|
67 |
|
|
TString fMuonFRFilename; //!filename of file containing muon fake rate
|
68 |
|
|
TString fElectronFRFunctionName; //!name of electron fake rate function
|
69 |
|
|
TString fMuonFRFunctionName; //!name of muon fake rate function
|
70 |
|
|
TString fElectronFRHistName; //!name of histogram containing electron fake rate
|
71 |
|
|
TString fMuonFRHistName; //!name of histogram containing muon fake rate
|
72 |
|
|
Bool_t fUse2DFakeRate; //!whether to use 2D pt-eta fake rate
|
73 |
|
|
Bool_t fUseFitFunction; //!whether to use fit function or not
|
74 |
|
|
|
75 |
|
|
private:
|
76 |
|
|
Bool_t fIsInit; //!=true if histograms are loaded
|
77 |
|
|
TH2F *fElectronFakeRateHist_PtEta; //!2D Fake Rate for electrons
|
78 |
|
|
TH2F *fMuonFakeRateHist_PtEta; //!2D Fake Rate for muons
|
79 |
|
|
TH1F *fElectronFakeRateHist_Pt; //!2D Fake Rate for electrons
|
80 |
|
|
TH1F *fMuonFakeRateHist_Pt; //!2D Fake Rate for electrons
|
81 |
|
|
TF2 *fElectronFakeRateFit_PtEta; //!2D Fake Rate Fit for electrons
|
82 |
|
|
TF2 *fMuonFakeRateFit_PtEta; //!2D Fake Rate Fit for muons
|
83 |
|
|
TF1 *fElectronFakeRateFit_Pt; //!2D Fake Rate Fit for electrons
|
84 |
|
|
TF1 *fMuonFakeRateFit_Pt; //!2D Fake Rate Fit for electrons
|
85 |
|
|
|
86 |
|
|
TH2F *fElectronFakeRateHist_PtEta_sysError; //!2D Fake Rate Error for electrons
|
87 |
|
|
TH2F *fMuonFakeRateHist_PtEta_sysError; //!2D Fake Rate Error for muons
|
88 |
|
|
|
89 |
|
|
|
90 |
loizides |
1.3 |
ClassDef(FakeRate, 1) // Fake rate class
|
91 |
loizides |
1.1 |
};
|
92 |
|
|
}
|
93 |
|
|
#endif
|