ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/LeptonSelection/interface/IsolationSelection.h
Revision: 1.10
Committed: Mon May 14 17:27:29 2012 UTC (13 years ago) by khahn
Content type: text/plain
Branch: MAIN
Changes since 1.9: +18 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 khahn 1.4 #include "Electron.h"
2     #include "Muon.h"
3     #include "Vertex.h"
4     #include "PFCandidate.h"
5     #include "PFCandidateCol.h"
6     #include "PileupEnergyDensity.h"
7    
8     #include "MuonTools.h"
9     #include "ElectronTools.h"
10 khahn 1.1
11     #include "ParseArgs.h"
12     #include "SelectionStatus.h"
13 khahn 1.2 #include "SimpleLepton.h"
14 khahn 1.1
15 khahn 1.4 #define MUON_ISOMVA_CUT_BIN0 -0.615
16 khahn 1.5 #define MUON_ISOMVA_CUT_BIN1 0.235
17     #define MUON_ISOMVA_CUT_BIN2 -0.825
18     #define MUON_ISOMVA_CUT_BIN3 0.155
19     #define MUON_ISOMVA_CUT_BIN4 -0.965
20     #define MUON_ISOMVA_CUT_BIN5 -0.989
21 khahn 1.4
22 khahn 1.6 #define MUON_ISOMVA_FORPFID_CUT_BIN0 -0.5934
23     #define MUON_ISOMVA_FORPFID_CUT_BIN1 0.3374
24     #define MUON_ISOMVA_FORPFID_CUT_BIN2 -0.7666
25     #define MUON_ISOMVA_FORPFID_CUT_BIN3 0.4102
26     #define MUON_ISOMVA_FORPFID_CUT_BIN4 -0.989
27     #define MUON_ISOMVA_FORPFID_CUT_BIN5 -0.9946
28    
29 khahn 1.7 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN0 -0.5934
30     #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN1 0.3374
31     #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN2 -0.7666
32     #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN3 0.4102
33     #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN4 -0.989
34     #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN5 -0.9946
35    
36     #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN0 -0.5934
37     #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN1 0.3374
38     #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN2 -0.7666
39     #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN3 0.4102
40     #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN4 -0.989
41     #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN5 -0.9946
42    
43     #define ELECTRON_LOOSE_ISOMVA_CUT_BIN0 0.385
44     #define ELECTRON_LOOSE_ISOMVA_CUT_BIN1 -0.083
45     #define ELECTRON_LOOSE_ISOMVA_CUT_BIN2 -0.573
46     #define ELECTRON_LOOSE_ISOMVA_CUT_BIN3 0.413
47     #define ELECTRON_LOOSE_ISOMVA_CUT_BIN4 0.271
48     #define ELECTRON_LOOSE_ISOMVA_CUT_BIN5 0.135
49    
50     #define ELECTRON_TIGHT_ISOMVA_CUT_BIN0 0.533
51     #define ELECTRON_TIGHT_ISOMVA_CUT_BIN1 -0.237
52     #define ELECTRON_TIGHT_ISOMVA_CUT_BIN2 -0.573
53     #define ELECTRON_TIGHT_ISOMVA_CUT_BIN3 0.521
54     #define ELECTRON_TIGHT_ISOMVA_CUT_BIN4 0.531
55     #define ELECTRON_TIGHT_ISOMVA_CUT_BIN5 0.493
56    
57     #define ELECTRON_REFERENCE_PFISO_CUT 0.25
58     #define MUON_REFERENCE_PFISO_CUT 0.25
59 khahn 1.4
60     Float_t computePFMuonIso(const mithep::Muon *muon,
61     const mithep::Vertex & vtx,
62     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
63     const Double_t dRMax);
64    
65     Float_t computePFEleIso(const mithep::Electron *electron,
66     const mithep::Vertex & fVertex,
67     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
68     const Double_t dRMax);
69    
70     SelectionStatus electronIsoSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex &, const mithep::Array<mithep::PFCandidate> * fPFCandidateCol );
71     SelectionStatus muonIsoSelection(ControlFlags &, const mithep::Muon *, const mithep::Vertex &, const mithep::Array<mithep::PFCandidate> * fPFCandidateCol );
72 khahn 1.2 bool pairwiseIsoSelection( ControlFlags &, vector<SimpleLepton> &, float rho );
73 anlevin 1.3 bool noIso(ControlFlags &, vector<SimpleLepton> &, float rho);
74 khahn 1.4
75     void initMuonIsoMVA();
76     SelectionStatus muonIsoMVASelection(ControlFlags &ctrl,
77     const mithep::Muon * mu,
78     const mithep::Vertex & vtx,
79     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
80     const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
81     mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
82     vector<const mithep::Muon*> muonsToVeto,
83     vector<const mithep::Electron*> electronsToVeto);
84 khahn 1.10 //hacked version
85     SelectionStatus muonIsoMVASelection(ControlFlags &ctrl,
86     const mithep::Muon * mu,
87     const mithep::Vertex & vtx,
88     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
89     float rho,
90     mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
91     vector<const mithep::Muon*> muonsToVeto,
92     vector<const mithep::Electron*> electronsToVeto);
93 khahn 1.7 double muonPFIso04(ControlFlags &ctrl,
94     const mithep::Muon * mu,
95     const mithep::Vertex & vtx,
96     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
97     const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
98     mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
99     vector<const mithep::Muon*> muonsToVeto,
100     vector<const mithep::Electron*> electronsToVeto);
101 khahn 1.9 // hacked version
102     double muonPFIso04(ControlFlags &ctrl,
103     const mithep::Muon * mu,
104     const mithep::Vertex & vtx,
105     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
106     float rho, // the hack
107     mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
108     vector<const mithep::Muon*> muonsToVeto,
109     vector<const mithep::Electron*> electronsToVeto);
110     //
111 khahn 1.8 SelectionStatus muonReferenceIsoSelection(ControlFlags &ctrl,
112 khahn 1.7 const mithep::Muon * mu,
113     const mithep::Vertex & vtx,
114     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
115     const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
116     mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
117     vector<const mithep::Muon*> muonsToVeto,
118     vector<const mithep::Electron*> electronsToVeto);
119 khahn 1.9 // hacked version
120     SelectionStatus muonReferenceIsoSelection(ControlFlags &ctrl,
121     const mithep::Muon * mu,
122     const mithep::Vertex & vtx,
123     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
124     float,
125     mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
126     vector<const mithep::Muon*> muonsToVeto,
127     vector<const mithep::Electron*> electronsToVeto);
128 khahn 1.4
129     void initElectronIsoMVA();
130     SelectionStatus electronIsoMVASelection(ControlFlags &ctrl,
131     const mithep::Electron * ele,
132     const mithep::Vertex & vtx,
133     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
134     const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
135     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
136     vector<const mithep::Muon*> muonsToVeto,
137     vector<const mithep::Electron*> electronsToVeto);
138 khahn 1.10 //hacked version
139     SelectionStatus electronIsoMVASelection(ControlFlags &ctrl,
140     const mithep::Electron * ele,
141     const mithep::Vertex & vtx,
142     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
143     float rho,
144     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
145     vector<const mithep::Muon*> muonsToVeto,
146     vector<const mithep::Electron*> electronsToVeto);
147 khahn 1.7 float electronPFIso04(ControlFlags &ctrl,
148     const mithep::Electron * ele,
149     const mithep::Vertex & vtx,
150     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
151     const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
152     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
153     vector<const mithep::Muon*> muonsToVeto,
154     vector<const mithep::Electron*> electronsToVeto) ;
155 khahn 1.9 // hacked version
156     float electronPFIso04(ControlFlags &ctrl,
157     const mithep::Electron * ele,
158     const mithep::Vertex & vtx,
159     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
160     float rho, // the hack
161     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
162     vector<const mithep::Muon*> muonsToVeto,
163     vector<const mithep::Electron*> electronsToVeto) ;
164     //
165 khahn 1.8 SelectionStatus electronReferenceIsoSelection(ControlFlags &ctrl,
166 khahn 1.7 const mithep::Electron * ele,
167     const mithep::Vertex & vtx,
168     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
169     const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
170     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
171     vector<const mithep::Muon*> muonsToVeto,
172     vector<const mithep::Electron*> electronsToVeto);
173 khahn 1.9 // hacked version
174     SelectionStatus electronReferenceIsoSelection(ControlFlags &ctrl,
175     const mithep::Electron * ele,
176     const mithep::Vertex & vtx,
177     const mithep::Array<mithep::PFCandidate> * fPFCandidates,
178     float,
179     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
180     vector<const mithep::Muon*> muonsToVeto,
181     vector<const mithep::Electron*> electronsToVeto);