1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: FakeRate.h,v 1.1 2009/06/30 10:47:17 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 |
|
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 |
ClassDef(FakeRate, 1) // Charged particle class
|
91 |
};
|
92 |
}
|
93 |
#endif
|