1 |
sixie |
1.1 |
// $Id: $
|
2 |
|
|
|
3 |
|
|
#include "MitAna/TreeMod/interface/ObjectCleaningMod.h"
|
4 |
|
|
#include <TH1D.h>
|
5 |
|
|
#include <TH2D.h>
|
6 |
|
|
#include "MitAna/DataTree/interface/Names.h"
|
7 |
|
|
#include "MitAna/DataCont/interface/ObjArray.h"
|
8 |
|
|
|
9 |
|
|
using namespace mithep;
|
10 |
|
|
|
11 |
|
|
ClassImp(mithep::ObjectCleaningMod)
|
12 |
|
|
|
13 |
|
|
//--------------------------------------------------------------------------------------------------
|
14 |
|
|
ObjectCleaningMod::ObjectCleaningMod(const char *name, const char *title) :
|
15 |
|
|
BaseMod(name,title),
|
16 |
|
|
fMCPartName(Names::gkMCPartBrn),
|
17 |
|
|
fTrackName(Names::gkTrackBrn),
|
18 |
|
|
fBarrelBasicClusterName(Names::gkBarrelBasicClusterBrn),
|
19 |
|
|
fBarrelSuperClusterName(Names::gkBarrelSuperClusterBrn),
|
20 |
|
|
fMuonName(Names::gkMuonBrn),
|
21 |
|
|
fElectronName(Names::gkElectronBrn),
|
22 |
|
|
fJetName(Names::gkCaloJetBrn),
|
23 |
|
|
fMetName(Names::gkCaloMetBrn),
|
24 |
|
|
fParticles(0),
|
25 |
|
|
fTracks(0),
|
26 |
|
|
fMuons(0),
|
27 |
|
|
fElectrons(0),
|
28 |
|
|
fGenPtHist(0),
|
29 |
|
|
fGenEtaHist(0),
|
30 |
|
|
fTrackPtHist(0),
|
31 |
|
|
fTrackThetaHist(0),
|
32 |
|
|
fAllMuonPtHist(0),
|
33 |
|
|
fAllMuonEtaHist(0),
|
34 |
|
|
fGoodMuonPtHist(0),
|
35 |
|
|
fGoodMuonEtaHist(0),
|
36 |
|
|
fAllElectronPtHist(0),
|
37 |
|
|
fAllElectronEtaHist(0),
|
38 |
|
|
fAllJetPtHist(0),
|
39 |
|
|
fAllJetEtaHist(0)
|
40 |
|
|
{
|
41 |
|
|
// Constructor.
|
42 |
|
|
}
|
43 |
|
|
|
44 |
|
|
//--------------------------------------------------------------------------------------------------
|
45 |
|
|
void ObjectCleaningMod::Begin()
|
46 |
|
|
{
|
47 |
|
|
// Run startup code on the client machine. For this module, we dont do
|
48 |
|
|
// anything here.
|
49 |
|
|
}
|
50 |
|
|
|
51 |
|
|
//--------------------------------------------------------------------------------------------------
|
52 |
|
|
void ObjectCleaningMod::Process()
|
53 |
|
|
{
|
54 |
|
|
// Process entries of the tree. For this module, we just load the branches and
|
55 |
|
|
//output debug info or not
|
56 |
|
|
bool printDebug = false;
|
57 |
|
|
bool debug = false;
|
58 |
|
|
|
59 |
|
|
fNEventsProcessed++;
|
60 |
|
|
|
61 |
|
|
if (fNEventsProcessed % 1000 == 0 || printDebug)
|
62 |
|
|
cerr << endl << "Process Event " << fNEventsProcessed << endl;
|
63 |
|
|
|
64 |
|
|
//Get Generator Level information for matching
|
65 |
|
|
ObjArray<MCParticle> GenLeptons;
|
66 |
|
|
LoadBranch(fMCPartName);
|
67 |
|
|
|
68 |
|
|
for (UInt_t i=0; i<fParticles->GetEntries(); ++i) {
|
69 |
|
|
MCParticle* p = fParticles->At(i);
|
70 |
|
|
if (p->IsGenerated() &&
|
71 |
|
|
(abs(p->PdgId()) == 11 || abs(p->PdgId()) == 13 || abs(p->PdgId()) == 15)
|
72 |
|
|
&& p->Status() == 3 //pick 3 because we want primary interaction leptons only
|
73 |
|
|
)
|
74 |
|
|
GenLeptons.Add(p);
|
75 |
|
|
}
|
76 |
|
|
|
77 |
|
|
if (printDebug) {
|
78 |
|
|
cerr << "Check Generator Leptons Finding" << endl;
|
79 |
|
|
for (UInt_t i=0; i<GenLeptons.GetEntries(); ++i) {
|
80 |
|
|
cout << i << " " << GenLeptons[i]->PdgId() << " " << GenLeptons[i]->Status()
|
81 |
|
|
<< " " << GenLeptons[i]->Pt() << " " << GenLeptons[i]->Eta() << " "
|
82 |
|
|
<< GenLeptons[i]->Phi() << endl;
|
83 |
|
|
}
|
84 |
|
|
}
|
85 |
|
|
|
86 |
|
|
//Load Tracking Information
|
87 |
|
|
LoadBranch(fTrackName);
|
88 |
|
|
for (UInt_t i=0; i<fTracks->GetEntries(); ++i) {
|
89 |
|
|
Track* p = fTracks->At(i);
|
90 |
|
|
fTrackPtHist->Fill(p->Pt());
|
91 |
|
|
fTrackThetaHist->Fill(p->Theta());
|
92 |
|
|
fTrackPhiHist->Fill(p->Phi());
|
93 |
|
|
}
|
94 |
|
|
|
95 |
|
|
//Get the Basic Clusters
|
96 |
|
|
LoadBranch(fBarrelBasicClusterName);
|
97 |
|
|
|
98 |
|
|
//Get the Super Clusters
|
99 |
|
|
LoadBranch(fBarrelSuperClusterName);
|
100 |
|
|
|
101 |
|
|
//Muons
|
102 |
|
|
ObjArray<Muon> *GoodMuons = new ObjArray<Muon>;
|
103 |
|
|
vector<bool> GoodMuonsIsFake;
|
104 |
|
|
LoadBranch(fMuonName);
|
105 |
|
|
for (UInt_t i=0; i<fMuons->GetEntries(); ++i) {
|
106 |
|
|
Muon *mu = fMuons->At(i);
|
107 |
|
|
fAllMuonPtHist->Fill(mu->Pt());
|
108 |
|
|
fAllMuonEtaHist->Fill(mu->Eta());
|
109 |
|
|
|
110 |
|
|
//do matching to gen particle to find if it's a fake
|
111 |
|
|
bool isFake = true;
|
112 |
|
|
bool isFromTau = false;
|
113 |
|
|
for (UInt_t j = 0; j<GenLeptons.GetEntries(); j++) {
|
114 |
|
|
double dphi = (abs(GenLeptons[j]->Phi() - mu->Phi()) > M_PI)
|
115 |
|
|
? abs(GenLeptons[j]->Phi() - mu->Phi()) - 2*M_PI : abs(GenLeptons[j]->Phi() - mu->Phi());
|
116 |
|
|
double deltaR = TMath::Sqrt(dphi*dphi +
|
117 |
|
|
abs(GenLeptons[j]->Eta() - mu->Eta())*
|
118 |
|
|
abs(GenLeptons[j]->Eta() - mu->Eta()));
|
119 |
|
|
if (deltaR < 0.15) {
|
120 |
|
|
if (abs(GenLeptons[j]->PdgId()) == 13) {
|
121 |
|
|
isFake = false;
|
122 |
|
|
if (printDebug)
|
123 |
|
|
cout << "Matched: "
|
124 |
|
|
<< mu->Pt() << " " << mu->Eta() << " " << mu->Phi() << endl
|
125 |
|
|
<< GenLeptons[j]->PdgId() << " " << GenLeptons[j]->Pt() << " "
|
126 |
|
|
<< GenLeptons[j]->Eta() << " " << GenLeptons[j]->Phi() << endl;
|
127 |
|
|
//debug = true;
|
128 |
|
|
}
|
129 |
|
|
if (abs(GenLeptons[j]->PdgId()) == 15) {
|
130 |
|
|
isFromTau = true;
|
131 |
|
|
}
|
132 |
|
|
}
|
133 |
|
|
}
|
134 |
|
|
|
135 |
|
|
//Fill Muon ID histograms
|
136 |
|
|
fAllMuonChi2->Fill(mu->Trk()->Chi2());
|
137 |
|
|
fAllMuonNHits->Fill(mu->Trk()->NHits());
|
138 |
|
|
fAllMuonBestTrackD0->Fill(abs(mu->BestTrk()->D0()));
|
139 |
|
|
fAllMuonIsoR03SumPt->Fill(mu->IsoR03SumPt());
|
140 |
|
|
fAllMuonIsoR03EmEt->Fill(mu->IsoR03EmEt());
|
141 |
|
|
fAllMuonIsoR03HadEt->Fill(mu->IsoR03HadEt());
|
142 |
|
|
fAllMuonIsoR03EmAndHadEt->Fill(mu->IsoR03EmEt() + mu->IsoR03HadEt());
|
143 |
|
|
fAllMuonIsoR03HoEt->Fill(mu->IsoR03HoEt());
|
144 |
|
|
fAllMuonIsoR03NTracks->Fill(mu->IsoR03NTracks());
|
145 |
|
|
fAllMuonIsoR03NJets->Fill(mu->IsoR03NJets());
|
146 |
|
|
fAllMuonIsoR05SumPt->Fill(mu->IsoR05SumPt());
|
147 |
|
|
fAllMuonIsoR05EmEt->Fill(mu->IsoR05EmEt());
|
148 |
|
|
fAllMuonIsoR05HadEt->Fill(mu->IsoR05HadEt());
|
149 |
|
|
fAllMuonIsoR05HoEt->Fill(mu->IsoR05HoEt());
|
150 |
|
|
fAllMuonIsoR05NTracks->Fill(mu->IsoR05NTracks());
|
151 |
|
|
fAllMuonIsoR05NJets->Fill(mu->IsoR05NJets());
|
152 |
|
|
fAllMuonEmEnergy->Fill(mu->EmEnergy());
|
153 |
|
|
fAllMuonHadEnergy->Fill(mu->HadEnergy());
|
154 |
|
|
fAllMuonHoEnergy->Fill(mu->HoEnergy());
|
155 |
|
|
fAllMuonEmS9Energy->Fill(mu->EmS9Energy());
|
156 |
|
|
fAllMuonHadS9Energy->Fill(mu->HadS9Energy());
|
157 |
|
|
fAllMuonHoS9Energy->Fill(mu->HoS9Energy());
|
158 |
|
|
if (!isFake) {
|
159 |
|
|
fRealMuonPtHist->Fill(mu->Pt());
|
160 |
|
|
fRealMuonEtaHist->Fill(mu->Eta());
|
161 |
|
|
fRealMuonChi2->Fill(mu->Trk()->Chi2());
|
162 |
|
|
fRealMuonNHits->Fill(mu->Trk()->NHits());
|
163 |
|
|
fRealMuonBestTrackD0->Fill(abs(mu->BestTrk()->D0()));
|
164 |
|
|
fRealMuonIsoR03SumPt->Fill(mu->IsoR03SumPt());
|
165 |
|
|
fRealMuonIsoR03EmEt->Fill(mu->IsoR03EmEt());
|
166 |
|
|
fRealMuonIsoR03HadEt->Fill(mu->IsoR03HadEt());
|
167 |
|
|
fRealMuonIsoR03EmAndHadEt->Fill(mu->IsoR03EmEt() + mu->IsoR03HadEt());
|
168 |
|
|
fRealMuonIsoR03HoEt->Fill(mu->IsoR03HoEt());
|
169 |
|
|
fRealMuonIsoR03NTracks->Fill(mu->IsoR03NTracks());
|
170 |
|
|
fRealMuonIsoR03NJets->Fill(mu->IsoR03NJets());
|
171 |
|
|
fRealMuonIsoR05SumPt->Fill(mu->IsoR05SumPt());
|
172 |
|
|
fRealMuonIsoR05EmEt->Fill(mu->IsoR05EmEt());
|
173 |
|
|
fRealMuonIsoR05HadEt->Fill(mu->IsoR05HadEt());
|
174 |
|
|
fRealMuonIsoR05HoEt->Fill(mu->IsoR05HoEt());
|
175 |
|
|
fRealMuonIsoR05NTracks->Fill(mu->IsoR05NTracks());
|
176 |
|
|
fRealMuonIsoR05NJets->Fill(mu->IsoR05NJets());
|
177 |
|
|
fRealMuonEmEnergy->Fill(mu->EmEnergy());
|
178 |
|
|
fRealMuonHadEnergy->Fill(mu->HadEnergy());
|
179 |
|
|
fRealMuonHoEnergy->Fill(mu->HoEnergy());
|
180 |
|
|
fRealMuonEmS9Energy->Fill(mu->EmS9Energy());
|
181 |
|
|
fRealMuonHadS9Energy->Fill(mu->HadS9Energy());
|
182 |
|
|
fRealMuonHoS9Energy->Fill(mu->HoS9Energy());
|
183 |
|
|
} else {
|
184 |
|
|
fFakeMuonPtHist->Fill(mu->Pt());
|
185 |
|
|
fFakeMuonEtaHist->Fill(mu->Eta());
|
186 |
|
|
fFakeMuonChi2->Fill(mu->Trk()->Chi2());
|
187 |
|
|
fFakeMuonNHits->Fill(mu->Trk()->NHits());
|
188 |
|
|
fFakeMuonBestTrackD0->Fill(abs(mu->BestTrk()->D0()));
|
189 |
|
|
fFakeMuonIsoR03SumPt->Fill(mu->IsoR03SumPt());
|
190 |
|
|
fFakeMuonIsoR03EmEt->Fill(mu->IsoR03EmEt());
|
191 |
|
|
fFakeMuonIsoR03HadEt->Fill(mu->IsoR03HadEt());
|
192 |
|
|
fFakeMuonIsoR03EmAndHadEt->Fill(mu->IsoR03EmEt() + mu->IsoR03HadEt());
|
193 |
|
|
fFakeMuonIsoR03HoEt->Fill(mu->IsoR03HoEt());
|
194 |
|
|
fFakeMuonIsoR03NTracks->Fill(mu->IsoR03NTracks());
|
195 |
|
|
fFakeMuonIsoR03NJets->Fill(mu->IsoR03NJets());
|
196 |
|
|
fFakeMuonIsoR05SumPt->Fill(mu->IsoR05SumPt());
|
197 |
|
|
fFakeMuonIsoR05EmEt->Fill(mu->IsoR05EmEt());
|
198 |
|
|
fFakeMuonIsoR05HadEt->Fill(mu->IsoR05HadEt());
|
199 |
|
|
fFakeMuonIsoR05HoEt->Fill(mu->IsoR05HoEt());
|
200 |
|
|
fFakeMuonIsoR05NTracks->Fill(mu->IsoR05NTracks());
|
201 |
|
|
fFakeMuonIsoR05NJets->Fill(mu->IsoR05NJets());
|
202 |
|
|
fFakeMuonEmEnergy->Fill(mu->EmEnergy());
|
203 |
|
|
fFakeMuonHadEnergy->Fill(mu->HadEnergy());
|
204 |
|
|
fFakeMuonHoEnergy->Fill(mu->HoEnergy());
|
205 |
|
|
fFakeMuonEmS9Energy->Fill(mu->EmS9Energy());
|
206 |
|
|
fFakeMuonHadS9Energy->Fill(mu->HadS9Energy());
|
207 |
|
|
fFakeMuonHoS9Energy->Fill(mu->HoS9Energy());
|
208 |
|
|
}
|
209 |
|
|
|
210 |
|
|
//Define the ID Cuts
|
211 |
|
|
const int nCuts = 3;
|
212 |
|
|
double cutValue[nCuts] = {0.1, 3.0, 3.0};
|
213 |
|
|
bool passCut[nCuts] = {false, false, false,};
|
214 |
|
|
|
215 |
|
|
double muonD0 = -0.05;
|
216 |
|
|
//if (mu->GlobalTrk() != NULL)
|
217 |
|
|
muonD0 = mu->BestTrk()->D0();
|
218 |
|
|
if(muonD0 < cutValue[0] //&& mu->GlobalTrk() != NULL
|
219 |
|
|
)
|
220 |
|
|
passCut[0] = true;
|
221 |
|
|
if(mu->IsoR03SumPt() < cutValue[1]) passCut[1] = true;
|
222 |
|
|
if(mu->IsoR03EmEt() +
|
223 |
|
|
mu->IsoR03HadEt() < cutValue[2]) passCut[2] = true;
|
224 |
|
|
|
225 |
|
|
// Final decision
|
226 |
|
|
bool allCuts = true;
|
227 |
|
|
for(int c=0; c<nCuts; c++) {
|
228 |
|
|
allCuts = allCuts & passCut[c];
|
229 |
|
|
}
|
230 |
|
|
|
231 |
|
|
//make muon ID selection histograms
|
232 |
|
|
fMuonSelection->Fill(-1);
|
233 |
|
|
if (!isFake)
|
234 |
|
|
fRealMuonSelection->Fill(-1);
|
235 |
|
|
else
|
236 |
|
|
fFakeMuonSelection->Fill(-1);
|
237 |
|
|
|
238 |
|
|
//Fill the rest of the muon selection histograms
|
239 |
|
|
for (int k=0;k<3;k++) {
|
240 |
|
|
bool pass = true;
|
241 |
|
|
for (int p=0;p<=k;p++)
|
242 |
|
|
pass = (pass && passCut[p]);
|
243 |
|
|
|
244 |
|
|
if (pass) {
|
245 |
|
|
fMuonSelection->Fill(k);
|
246 |
|
|
if (!isFake)
|
247 |
|
|
fRealMuonSelection->Fill(k);
|
248 |
|
|
else
|
249 |
|
|
fFakeMuonSelection->Fill(k);
|
250 |
|
|
}
|
251 |
|
|
}
|
252 |
|
|
|
253 |
|
|
//Fill histogram for the Good Muons
|
254 |
|
|
if ( allCuts
|
255 |
|
|
&& abs(mu->Eta()) < 2.5 //$$ mu->Pt() > 5.0
|
256 |
|
|
) {
|
257 |
|
|
fGoodMuonPtHist->Fill(mu->Pt());
|
258 |
|
|
fGoodMuonEtaHist->Fill(mu->Eta());
|
259 |
|
|
GoodMuons->Add(mu);
|
260 |
|
|
GoodMuonsIsFake.push_back(isFake);
|
261 |
|
|
}
|
262 |
|
|
}
|
263 |
|
|
|
264 |
|
|
|
265 |
|
|
//Get Electrons
|
266 |
|
|
LoadBranch(fElectronName);
|
267 |
|
|
|
268 |
|
|
//we have to use a vector first and then fill the ObjArray with the vector
|
269 |
|
|
//contents because ObJArray does not allow removal of duplicates.
|
270 |
|
|
vector<Electron*> GoodElectronsVector;
|
271 |
|
|
vector<bool> GoodElectronIsFake;
|
272 |
|
|
|
273 |
|
|
for (UInt_t i=0; i<fElectrons->GetEntries(); ++i) {
|
274 |
|
|
Electron *e = fElectrons->At(i);
|
275 |
|
|
|
276 |
|
|
fAllElectronPtHist->Fill(e->Pt());
|
277 |
|
|
fAllElectronEtaHist->Fill(e->Eta());
|
278 |
|
|
|
279 |
|
|
//do matching to gen particle to find if it's a fake
|
280 |
|
|
bool isFake = true;
|
281 |
|
|
bool isFromTau = false;
|
282 |
|
|
for (UInt_t j = 0; j<GenLeptons.GetEntries(); j++) {
|
283 |
|
|
double dphi = (abs(GenLeptons[j]->Phi() - e->Phi()) > M_PI) ?
|
284 |
|
|
abs(GenLeptons[j]->Phi() - e->Phi()) - 2*M_PI : abs(GenLeptons[j]->Phi() - e->Phi());
|
285 |
|
|
double deltaR = TMath::Sqrt(dphi*dphi +
|
286 |
|
|
abs(GenLeptons[j]->Eta() - e->Eta())*
|
287 |
|
|
abs(GenLeptons[j]->Eta() - e->Eta()));
|
288 |
|
|
if (deltaR < 0.15) {
|
289 |
|
|
if (abs(GenLeptons[j]->PdgId()) == 11) {
|
290 |
|
|
isFake = false;
|
291 |
|
|
if (printDebug)
|
292 |
|
|
cout << "Matched: "
|
293 |
|
|
<< e->Pt() << " " << e->Eta() << " " << e->Phi() << endl
|
294 |
|
|
<< GenLeptons[j]->PdgId() << " " << GenLeptons[j]->Pt()
|
295 |
|
|
<< " " << GenLeptons[j]->Eta() << " " << GenLeptons[j]->Phi() << endl;
|
296 |
|
|
//debug = true;
|
297 |
|
|
}
|
298 |
|
|
if (abs(GenLeptons[j]->PdgId()) == 15) {
|
299 |
|
|
isFromTau = true;
|
300 |
|
|
}
|
301 |
|
|
}
|
302 |
|
|
}
|
303 |
|
|
|
304 |
|
|
double electronepInv = fabs(1./e->SuperClusterE()- 1./e->E());
|
305 |
|
|
|
306 |
|
|
|
307 |
|
|
//Check Electron Iso calculation:
|
308 |
|
|
double computedEcalIso = e->ComputeEcalIsolation(0.3,0.0,fBarrelBasicClusters);
|
309 |
|
|
double computedTrackIso = e->ComputeTrackIsolation(0.2, 0.02,0.1,0.1,fTracks);
|
310 |
|
|
if (printDebug) {
|
311 |
|
|
cout << "Check Iso Calculation:" << endl;
|
312 |
|
|
cout << "e->ComputeTrackIso: " << computedTrackIso << endl;
|
313 |
|
|
cout << "e->TrackIso: " << e->TrackIsolation() << endl;
|
314 |
|
|
cout << "diff: " << computedTrackIso - e->TrackIsolation() << endl;
|
315 |
|
|
cout << "e->ComputeEcalIso: " << computedEcalIso << endl;
|
316 |
|
|
cout << "e->EcalIso: " << e->CaloIsolation() << endl;
|
317 |
|
|
cout << "diff: " << computedEcalIso - e->CaloIsolation() << endl;
|
318 |
|
|
}
|
319 |
|
|
|
320 |
|
|
//Fill electron ID histograms
|
321 |
|
|
fAllElectronESuperClOverP->Fill(e->ESuperClusterOverP());
|
322 |
|
|
fAllElectronESeedClOverPout->Fill(e->ESeedClusterOverPout());
|
323 |
|
|
fAllElectronDeltaEtaSuperClTrackAtVtx->Fill(abs(e->DeltaEtaSuperClusterTrackAtVtx()));
|
324 |
|
|
fAllElectronDeltaEtaSeedClTrackAtCalo->Fill(abs(e->DeltaEtaSeedClusterTrackAtCalo()));
|
325 |
|
|
fAllElectronDeltaPhiSuperClTrackAtVtx->Fill(abs(e->DeltaPhiSuperClusterTrackAtVtx()));
|
326 |
|
|
fAllElectronDeltaPhiSeedClTrackAtCalo->Fill(abs(e->DeltaPhiSeedClusterTrackAtCalo()));
|
327 |
|
|
fAllElectronEPInv->Fill(electronepInv);
|
328 |
|
|
fAllElectronHadronicOverEm->Fill(e->HadronicOverEm());
|
329 |
|
|
fAllElectronE33OverE55->Fill(e->E33()/e->E55());
|
330 |
|
|
fAllElectronIsEnergyScaleCorrected->Fill(e->IsEnergyScaleCorrected());
|
331 |
|
|
fAllElectronIsMomentumCorrected->Fill(e->IsMomentumCorrected());
|
332 |
|
|
fAllElectronNumberOfClusters->Fill(e->NumberOfClusters());
|
333 |
|
|
fAllElectronClassification->Fill(e->Classification());
|
334 |
|
|
fAllElectronE33->Fill(e->E33());
|
335 |
|
|
fAllElectronE55->Fill(e->E55());
|
336 |
|
|
fAllElectronCovEtaEta->Fill(e->CovEtaEta()*10000);
|
337 |
|
|
fAllElectronCovEtaPhi->Fill(abs(e->CovEtaPhi()*10000));
|
338 |
|
|
fAllElectronCovPhiPhi->Fill(e->CovPhiPhi()*1000);
|
339 |
|
|
fAllElectronCaloIso->Fill(e->CaloIsolation());
|
340 |
|
|
fAllElectronTrackIso->Fill(e->TrackIsolation());
|
341 |
|
|
fAllElectronComputedEcalIso->Fill(computedEcalIso);
|
342 |
|
|
fAllElectronComputedTrackIso->Fill(computedTrackIso);
|
343 |
|
|
|
344 |
|
|
if (!isFake) {
|
345 |
|
|
fRealElectronPtHist->Fill(e->Pt());
|
346 |
|
|
fRealElectronEtaHist->Fill(e->Eta());
|
347 |
|
|
fRealElectronESuperClOverP->Fill(e->ESuperClusterOverP());
|
348 |
|
|
fRealElectronESeedClOverPout->Fill(e->ESeedClusterOverPout());
|
349 |
|
|
fRealElectronDeltaEtaSuperClTrackAtVtx->Fill(abs(e->DeltaEtaSuperClusterTrackAtVtx()));
|
350 |
|
|
fRealElectronDeltaEtaSeedClTrackAtCalo->Fill(abs(e->DeltaEtaSeedClusterTrackAtCalo()));
|
351 |
|
|
fRealElectronDeltaPhiSuperClTrackAtVtx->Fill(abs(e->DeltaPhiSuperClusterTrackAtVtx()));
|
352 |
|
|
fRealElectronDeltaPhiSeedClTrackAtCalo->Fill(abs(e->DeltaPhiSeedClusterTrackAtCalo()));
|
353 |
|
|
fRealElectronEPInv->Fill(electronepInv);
|
354 |
|
|
fRealElectronHadronicOverEm->Fill(e->HadronicOverEm());
|
355 |
|
|
fRealElectronE33OverE55->Fill(e->E33()/e->E55());
|
356 |
|
|
fRealElectronIsEnergyScaleCorrected->Fill(e->IsEnergyScaleCorrected());
|
357 |
|
|
fRealElectronIsMomentumCorrected->Fill(e->IsMomentumCorrected());
|
358 |
|
|
fRealElectronNumberOfClusters->Fill(e->NumberOfClusters());
|
359 |
|
|
fRealElectronClassification->Fill(e->Classification());
|
360 |
|
|
fRealElectronE33->Fill(e->E33());
|
361 |
|
|
fRealElectronE55->Fill(e->E55());
|
362 |
|
|
fRealElectronCovEtaEta->Fill(e->CovEtaEta()*10000);
|
363 |
|
|
fRealElectronCovEtaPhi->Fill(abs(e->CovEtaPhi()*10000));
|
364 |
|
|
fRealElectronCovPhiPhi->Fill(e->CovPhiPhi()*1000);
|
365 |
|
|
fRealElectronCaloIso->Fill(e->CaloIsolation());
|
366 |
|
|
fRealElectronTrackIso->Fill(e->TrackIsolation());
|
367 |
|
|
fRealElectronComputedEcalIso->Fill(computedEcalIso);
|
368 |
|
|
fRealElectronComputedTrackIso->Fill(computedTrackIso);
|
369 |
|
|
} else {
|
370 |
|
|
fFakeElectronPtHist->Fill(e->Pt());
|
371 |
|
|
fFakeElectronEtaHist->Fill(e->Eta());
|
372 |
|
|
fFakeElectronESuperClOverP->Fill(e->ESuperClusterOverP());
|
373 |
|
|
fFakeElectronESeedClOverPout->Fill(e->ESeedClusterOverPout());
|
374 |
|
|
fFakeElectronDeltaEtaSuperClTrackAtVtx->Fill(abs(e->DeltaEtaSuperClusterTrackAtVtx()));
|
375 |
|
|
fFakeElectronDeltaEtaSeedClTrackAtCalo->Fill(abs(e->DeltaEtaSeedClusterTrackAtCalo()));
|
376 |
|
|
fFakeElectronDeltaPhiSuperClTrackAtVtx->Fill(abs(e->DeltaPhiSuperClusterTrackAtVtx()));
|
377 |
|
|
fFakeElectronDeltaPhiSeedClTrackAtCalo->Fill(abs(e->DeltaPhiSeedClusterTrackAtCalo()));
|
378 |
|
|
fFakeElectronEPInv->Fill(electronepInv);
|
379 |
|
|
fFakeElectronHadronicOverEm->Fill(e->HadronicOverEm());
|
380 |
|
|
fFakeElectronE33OverE55->Fill(e->E33()/e->E55());
|
381 |
|
|
fFakeElectronIsEnergyScaleCorrected->Fill(e->IsEnergyScaleCorrected());
|
382 |
|
|
fFakeElectronIsMomentumCorrected->Fill(e->IsMomentumCorrected());
|
383 |
|
|
fFakeElectronNumberOfClusters->Fill(e->NumberOfClusters());
|
384 |
|
|
fFakeElectronClassification->Fill(e->Classification());
|
385 |
|
|
fFakeElectronE33->Fill(e->E33());
|
386 |
|
|
fFakeElectronE55->Fill(e->E55());
|
387 |
|
|
fFakeElectronCovEtaEta->Fill(e->CovEtaEta()*10000);
|
388 |
|
|
fFakeElectronCovEtaPhi->Fill(abs(e->CovEtaPhi()*10000));
|
389 |
|
|
fFakeElectronCovPhiPhi->Fill(e->CovPhiPhi()*1000);
|
390 |
|
|
fFakeElectronCaloIso->Fill(e->CaloIsolation());
|
391 |
|
|
fFakeElectronTrackIso->Fill(e->TrackIsolation());
|
392 |
|
|
fFakeElectronComputedEcalIso->Fill(computedEcalIso);
|
393 |
|
|
fFakeElectronComputedTrackIso->Fill(computedTrackIso);
|
394 |
|
|
}
|
395 |
|
|
|
396 |
|
|
//cuts depend on electron classification
|
397 |
|
|
int cutClass = -1;
|
398 |
|
|
if (e->Classification() == 0) cutClass = 0;
|
399 |
|
|
else if(e->Classification() == 10) cutClass = 1;
|
400 |
|
|
else if(e->Classification() == 20) cutClass = 2;
|
401 |
|
|
else if(e->Classification() == 30) cutClass = 3;
|
402 |
|
|
else if(e->Classification() == 31) cutClass = 3;
|
403 |
|
|
else if(e->Classification() == 32) cutClass = 3;
|
404 |
|
|
else if(e->Classification() == 33) cutClass = 3;
|
405 |
|
|
else if(e->Classification() == 34) cutClass = 3;
|
406 |
|
|
else if(e->Classification() == 100) cutClass = 4;
|
407 |
|
|
else if(e->Classification() == 110) cutClass = 5;
|
408 |
|
|
else if(e->Classification() == 120) cutClass = 6;
|
409 |
|
|
else if(e->Classification() == 130) cutClass = 7;
|
410 |
|
|
else if(e->Classification() == 131) cutClass = 7;
|
411 |
|
|
else if(e->Classification() == 132) cutClass = 7;
|
412 |
|
|
else if(e->Classification() == 133) cutClass = 7;
|
413 |
|
|
else if(e->Classification() == 134) cutClass = 7;
|
414 |
|
|
else if(e->Classification() == 40) cutClass = 8;
|
415 |
|
|
else {
|
416 |
|
|
cout << "Error, electron.classification not defined: " << e->Classification() << endl;
|
417 |
|
|
}
|
418 |
|
|
|
419 |
|
|
fAllElectronCutClass->Fill(cutClass);
|
420 |
|
|
|
421 |
|
|
if (!isFake)
|
422 |
|
|
fRealElectronCutClass->Fill(cutClass);
|
423 |
|
|
else
|
424 |
|
|
fFakeElectronCutClass->Fill(cutClass);
|
425 |
|
|
|
426 |
|
|
//cerr << "3" << endl;
|
427 |
|
|
|
428 |
|
|
//values of cuts[classification]
|
429 |
|
|
double EoverPInMax[] = { 1.3, 1.2, 1.3, 999., 999., 999., 999., 999. }; // 0
|
430 |
|
|
double EoverPInMin[] = { 0.9, 0.9, 0.9, 0.6, 0.9, 0.9, 0.9, 0.7 }; // 1
|
431 |
|
|
double deltaEtaIn[] = { 0.004, 0.006, 0.005, 0.007, 0.007, 0.008, 0.007, 0.008 }; // 2
|
432 |
|
|
double deltaPhiIn[] = { 0.04, 0.07, 0.04, 0.08, 0.06, 0.07, 0.06, 0.07 }; // 3
|
433 |
|
|
double HoverE[] = { 0.06, 0.05, 0.06, 0.14, 0.1, 0.1, 0.1, 0.12 }; // 4
|
434 |
|
|
double E9overE25[] = { 0.7, 0.75, 0.8, 0., 0.85, 0.75, 0.8, 0. }; // 5
|
435 |
|
|
double EoverPOutMax[] = { 2.5, 999., 999., 999., 2., 999., 999., 999. }; // 6
|
436 |
|
|
double EoverPOutMin[] = { 0.6, 1.8, 1., 0.75, 0.6, 1.5, 1., 0.8 }; // 7
|
437 |
|
|
double deltaPhiOut[] = { 0.011, 999., 999., 999., 0.02, 999., 999., 999. }; // 8
|
438 |
|
|
double invEMinusInvP[] = { 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06 }; // 9
|
439 |
|
|
double sigmaEtaEtaMax[] = { 0.011, 0.011, 0.011, 0.011, 0.022, 0.022, 0.022, 0.3 }; // 10
|
440 |
|
|
double sigmaEtaEtaMin[] = { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0. }; // 11
|
441 |
|
|
double sigmaPhiPhiMax[] = { 0.015, 999., 999., 999., 0.02, 999., 999., 999. }; // 12
|
442 |
|
|
double sigmaPhiPhiMin[] = { 0.00, 0., 0., 0., 0., 0., 0., 0. }; // 13
|
443 |
|
|
|
444 |
|
|
const int nCuts = 16;
|
445 |
|
|
bool passCut[nCuts] = {false, false, false, false, false,
|
446 |
|
|
false, false, false, false, false,
|
447 |
|
|
false, false, false, false, false,
|
448 |
|
|
false};
|
449 |
|
|
|
450 |
|
|
if(e->ESuperClusterOverP() < EoverPInMax[cutClass]) passCut[0] = true;
|
451 |
|
|
if(e->ESuperClusterOverP() > EoverPInMin[cutClass]) passCut[1] = true;
|
452 |
|
|
if(fabs(e->DeltaEtaSuperClusterTrackAtVtx()) < deltaEtaIn[cutClass]) passCut[2] = true;
|
453 |
|
|
if(fabs(e->DeltaPhiSuperClusterTrackAtVtx()) < deltaPhiIn[cutClass]) passCut[3] = true;
|
454 |
|
|
if(e->HadronicOverEm() < HoverE[cutClass]) passCut[4] = true;
|
455 |
|
|
if(e->E33()/e->E55() > E9overE25[cutClass])
|
456 |
|
|
passCut[5] = true;
|
457 |
|
|
//comment out these two for now because this variable
|
458 |
|
|
//seems to be incorrect in CMSSW 2_0_8
|
459 |
|
|
//if(e->ESeedClusterOverPout() < EoverPOutMax[cutClass])
|
460 |
|
|
passCut[6] = true;
|
461 |
|
|
//if(e->ESeedClusterOverPout() > EoverPOutMin[cutClass])
|
462 |
|
|
passCut[7] = true;
|
463 |
|
|
if(fabs(e->DeltaPhiSeedClusterTrackAtCalo()) < deltaPhiOut[cutClass]) passCut[8] = true;
|
464 |
|
|
if(electronepInv < invEMinusInvP[cutClass]) passCut[9] = true;
|
465 |
|
|
if(e->CovEtaEta() < sigmaEtaEtaMax[cutClass]) passCut[10] = true;
|
466 |
|
|
if(e->CovEtaEta() > sigmaEtaEtaMin[cutClass]) passCut[11] = true;
|
467 |
|
|
if(e->CovPhiPhi() < sigmaPhiPhiMax[cutClass]) passCut[12] = true;
|
468 |
|
|
if(e->CovPhiPhi() > sigmaPhiPhiMin[cutClass]) passCut[13] = true;
|
469 |
|
|
if(e->TrackIsolation() < 5.0) passCut[14] = true;
|
470 |
|
|
if(e->CaloIsolation() < 5.0) passCut[15] = true;
|
471 |
|
|
|
472 |
|
|
// Final decision
|
473 |
|
|
bool allCuts = true;
|
474 |
|
|
for(int c=0; c<nCuts; c++) {
|
475 |
|
|
allCuts = allCuts & passCut[c];
|
476 |
|
|
}
|
477 |
|
|
|
478 |
|
|
//make electron ID selection histogram
|
479 |
|
|
fElectronSelection->Fill(-1);
|
480 |
|
|
if (!isFake)
|
481 |
|
|
fRealElectronSelection->Fill(-1);
|
482 |
|
|
else
|
483 |
|
|
fFakeElectronSelection->Fill(-1);
|
484 |
|
|
|
485 |
|
|
for (int k=0;k<16;k++) {
|
486 |
|
|
bool pass = true;
|
487 |
|
|
for (int p=0;p<=k;p++)
|
488 |
|
|
pass = (pass && passCut[p]);
|
489 |
|
|
if (pass) {
|
490 |
|
|
fElectronSelection->Fill(k);
|
491 |
|
|
if (!isFake)
|
492 |
|
|
fRealElectronSelection->Fill(k);
|
493 |
|
|
else
|
494 |
|
|
fFakeElectronSelection->Fill(k);
|
495 |
|
|
}
|
496 |
|
|
}
|
497 |
|
|
|
498 |
|
|
//Check whether it overlaps with a good muon.
|
499 |
|
|
bool isMuonOverlap = false;
|
500 |
|
|
for (UInt_t j=0; j<GoodMuons->GetEntries();j++) {
|
501 |
|
|
double dphi = (abs(GoodMuons->At(j)->Phi() - e->Phi()) > M_PI) ?
|
502 |
|
|
abs(GoodMuons->At(j)->Phi() - e->Phi()) - 2*M_PI : abs(GoodMuons->At(j)->Phi() - e->Phi());
|
503 |
|
|
double deltaR = TMath::Sqrt(dphi*dphi +
|
504 |
|
|
abs(GoodMuons->At(j)->Eta() - e->Eta())*
|
505 |
|
|
abs(GoodMuons->At(j)->Eta() - e->Eta()));
|
506 |
|
|
if (deltaR < 0.1) {
|
507 |
|
|
isMuonOverlap = true;
|
508 |
|
|
break;
|
509 |
|
|
}
|
510 |
|
|
}
|
511 |
|
|
|
512 |
|
|
//Check whether it overlaps with another electron candidate
|
513 |
|
|
bool isElectronOverlap = false;
|
514 |
|
|
for (UInt_t j=0; j<GoodElectronsVector.size(); j++) {
|
515 |
|
|
double dphi = (abs(GoodElectronsVector[j]->Phi() - e->Phi()) > M_PI)
|
516 |
|
|
? abs(GoodElectronsVector[j]->Phi() - e->Phi()) - 2*M_PI :
|
517 |
|
|
abs(GoodElectronsVector[j]->Phi() - e->Phi());
|
518 |
|
|
double deltaR = TMath::Sqrt(dphi*dphi +
|
519 |
|
|
abs(GoodElectronsVector[j]->Eta() - e->Eta())*
|
520 |
|
|
abs(GoodElectronsVector[j]->Eta() - e->Eta()));
|
521 |
|
|
if (deltaR < 0.1) {
|
522 |
|
|
isElectronOverlap = true;
|
523 |
|
|
|
524 |
|
|
//if there's an overlap and the new one being considered has E/P closer to 1.0
|
525 |
|
|
//then replace the overlapping one with this new one because it's better.
|
526 |
|
|
//Once we get super cluster info, we should make sure the superclusters match
|
527 |
|
|
//before declaring it is a duplicate
|
528 |
|
|
//can have one SC matched to many tracks. or one track matched to many SC's.
|
529 |
|
|
//we should cover all the cases. see SUSYAnalyzer...
|
530 |
|
|
if (abs(GoodElectronsVector[j]->ESuperClusterOverP() - 1) >
|
531 |
|
|
abs(e->ESuperClusterOverP() - 1)) {
|
532 |
|
|
GoodElectronsVector[j] = e;
|
533 |
|
|
}
|
534 |
|
|
break;
|
535 |
|
|
}
|
536 |
|
|
}
|
537 |
|
|
|
538 |
|
|
//These are Good Electrons
|
539 |
|
|
if (allCuts
|
540 |
|
|
&& abs(e->Eta()) < 2.5 //&& e->Pt() > 5.0
|
541 |
|
|
&& !isMuonOverlap && !isElectronOverlap
|
542 |
|
|
) {
|
543 |
|
|
fGoodElectronPtHist->Fill(e->Pt());
|
544 |
|
|
fGoodElectronEtaHist->Fill(e->Eta());
|
545 |
|
|
fGoodElectronClassification->Fill(e->Classification());
|
546 |
|
|
|
547 |
|
|
GoodElectronsVector.push_back(fElectrons->At(i));
|
548 |
|
|
GoodElectronIsFake.push_back(isFake);
|
549 |
|
|
debug = isFake && !isFromTau;
|
550 |
|
|
}
|
551 |
|
|
}
|
552 |
|
|
|
553 |
|
|
//fill the electron ObjArray with the contents of the vector
|
554 |
|
|
ObjArray<Electron> *GoodElectrons = new ObjArray<Electron>;
|
555 |
|
|
for (UInt_t j=0; j<GoodElectronsVector.size(); j++)
|
556 |
|
|
GoodElectrons->Add(GoodElectronsVector[j]);
|
557 |
|
|
|
558 |
|
|
|
559 |
|
|
//Get Jet info
|
560 |
|
|
ObjArray<Jet> GoodJets;
|
561 |
|
|
ObjArray<Jet> *GoodCentralJets = new ObjArray<Jet>;
|
562 |
|
|
ObjArray<Jet> *GoodForwardJets = new ObjArray<Jet>;
|
563 |
|
|
LoadBranch(fJetName);
|
564 |
|
|
for (UInt_t i=0; i<fJets->GetEntries(); ++i) {
|
565 |
|
|
Jet *jet = fJets->At(i);
|
566 |
|
|
//cout << "Jet " << i << endl;
|
567 |
|
|
//cout << jet->Pt() << " " << jet->Eta() << endl;
|
568 |
|
|
|
569 |
|
|
bool isElectronOverlap = false;
|
570 |
|
|
bool isFromGenLepton = false;
|
571 |
|
|
|
572 |
|
|
//Check for overlap with an electron
|
573 |
|
|
for (UInt_t j=0; j<GoodElectrons->GetEntries(); j++) {
|
574 |
|
|
double dphi = (abs(GoodElectrons->At(j)->Phi() - jet->Phi()) > M_PI)
|
575 |
|
|
? abs(GoodElectrons->At(j)->Phi() - jet->Phi()) - 2*M_PI :
|
576 |
|
|
abs(GoodElectrons->At(j)->Phi() - jet->Phi());
|
577 |
|
|
double deltaR = TMath::Sqrt(dphi*dphi +
|
578 |
|
|
abs(GoodElectrons->At(j)->Eta() - jet->Eta())*
|
579 |
|
|
abs(GoodElectrons->At(j)->Eta() - jet->Eta()));
|
580 |
|
|
if (deltaR < 0.1) {
|
581 |
|
|
isElectronOverlap = true;
|
582 |
|
|
break;
|
583 |
|
|
}
|
584 |
|
|
}
|
585 |
|
|
if (isElectronOverlap) continue; //skip this jet if it was an overlap
|
586 |
|
|
|
587 |
|
|
|
588 |
|
|
fAllJetPtHist->Fill(jet->Pt());
|
589 |
|
|
fAllJetEtaHist->Fill(jet->Eta());
|
590 |
|
|
fAllJetPtEta2DHist->Fill(jet->Pt(), jet->Eta());
|
591 |
|
|
|
592 |
|
|
//check whether a jet is actually from a lepton
|
593 |
|
|
for (UInt_t j=0; j<GenLeptons.GetEntries(); j++) {
|
594 |
|
|
double dphi = (abs(GenLeptons[j]->Phi() - jet->Phi()) > M_PI)
|
595 |
|
|
? abs(GenLeptons[j]->Phi() - jet->Phi()) - 2*M_PI : abs(GenLeptons[j]->Phi() - jet->Phi());
|
596 |
|
|
double deltaR = TMath::Sqrt(dphi*dphi +
|
597 |
|
|
abs(GenLeptons[j]->Eta() - jet->Eta())*
|
598 |
|
|
abs(GenLeptons[j]->Eta() - jet->Eta()));
|
599 |
|
|
if (deltaR < 0.1) {
|
600 |
|
|
isFromGenLepton = true;
|
601 |
|
|
//debug = true;
|
602 |
|
|
if (abs(GenLeptons[j]->PdgId()) == 15) {
|
603 |
|
|
// isFromTau = true;
|
604 |
|
|
}
|
605 |
|
|
if (printDebug) cout << "Fake Jet Found" << endl;
|
606 |
|
|
break;
|
607 |
|
|
}
|
608 |
|
|
}
|
609 |
|
|
|
610 |
|
|
const int nCuts = 4;
|
611 |
|
|
double cutValue[nCuts] = {1.0, 20., 2.5, 0.2};
|
612 |
|
|
bool passCut[nCuts] = {false, false, false, false};
|
613 |
|
|
|
614 |
|
|
passCut[0] = (!isElectronOverlap); //This is supposed to check e/ph overlap
|
615 |
|
|
if(jet->Et() // /jet.scaleFactor()
|
616 |
|
|
> cutValue[1]) passCut[1] = true;
|
617 |
|
|
if(fabs(jet->Eta()) < cutValue[2]) passCut[2] = true;
|
618 |
|
|
|
619 |
|
|
//Si: We don't make this cut for now, since we don't have alpha saved
|
620 |
|
|
//if(//jet.alpha() > cutValue[3] ||
|
621 |
|
|
// jet.Pt()/jet.scaleFactor() > 20.)
|
622 |
|
|
passCut[3] = true;
|
623 |
|
|
|
624 |
|
|
// Final decision
|
625 |
|
|
bool passAllCentralJetCuts = true;
|
626 |
|
|
bool passAllForwardJetCuts = true;
|
627 |
|
|
for(int i=0; i<nCuts; i++) {
|
628 |
|
|
passAllCentralJetCuts = passAllCentralJetCuts & passCut[i];
|
629 |
|
|
passAllForwardJetCuts = passAllForwardJetCuts & ((i==2)?(!passCut[i]):passCut[i]);
|
630 |
|
|
}
|
631 |
|
|
|
632 |
|
|
//make electron ID selection histogram
|
633 |
|
|
fCentralJetSelection->Fill(-1);
|
634 |
|
|
if (!isFromGenLepton)
|
635 |
|
|
fRealJetSelection->Fill(-1);
|
636 |
|
|
else
|
637 |
|
|
fFakeJetSelection->Fill(-1);
|
638 |
|
|
|
639 |
|
|
for (int k=0;k<nCuts;k++) {
|
640 |
|
|
bool pass = true;
|
641 |
|
|
for (int p=0;p<=k;p++)
|
642 |
|
|
pass = (pass && passCut[p]);
|
643 |
|
|
|
644 |
|
|
if (pass) {
|
645 |
|
|
fCentralJetSelection->Fill(k);
|
646 |
|
|
if (!isFromGenLepton)
|
647 |
|
|
fRealJetSelection->Fill(k);
|
648 |
|
|
else
|
649 |
|
|
fFakeJetSelection->Fill(k);
|
650 |
|
|
}
|
651 |
|
|
}
|
652 |
|
|
|
653 |
|
|
|
654 |
|
|
//Fill All Jet Histograms
|
655 |
|
|
fAllJetMaxEInEmTowers->Fill(jet->MaxEInEmTowers());
|
656 |
|
|
fAllJetMaxEInHadTowers->Fill(jet->MaxEInHadTowers());
|
657 |
|
|
fAllJetEnergyFractionH->Fill(jet->EnergyFractionH());
|
658 |
|
|
fAllJetEnergyFractionEm->Fill(jet->EnergyFractionEm());
|
659 |
|
|
fAllJetHadEnergyInHB->Fill(jet->HadEnergyInHB());
|
660 |
|
|
fAllJetHadEnergyInHO->Fill(jet->HadEnergyInHO());
|
661 |
|
|
fAllJetHadEnergyInHE->Fill(jet->HadEnergyInHE());
|
662 |
|
|
fAllJetHadEnergyInHF->Fill(jet->HadEnergyInHF());
|
663 |
|
|
fAllJetEmEnergyInEB->Fill(jet->EmEnergyInEB());
|
664 |
|
|
fAllJetEmEnergyInEE->Fill(jet->EmEnergyInEE());
|
665 |
|
|
fAllJetEmEnergyInHF->Fill(jet->EmEnergyInHF());
|
666 |
|
|
fAllJetTowersArea->Fill(jet->TowersArea());
|
667 |
|
|
fAllJetN->Fill(jet->N());
|
668 |
|
|
fAllJetN60->Fill(jet->N60());
|
669 |
|
|
fAllJetN90->Fill(jet->N90());
|
670 |
|
|
//For Fake Jets
|
671 |
|
|
if (isFromGenLepton) {
|
672 |
|
|
fFakeJetPtHist->Fill(jet->Pt());
|
673 |
|
|
fFakeJetEtaHist->Fill(jet->Eta());
|
674 |
|
|
fFakeJetPtEta2DHist->Fill(jet->Pt(), jet->Eta());
|
675 |
|
|
fAllJetIsFake->Fill(1);
|
676 |
|
|
fFakeJetMaxEInEmTowers->Fill(jet->MaxEInEmTowers());
|
677 |
|
|
fFakeJetMaxEInHadTowers->Fill(jet->MaxEInHadTowers());
|
678 |
|
|
fFakeJetEnergyFractionH->Fill(jet->EnergyFractionH());
|
679 |
|
|
fFakeJetEnergyFractionEm->Fill(jet->EnergyFractionEm());
|
680 |
|
|
fFakeJetHadEnergyInHB->Fill(jet->HadEnergyInHB());
|
681 |
|
|
fFakeJetHadEnergyInHO->Fill(jet->HadEnergyInHO());
|
682 |
|
|
fFakeJetHadEnergyInHE->Fill(jet->HadEnergyInHE());
|
683 |
|
|
fFakeJetHadEnergyInHF->Fill(jet->HadEnergyInHF());
|
684 |
|
|
fFakeJetEmEnergyInEB->Fill(jet->EmEnergyInEB());
|
685 |
|
|
fFakeJetEmEnergyInEE->Fill(jet->EmEnergyInEE());
|
686 |
|
|
fFakeJetEmEnergyInHF->Fill(jet->EmEnergyInHF());
|
687 |
|
|
fFakeJetTowersArea->Fill(jet->TowersArea());
|
688 |
|
|
fFakeJetN->Fill(jet->N());
|
689 |
|
|
fFakeJetN60->Fill(jet->N60());
|
690 |
|
|
fFakeJetN90->Fill(jet->N90());
|
691 |
|
|
} else { //real Jet
|
692 |
|
|
fRealJetPtHist->Fill(jet->Pt());
|
693 |
|
|
fRealJetEtaHist->Fill(jet->Eta());
|
694 |
|
|
fRealJetPtEta2DHist->Fill(jet->Pt(), jet->Eta());
|
695 |
|
|
fAllJetIsFake->Fill(0);
|
696 |
|
|
fRealJetMaxEInEmTowers->Fill(jet->MaxEInEmTowers());
|
697 |
|
|
fRealJetMaxEInHadTowers->Fill(jet->MaxEInHadTowers());
|
698 |
|
|
fRealJetEnergyFractionH->Fill(jet->EnergyFractionH());
|
699 |
|
|
fRealJetEnergyFractionEm->Fill(jet->EnergyFractionEm());
|
700 |
|
|
fRealJetHadEnergyInHB->Fill(jet->HadEnergyInHB());
|
701 |
|
|
fRealJetHadEnergyInHO->Fill(jet->HadEnergyInHO());
|
702 |
|
|
fRealJetHadEnergyInHE->Fill(jet->HadEnergyInHE());
|
703 |
|
|
fRealJetHadEnergyInHF->Fill(jet->HadEnergyInHF());
|
704 |
|
|
fRealJetEmEnergyInEB->Fill(jet->EmEnergyInEB());
|
705 |
|
|
fRealJetEmEnergyInEE->Fill(jet->EmEnergyInEE());
|
706 |
|
|
fRealJetEmEnergyInHF->Fill(jet->EmEnergyInHF());
|
707 |
|
|
fRealJetTowersArea->Fill(jet->TowersArea());
|
708 |
|
|
fRealJetN->Fill(jet->N());
|
709 |
|
|
fRealJetN60->Fill(jet->N60());
|
710 |
|
|
fRealJetN90->Fill(jet->N90());
|
711 |
|
|
}
|
712 |
|
|
|
713 |
|
|
|
714 |
|
|
//Save Good Jets
|
715 |
|
|
if (passAllCentralJetCuts) {
|
716 |
|
|
//GoodJets.push_back(jet);
|
717 |
|
|
GoodCentralJets->Add(jet);
|
718 |
|
|
|
719 |
|
|
fGoodCentralJetPtHist->Fill(jet->Pt());
|
720 |
|
|
fGoodCentralJetEtaHist->Fill(jet->Eta());
|
721 |
|
|
fGoodCentralJetPtEta2DHist->Fill(jet->Pt(), jet->Eta());
|
722 |
|
|
//debug = isFromGenLepton;
|
723 |
|
|
|
724 |
|
|
fGoodCentralJetMaxEInEmTowers->Fill(jet->MaxEInEmTowers());
|
725 |
|
|
fGoodCentralJetMaxEInHadTowers->Fill(jet->MaxEInHadTowers());
|
726 |
|
|
fGoodCentralJetEnergyFractionH->Fill(jet->EnergyFractionH());
|
727 |
|
|
fGoodCentralJetEnergyFractionEm->Fill(jet->EnergyFractionEm());
|
728 |
|
|
fGoodCentralJetHadEnergyInHB->Fill(jet->HadEnergyInHB());
|
729 |
|
|
fGoodCentralJetHadEnergyInHO->Fill(jet->HadEnergyInHO());
|
730 |
|
|
fGoodCentralJetHadEnergyInHE->Fill(jet->HadEnergyInHE());
|
731 |
|
|
fGoodCentralJetHadEnergyInHF->Fill(jet->HadEnergyInHF());
|
732 |
|
|
fGoodCentralJetEmEnergyInEB->Fill(jet->EmEnergyInEB());
|
733 |
|
|
fGoodCentralJetEmEnergyInEE->Fill(jet->EmEnergyInEE());
|
734 |
|
|
fGoodCentralJetEmEnergyInHF->Fill(jet->EmEnergyInHF());
|
735 |
|
|
fGoodCentralJetTowersArea->Fill(jet->TowersArea());
|
736 |
|
|
fGoodCentralJetN->Fill(jet->N());
|
737 |
|
|
fGoodCentralJetN60->Fill(jet->N60());
|
738 |
|
|
fGoodCentralJetN90->Fill(jet->N90());
|
739 |
|
|
}
|
740 |
|
|
|
741 |
|
|
if(passAllForwardJetCuts)
|
742 |
|
|
GoodForwardJets->Add(jet);
|
743 |
|
|
|
744 |
|
|
} //for all jets
|
745 |
|
|
|
746 |
|
|
//we should sort the jets in Pt
|
747 |
|
|
//We don't sort them for now because ObjArray can't do it yet
|
748 |
|
|
// for(UInt_t i=0; i < GoodCentralJets->GetEntries(); i++)
|
749 |
|
|
// for(UInt_t j=i+1; j < GoodCentralJets->GetEntries(); j++)
|
750 |
|
|
// if(GoodCentralJets[i]->Et() < GoodCentralJets[j]->Et()) {
|
751 |
|
|
// //swap i and j
|
752 |
|
|
// Jet* tempjet = GoodCentralJets[i];
|
753 |
|
|
// GoodCentralJets[i] = GoodCentralJets[j];
|
754 |
|
|
// GoodCentralJets[j] = tempjet;
|
755 |
|
|
// }
|
756 |
|
|
//check
|
757 |
|
|
|
758 |
|
|
if (printDebug) {
|
759 |
|
|
cout << "Check Jet Sort\n";
|
760 |
|
|
for(UInt_t i=0; i<GoodCentralJets->GetEntries(); i++)
|
761 |
|
|
cout << GoodCentralJets->At(i)->Et() << " " << GoodCentralJets->At(i)->Eta() << " "
|
762 |
|
|
<< GoodCentralJets->At(i)->Phi() << endl;
|
763 |
|
|
}
|
764 |
|
|
|
765 |
|
|
//Get MET
|
766 |
|
|
LoadBranch(fMetName);
|
767 |
|
|
|
768 |
|
|
Met *met = fMet->At(0); //define the met
|
769 |
|
|
fMetRawPtHist->Fill(met->Pt());
|
770 |
|
|
fMetRawPhiHist->Fill(met->Phi());
|
771 |
|
|
|
772 |
|
|
if (debug && printDebug) {
|
773 |
|
|
cout << "Correct MET for muons" << endl;
|
774 |
|
|
cout << "Original MET: " << met->Px() << " " << met->Py() << endl;
|
775 |
|
|
}
|
776 |
|
|
|
777 |
|
|
double met_px = met->Px();
|
778 |
|
|
double met_py = met->Py();
|
779 |
|
|
for (UInt_t j=0; j < GoodMuons->GetEntries() ; j++) {
|
780 |
|
|
if (debug && printDebug) cout << "Muon " << j << " " << GoodMuons->At(j)->Px() << " "
|
781 |
|
|
<<GoodMuons->At(j)->Py() << endl;
|
782 |
|
|
met_px = met_px - GoodMuons->At(j)->Px();
|
783 |
|
|
met_py = met_py - GoodMuons->At(j)->Py();
|
784 |
|
|
}
|
785 |
|
|
if (debug && printDebug) cout << "Final MET: " << met_px << " " << met_py << endl;
|
786 |
|
|
|
787 |
|
|
Met *muonCorrectedMet = new Met (met_px, met_py);
|
788 |
|
|
fMetMuonCorrectedPtHist->Fill(muonCorrectedMet->Pt());
|
789 |
|
|
fMetMuonCorrectedPhiHist->Fill(muonCorrectedMet->Phi());
|
790 |
|
|
|
791 |
|
|
//Save Objects for Other Modules to use
|
792 |
|
|
AddObjThisEvt(GoodElectrons, "GoodElectrons");
|
793 |
|
|
AddObjThisEvt(GoodMuons, "GoodMuons");
|
794 |
|
|
AddObjThisEvt(GoodCentralJets, "GoodCentralJets");
|
795 |
|
|
AddObjThisEvt(GoodForwardJets, "GoodForwardJets");
|
796 |
|
|
AddObjThisEvt(muonCorrectedMet, "muonCorrectedMet");
|
797 |
|
|
|
798 |
|
|
//Final Summary Debug Output
|
799 |
|
|
if (
|
800 |
|
|
printDebug &&
|
801 |
|
|
debug )
|
802 |
|
|
|
803 |
|
|
{
|
804 |
|
|
cout << "Event Dump: " << fNEventsProcessed << endl;
|
805 |
|
|
|
806 |
|
|
//print out event content to text
|
807 |
|
|
cout << "Electrons" << endl;
|
808 |
|
|
for (UInt_t i = 0; i < GoodElectrons->GetEntries(); i++) {
|
809 |
|
|
cout << i << " " << GoodElectrons->At(i)->Pt() << " " << GoodElectrons->At(i)->Eta()
|
810 |
|
|
<< " " << GoodElectrons->At(i)->Phi() << " "
|
811 |
|
|
<< GoodElectrons->At(i)->ESuperClusterOverP() << endl;
|
812 |
|
|
}
|
813 |
|
|
|
814 |
|
|
cout << "Muons" << endl;
|
815 |
|
|
for (UInt_t i = 0; i < GoodMuons->GetEntries(); i++) {
|
816 |
|
|
cout << i << " " << GoodMuons->At(i)->Pt() << " " << GoodMuons->At(i)->Eta()
|
817 |
|
|
<< " " << GoodMuons->At(i)->Phi() << endl;
|
818 |
|
|
}
|
819 |
|
|
|
820 |
|
|
cout << "Central Jets" << endl;
|
821 |
|
|
for (UInt_t i = 0; i < GoodCentralJets->GetEntries(); i++) {
|
822 |
|
|
cout << i << " " << GoodCentralJets->At(i)->Pt() << " "
|
823 |
|
|
<< GoodCentralJets->At(i)->Eta() << " " << GoodCentralJets->At(i)->Phi() << endl;
|
824 |
|
|
}
|
825 |
|
|
|
826 |
|
|
cout << "CorrectedMET" << endl;
|
827 |
|
|
cout << muonCorrectedMet->Pt() << " " << muonCorrectedMet->Eta() << " "
|
828 |
|
|
<< muonCorrectedMet->Phi() << endl;
|
829 |
|
|
|
830 |
|
|
|
831 |
|
|
//print out Generator BLock
|
832 |
|
|
LoadBranch(fMCPartName);
|
833 |
|
|
if (debug) cout << "Generator Block" << endl;
|
834 |
|
|
for (UInt_t i=0; i<fParticles->GetEntries(); ++i) {
|
835 |
|
|
MCParticle* p = fParticles->At(i);
|
836 |
|
|
if (debug)
|
837 |
|
|
cout << i << " " << p->PdgId() << " " << p->Status() << " " << p->Pt()
|
838 |
|
|
<< " " << p->Eta() << " " << p->Phi() << endl;
|
839 |
|
|
}
|
840 |
|
|
|
841 |
|
|
}
|
842 |
|
|
}
|
843 |
|
|
|
844 |
|
|
|
845 |
|
|
//--------------------------------------------------------------------------------------------------
|
846 |
|
|
void ObjectCleaningMod::SlaveBegin()
|
847 |
|
|
{
|
848 |
|
|
// Run startup code on the computer (slave) doing the actual analysis. Here,
|
849 |
|
|
// we typically initialize histograms and other analysis objects and request
|
850 |
|
|
// branches. For this module, we request a branch of the MitTree.
|
851 |
|
|
|
852 |
|
|
ReqBranch(fMCPartName, fParticles);
|
853 |
|
|
ReqBranch(fTrackName, fTracks);
|
854 |
|
|
ReqBranch(fBarrelBasicClusterName, fBarrelBasicClusters);
|
855 |
|
|
ReqBranch(fBarrelSuperClusterName, fBarrelSuperClusters);
|
856 |
|
|
ReqBranch(fMuonName, fMuons);
|
857 |
|
|
ReqBranch(fElectronName, fElectrons);
|
858 |
|
|
ReqBranch(fJetName, fJets);
|
859 |
|
|
ReqBranch(fMetName, fMet);
|
860 |
|
|
|
861 |
|
|
fGenPtHist = new TH1D("hGenPtHist",";p_{t};#",100,0.,25.);
|
862 |
|
|
fGenEtaHist = new TH1D("hGenEtaHist",";#eta;#",160,-8.,8.);
|
863 |
|
|
fTrackPtHist = new TH1D("hTrackPtHist",";p_{t};#",100,0.,25.);
|
864 |
|
|
fTrackThetaHist = new TH1D("hTrackThetaHist",";#theta;#",100,-5.0,5.0);
|
865 |
|
|
fTrackPhiHist = new TH1D("hTrackPhiHist",";p_{t};#",100,-3.5,3.5);
|
866 |
|
|
AddOutput(fTrackPhiHist);
|
867 |
|
|
AddOutput(fGenPtHist);
|
868 |
|
|
AddOutput(fGenEtaHist);
|
869 |
|
|
AddOutput(fTrackPtHist);
|
870 |
|
|
AddOutput(fTrackThetaHist);
|
871 |
|
|
|
872 |
|
|
|
873 |
|
|
//Muon Plots
|
874 |
|
|
fAllMuonPtHist = new TH1D("hAllMuonPtHist",";p_{t};#",25,0.,200.);
|
875 |
|
|
fAllMuonEtaHist = new TH1D("hAllMuonEtaHist",";#eta;#",21,-5.,5.);
|
876 |
|
|
fAllMuonChi2 = new TH1D("hAllMuonChi2",";Chi2;#",51,0,50);
|
877 |
|
|
fAllMuonNHits = new TH1D("hAllMuonNHits",";NHits;#",71,0,70);
|
878 |
|
|
fAllMuonBestTrackD0 = new TH1D("hAllMuonBestTrackD0",";BestTrackD0;#",100,0,0.1);
|
879 |
|
|
fAllMuonIsoR03SumPt = new TH1D("hAllMuonIsoR03SumPt",";IsoR03SumPt;#",100,0,10);
|
880 |
|
|
fAllMuonIsoR03EmEt = new TH1D("hAllMuonIsoR03EmEt", ";IsoR03EmEt;#",100,0,10);
|
881 |
|
|
fAllMuonIsoR03HadEt = new TH1D("hAllMuonIsoR03HadEt", ";IsoR03HadEt;#",100,0,10);
|
882 |
|
|
fAllMuonIsoR03EmAndHadEt = new TH1D("hAllMuonIsoR03EmAndHadEt",
|
883 |
|
|
";IsoR03EmAndHadEt;#",100,0,10);
|
884 |
|
|
fAllMuonIsoR03HoEt = new TH1D("hAllMuonIsoR03HoEt", ";IsoR03HoEt;#",20,0,10);
|
885 |
|
|
fAllMuonIsoR03NTracks = new TH1D("hAllMuonIsoR03NTracks", ";IsoR03NTracks;#",50,0,50);
|
886 |
|
|
fAllMuonIsoR03NJets = new TH1D("hAllMuonIsoR03NJets", ";IsoR03NJets;#",10,0,10);
|
887 |
|
|
fAllMuonIsoR05SumPt = new TH1D("hAllMuonIsoR05SumPt", ";IsoR05SumPt;#",20,0,10);
|
888 |
|
|
fAllMuonIsoR05EmEt = new TH1D("hAllMuonIsoR05EmEt", ";IsoR05EmEt;#",20,0,10);
|
889 |
|
|
fAllMuonIsoR05HadEt = new TH1D("hAllMuonIsoR05HadEt", ";IsoR05HadEt;#",20,0,10);
|
890 |
|
|
fAllMuonIsoR05HoEt = new TH1D("hAllMuonIsoR05HoEt", ";IsoR05HoEt;#",20,0,10);
|
891 |
|
|
fAllMuonIsoR05NTracks = new TH1D("hAllMuonIsoR05NTracks",";IsoR05NTracks;#",50,0,50);
|
892 |
|
|
fAllMuonIsoR05NJets = new TH1D("hAllMuonIsoR05NJets", ";IsoR05NJets;#",10,0,10);
|
893 |
|
|
fAllMuonEmEnergy = new TH1D("hAllMuonEmEnergy",";EmEnergy;#",50,0,10);
|
894 |
|
|
fAllMuonHadEnergy = new TH1D("hAllMuonHadEnergy",";HadEnergy;#",60,0,30);
|
895 |
|
|
fAllMuonHoEnergy = new TH1D("hAllMuonHoEnergy",";HoEnergy;#",50,0,10);
|
896 |
|
|
fAllMuonEmS9Energy = new TH1D("hAllMuonEmS9Energy",";EmS9Energy;#",50,0,10);
|
897 |
|
|
fAllMuonHadS9Energy = new TH1D("hAllMuonHadS9Energy",";HadS9Energy;#",60,0,30);
|
898 |
|
|
fAllMuonHoS9Energy = new TH1D("hAllMuonHoS9Energy",";HoS9Energy;#",50,0,10);
|
899 |
|
|
fRealMuonPtHist = new TH1D("hRealMuonPtHist",";p_{t};#",25,0.,200.);
|
900 |
|
|
fRealMuonEtaHist = new TH1D("hRealMuonEtaHist",";#eta;#",21,-5.,5.);
|
901 |
|
|
fRealMuonChi2 = new TH1D("hRealMuonChi2",";Chi2;#",51,0,50);
|
902 |
|
|
fRealMuonNHits = new TH1D("hRealMuonNHits",";NHits;#",71,0,70);
|
903 |
|
|
fRealMuonBestTrackD0 = new TH1D("hRealMuonBestTrackD0",";BestTrackD0;#",100,0,0.1);
|
904 |
|
|
fRealMuonIsoR03SumPt = new TH1D("hRealMuonIsoR03SumPt",";IsoR03SumPt;#",100,0,10);
|
905 |
|
|
fRealMuonIsoR03EmEt = new TH1D("hRealMuonIsoR03EmEt",";IsoR03EmEt;#",100,0,10);
|
906 |
|
|
fRealMuonIsoR03HadEt = new TH1D("hRealMuonIsoR03HadEt",";IsoR03HadEt;#",100,0,10);
|
907 |
|
|
fRealMuonIsoR03EmAndHadEt = new TH1D("hRealMuonIsoR03EmAndHadEt",
|
908 |
|
|
";IsoR03EmAndHadEt;#",100,0,10);
|
909 |
|
|
fRealMuonIsoR03HoEt = new TH1D("hRealMuonIsoR03HoEt",";IsoR03HoEt;#",20,0,10);
|
910 |
|
|
fRealMuonIsoR03NTracks = new TH1D("hRealMuonIsoR03NTracks",";IsoR03NTracks;#",50,0,50);
|
911 |
|
|
fRealMuonIsoR03NJets = new TH1D("hRealMuonIsoR03NJets", ";IsoR03NJets;#",10,0,10);
|
912 |
|
|
fRealMuonIsoR05SumPt = new TH1D("hRealMuonIsoR05SumPt", ";IsoR05SumPt;#",20,0,10);
|
913 |
|
|
fRealMuonIsoR05EmEt = new TH1D("hRealMuonIsoR05EmEt", ";IsoR05EmEt;#",20,0,10);
|
914 |
|
|
fRealMuonIsoR05HadEt = new TH1D("hRealMuonIsoR05HadEt", ";IsoR05HadEt;#",20,0,10);
|
915 |
|
|
fRealMuonIsoR05HoEt = new TH1D("hRealMuonIsoR05HoEt", ";IsoR05HoEt;#",20,0,10);
|
916 |
|
|
fRealMuonIsoR05NTracks = new TH1D("hRealMuonIsoR05NTracks",";IsoR05NTracks;#",50,0,50);
|
917 |
|
|
fRealMuonIsoR05NJets = new TH1D("hRealMuonIsoR05NJets",";IsoR05NJets;#",10,0,10);
|
918 |
|
|
fRealMuonEmEnergy = new TH1D("hRealMuonEmEnergy",";EmEnergy;#",50,0,10);
|
919 |
|
|
fRealMuonHadEnergy = new TH1D("hRealMuonHadEnergy",";HadEnergy;#",60,0,30);
|
920 |
|
|
fRealMuonHoEnergy = new TH1D("hRealMuonHoEnergy",";HoEnergy;#",50,0,10);
|
921 |
|
|
fRealMuonEmS9Energy = new TH1D("hRealMuonEmS9Energy",";EmS9Energy;#",50,0,10);
|
922 |
|
|
fRealMuonHadS9Energy = new TH1D("hRealMuonHadS9Energy",";HadS9Energy;#",60,0,30);
|
923 |
|
|
fRealMuonHoS9Energy = new TH1D("hRealMuonHoS9Energy",";HoS9Energy;#",50,0,10);
|
924 |
|
|
fFakeMuonPtHist = new TH1D("hFakeMuonPtHist",";p_{t};#",25,0.,200.);
|
925 |
|
|
fFakeMuonEtaHist = new TH1D("hFakeMuonEtaHist",";#eta;#",21,-5.,5.);
|
926 |
|
|
fFakeMuonChi2 = new TH1D("hFakeMuonChi2",";Chi2;#",51,0,50);
|
927 |
|
|
fFakeMuonNHits = new TH1D("hFakeMuonNHits", ";NHits;#",71,0,70);
|
928 |
|
|
fFakeMuonBestTrackD0 = new TH1D("hFakeMuonBestTrackD0",";BestTrackD0;#",100,0,0.1);
|
929 |
|
|
fFakeMuonIsoR03SumPt = new TH1D("hFakeMuonIsoR03SumPt",";IsoR03SumPt;#",100,0,10);
|
930 |
|
|
fFakeMuonIsoR03EmEt = new TH1D("hFakeMuonIsoR03EmEt",";IsoR03EmEt;#",100,0,10);
|
931 |
|
|
fFakeMuonIsoR03HadEt = new TH1D("hFakeMuonIsoR03HadEt",";IsoR03HadEt;#",100,0,10);
|
932 |
|
|
fFakeMuonIsoR03EmAndHadEt = new TH1D("hFakeMuonIsoR03EmAndHadEt",
|
933 |
|
|
";IsoR03EmAndHadEt;#",100,0,10);
|
934 |
|
|
fFakeMuonIsoR03HoEt = new TH1D("hFakeMuonIsoR03HoEt",";IsoR03HoEt;#",20,0,10);
|
935 |
|
|
fFakeMuonIsoR03NTracks = new TH1D("hFakeMuonIsoR03NTracks",";IsoR03NTracks;#",50,0,50);
|
936 |
|
|
fFakeMuonIsoR03NJets = new TH1D("hFakeMuonIsoR03NJets",";IsoR03NJets;#",10,0,10);
|
937 |
|
|
fFakeMuonIsoR05SumPt = new TH1D("hFakeMuonIsoR05SumPt",";IsoR05SumPt;#",20,0,10);
|
938 |
|
|
fFakeMuonIsoR05EmEt = new TH1D("hFakeMuonIsoR05EmEt",";IsoR05EmEt;#",20,0,10);
|
939 |
|
|
fFakeMuonIsoR05HadEt = new TH1D("hFakeMuonIsoR05HadEt",";IsoR05HadEt;#",20,0,10);
|
940 |
|
|
fFakeMuonIsoR05HoEt = new TH1D("hFakeMuonIsoR05HoEt",";IsoR05HoEt;#",20,0,10);
|
941 |
|
|
fFakeMuonIsoR05NTracks = new TH1D("hFakeMuonIsoR05NTracks",";IsoR05NTracks;#",50,0,50);
|
942 |
|
|
fFakeMuonIsoR05NJets = new TH1D("hFakeMuonIsoR05NJets",";IsoR05NJets;#",10,0,10);
|
943 |
|
|
fFakeMuonEmEnergy = new TH1D("hFakeMuonEmEnergy",";EmEnergy;#",50,0,10);
|
944 |
|
|
fFakeMuonHadEnergy = new TH1D("hFakeMuonHadEnergy",";HadEnergy;#",60,0,30);
|
945 |
|
|
fFakeMuonHoEnergy = new TH1D("hFakeMuonHoEnergy",";HoEnergy;#",50,0,10);
|
946 |
|
|
fFakeMuonEmS9Energy = new TH1D("hFakeMuonEmS9Energy",";EmS9Energy;#",50,0,10);
|
947 |
|
|
fFakeMuonHadS9Energy = new TH1D("hFakeMuonHadS9Energy",";HadS9Energy;#",60,0,30);
|
948 |
|
|
fFakeMuonHoS9Energy = new TH1D("hFakeMuonHoS9Energy",";HoS9Energy;#",50,0,10);
|
949 |
|
|
fGoodMuonPtHist = new TH1D("hGoodMuonPtHist",";p_{t};#",25,0.,200.);
|
950 |
|
|
fGoodMuonEtaHist = new TH1D("hGoodMuonEtaHist",";#eta;#",21,-5.,5.);
|
951 |
|
|
fMuonSelection = new TH1D("hMuonSelection", ";MuonSelection;#",4,-1.5,2.5 ) ;
|
952 |
|
|
fRealMuonSelection = new TH1D("hRealMuonSelection",
|
953 |
|
|
";RealMuonSelection;#",4,-1.5,2.5 ) ;
|
954 |
|
|
fFakeMuonSelection = new TH1D("hFakeMuonSelection",
|
955 |
|
|
";FakeMuonSelection;#",4,-1.5,2.5 ) ;
|
956 |
|
|
AddOutput(fAllMuonPtHist);
|
957 |
|
|
AddOutput(fAllMuonEtaHist);
|
958 |
|
|
AddOutput(fAllMuonChi2);
|
959 |
|
|
AddOutput(fAllMuonNHits);
|
960 |
|
|
AddOutput(fAllMuonBestTrackD0);
|
961 |
|
|
AddOutput(fAllMuonIsoR03SumPt);
|
962 |
|
|
AddOutput(fAllMuonIsoR03EmEt);
|
963 |
|
|
AddOutput(fAllMuonIsoR03HadEt);
|
964 |
|
|
AddOutput(fAllMuonIsoR03EmAndHadEt);
|
965 |
|
|
AddOutput(fAllMuonIsoR03HoEt);
|
966 |
|
|
AddOutput(fAllMuonIsoR03NTracks);
|
967 |
|
|
AddOutput(fAllMuonIsoR03NJets);
|
968 |
|
|
AddOutput(fAllMuonIsoR05SumPt);
|
969 |
|
|
AddOutput(fAllMuonIsoR05EmEt);
|
970 |
|
|
AddOutput(fAllMuonIsoR05HadEt);
|
971 |
|
|
AddOutput(fAllMuonIsoR05HoEt);
|
972 |
|
|
AddOutput(fAllMuonIsoR05NTracks);
|
973 |
|
|
AddOutput(fAllMuonIsoR05NJets);
|
974 |
|
|
AddOutput(fAllMuonEmEnergy);
|
975 |
|
|
AddOutput(fAllMuonHadEnergy);
|
976 |
|
|
AddOutput(fAllMuonHoEnergy);
|
977 |
|
|
AddOutput(fAllMuonEmS9Energy);
|
978 |
|
|
AddOutput(fAllMuonHadS9Energy);
|
979 |
|
|
AddOutput(fAllMuonHoS9Energy);
|
980 |
|
|
AddOutput(fRealMuonPtHist);
|
981 |
|
|
AddOutput(fRealMuonEtaHist);
|
982 |
|
|
AddOutput(fRealMuonChi2);
|
983 |
|
|
AddOutput(fRealMuonNHits);
|
984 |
|
|
AddOutput(fRealMuonBestTrackD0);
|
985 |
|
|
AddOutput(fRealMuonIsoR03SumPt);
|
986 |
|
|
AddOutput(fRealMuonIsoR03EmEt);
|
987 |
|
|
AddOutput(fRealMuonIsoR03HadEt);
|
988 |
|
|
AddOutput(fRealMuonIsoR03EmAndHadEt);
|
989 |
|
|
AddOutput(fRealMuonIsoR03HoEt);
|
990 |
|
|
AddOutput(fRealMuonIsoR03NTracks);
|
991 |
|
|
AddOutput(fRealMuonIsoR03NJets);
|
992 |
|
|
AddOutput(fRealMuonIsoR05SumPt);
|
993 |
|
|
AddOutput(fRealMuonIsoR05EmEt);
|
994 |
|
|
AddOutput(fRealMuonIsoR05HadEt);
|
995 |
|
|
AddOutput(fRealMuonIsoR05HoEt);
|
996 |
|
|
AddOutput(fRealMuonIsoR05NTracks);
|
997 |
|
|
AddOutput(fRealMuonIsoR05NJets);
|
998 |
|
|
AddOutput(fRealMuonEmEnergy);
|
999 |
|
|
AddOutput(fRealMuonHadEnergy);
|
1000 |
|
|
AddOutput(fRealMuonHoEnergy);
|
1001 |
|
|
AddOutput(fRealMuonEmS9Energy);
|
1002 |
|
|
AddOutput(fRealMuonHadS9Energy);
|
1003 |
|
|
AddOutput(fRealMuonHoS9Energy);
|
1004 |
|
|
AddOutput(fFakeMuonPtHist);
|
1005 |
|
|
AddOutput(fFakeMuonEtaHist);
|
1006 |
|
|
AddOutput(fFakeMuonChi2);
|
1007 |
|
|
AddOutput(fFakeMuonNHits);
|
1008 |
|
|
AddOutput(fFakeMuonBestTrackD0);
|
1009 |
|
|
AddOutput(fFakeMuonIsoR03SumPt);
|
1010 |
|
|
AddOutput(fFakeMuonIsoR03EmEt);
|
1011 |
|
|
AddOutput(fFakeMuonIsoR03HadEt);
|
1012 |
|
|
AddOutput(fFakeMuonIsoR03EmAndHadEt);
|
1013 |
|
|
AddOutput(fFakeMuonIsoR03HoEt);
|
1014 |
|
|
AddOutput(fFakeMuonIsoR03NTracks);
|
1015 |
|
|
AddOutput(fFakeMuonIsoR03NJets);
|
1016 |
|
|
AddOutput(fFakeMuonIsoR05SumPt);
|
1017 |
|
|
AddOutput(fFakeMuonIsoR05EmEt);
|
1018 |
|
|
AddOutput(fFakeMuonIsoR05HadEt);
|
1019 |
|
|
AddOutput(fFakeMuonIsoR05HoEt);
|
1020 |
|
|
AddOutput(fFakeMuonIsoR05NTracks);
|
1021 |
|
|
AddOutput(fFakeMuonIsoR05NJets);
|
1022 |
|
|
AddOutput(fFakeMuonEmEnergy);
|
1023 |
|
|
AddOutput(fFakeMuonHadEnergy);
|
1024 |
|
|
AddOutput(fFakeMuonHoEnergy);
|
1025 |
|
|
AddOutput(fFakeMuonEmS9Energy);
|
1026 |
|
|
AddOutput(fFakeMuonHadS9Energy);
|
1027 |
|
|
AddOutput(fFakeMuonHoS9Energy);
|
1028 |
|
|
AddOutput(fGoodMuonPtHist);
|
1029 |
|
|
AddOutput(fGoodMuonEtaHist);
|
1030 |
|
|
AddOutput(fMuonSelection);
|
1031 |
|
|
AddOutput(fRealMuonSelection);
|
1032 |
|
|
AddOutput(fFakeMuonSelection);
|
1033 |
|
|
|
1034 |
|
|
//Electron Plots
|
1035 |
|
|
fAllElectronPtHist = new TH1D("hAllElectronPtHist",";p_{t};#",100,0.,200.);
|
1036 |
|
|
fAllElectronEtaHist = new TH1D("hAllElectronEtaHist",";#eta;#",80,-2.,2.);
|
1037 |
|
|
fAllElectronESuperClOverP = new TH1D("hAllElectronESuperClOverP",
|
1038 |
|
|
";ESuperClOverP;#",100,0,5.0 ) ;
|
1039 |
|
|
fAllElectronESeedClOverPout = new TH1D("hAllElectronESeedClOverPout",
|
1040 |
|
|
";ESeedClOverPout;#",90,0,3.0 ) ;
|
1041 |
|
|
fAllElectronDeltaEtaSuperClTrackAtVtx = new TH1D("hAllElectronDeltaEtaSuperClTrackAtVtx",
|
1042 |
|
|
";DeltaEtaSuperClTrackAtVtx;#",200,0,0.02 ) ;
|
1043 |
|
|
fAllElectronDeltaEtaSeedClTrackAtCalo = new TH1D("hAllElectronDeltaEtaSeedClTrackAtCalo",
|
1044 |
|
|
";DeltaEtaSeedClTrackAtCalo;#",200,0,0.04 ) ;
|
1045 |
|
|
fAllElectronDeltaPhiSuperClTrackAtVtx = new TH1D("hAllElectronDeltaPhiSuperClTrackAtVtx",
|
1046 |
|
|
";DeltaPhiSuperClTrackAtVtx;#",200,0,-.1 ) ;
|
1047 |
|
|
fAllElectronDeltaPhiSeedClTrackAtCalo = new TH1D("hAllElectronDeltaPhiSeedClTrackAtCalo",
|
1048 |
|
|
";DeltaPhiSeedClTrackAtCalo;#",200,0,0.4 ) ;
|
1049 |
|
|
fAllElectronEPInv = new TH1D("hAllElectronEPInv",
|
1050 |
|
|
";AllElectronEPInv;#",100,0,0.1);
|
1051 |
|
|
fAllElectronCutClass = new TH1D("hAllElectronCutClass",
|
1052 |
|
|
";AllElectronCutClass;#",10,-0.5,9.5);
|
1053 |
|
|
fAllElectronHadronicOverEm = new TH1D("hAllElectronHadronicOverEm",
|
1054 |
|
|
";HadronicOverEm;#",150,-0.00001,0.14999 ) ;
|
1055 |
|
|
fAllElectronE33OverE55 = new TH1D("hAllElectronE33OverE55",
|
1056 |
|
|
";AllElectronE33OverE55;#",110,0,1.1);
|
1057 |
|
|
fAllElectronIsEnergyScaleCorrected = new TH1D("hAllElectronIsEnergyScaleCorrected",
|
1058 |
|
|
";IsEnergyScaleCorrected;#",3,-1,1 ) ;
|
1059 |
|
|
fAllElectronIsMomentumCorrected = new TH1D("hAllElectronIsMomentumCorrected",
|
1060 |
|
|
";IsMomentumCorrected;#",3,-1,1 ) ;
|
1061 |
|
|
fAllElectronNumberOfClusters = new TH1D("hAllElectronNumberOfClusters",
|
1062 |
|
|
";NumberOfClusters;#",11,0,10 ) ;
|
1063 |
|
|
fAllElectronClassification = new TH1D("hAllElectronClassification",
|
1064 |
|
|
";Classification;#",51,0,50 ) ;
|
1065 |
|
|
fAllElectronE33 = new TH1D("hAllElectronE33",";E33;#",50,0,200 ) ;
|
1066 |
|
|
fAllElectronE55 = new TH1D("hAllElectronE55",";E55;#",50,0,200 ) ;
|
1067 |
|
|
fAllElectronCovEtaEta = new TH1D("hAllElectronCovEtaEta",
|
1068 |
|
|
";CovEtaEta;#",100,0,1.0 ) ;
|
1069 |
|
|
fAllElectronCovEtaPhi = new TH1D("hAllElectronCovEtaPhi",
|
1070 |
|
|
";CovEtaPhi;#",100,0,1.0 ) ;
|
1071 |
|
|
fAllElectronCovPhiPhi = new TH1D("hAllElectronCovPhiPhi",
|
1072 |
|
|
";CovPhiPhi;#",100,0,1.0 ) ;
|
1073 |
|
|
fAllElectronLat = new TH1D("hAllElectronLat",";Lat;#",20,0,10 ) ;
|
1074 |
|
|
fAllElectronZernike20 = new TH1D("hAllElectronZernike20",
|
1075 |
|
|
";Zernike20;#",20,0,10 ) ;
|
1076 |
|
|
fAllElectronZernike42 = new TH1D("hAllElectronZernike42",
|
1077 |
|
|
";Zernike42;#",20,0,10 ) ;
|
1078 |
|
|
fAllElectronCaloIso = new TH1D("hAllElectronCaloIso",
|
1079 |
|
|
";CaloIso;#",100,0,10 ) ;
|
1080 |
|
|
fAllElectronTrackIso = new TH1D("hAllElectronTrackIso",
|
1081 |
|
|
";TrackIso;#",100,0,10 ) ;
|
1082 |
|
|
fAllElectronComputedEcalIso = new TH1D("hAllElectronComputedEcalIso",
|
1083 |
|
|
";ComputedEcalIso;#",100,0,10 ) ;
|
1084 |
|
|
fAllElectronComputedTrackIso = new TH1D("hAllElectronComputedTrackIso",
|
1085 |
|
|
";ComputedTrackIso;#",100,0,10 ) ;
|
1086 |
|
|
fRealElectronPtHist = new TH1D("hRealElectronPtHist",";p_{t};#",100,0.,200.);
|
1087 |
|
|
|
1088 |
|
|
fRealElectronEtaHist = new TH1D("hRealElectronEtaHist",";#eta;#",80,-2.,2.);
|
1089 |
|
|
fRealElectronESuperClOverP = new TH1D("hRealElectronESuperClOverP",
|
1090 |
|
|
";ESuperClOverP;#",100,0,5.0 ) ;
|
1091 |
|
|
fRealElectronESeedClOverPout = new TH1D("hRealElectronESeedClOverPout",
|
1092 |
|
|
";ESeedClOverPout;#",90,0,3.0 ) ;
|
1093 |
|
|
|
1094 |
|
|
fRealElectronDeltaEtaSuperClTrackAtVtx = new TH1D("hRealElectronDeltaEtaSuperClTrackAtVtx",
|
1095 |
|
|
";DeltaEtaSuperClTrackAtVtx;#",200,0,0.02 ) ;
|
1096 |
|
|
fRealElectronDeltaEtaSeedClTrackAtCalo = new TH1D("hRealElectronDeltaEtaSeedClTrackAtCalo",
|
1097 |
|
|
";DeltaEtaSeedClTrackAtCalo;#",200,0,0.04 ) ;
|
1098 |
|
|
fRealElectronDeltaPhiSuperClTrackAtVtx = new TH1D("hRealElectronDeltaPhiSuperClTrackAtVtx",
|
1099 |
|
|
";DeltaPhiSuperClTrackAtVtx;#",200,0,-.1 ) ;
|
1100 |
|
|
fRealElectronDeltaPhiSeedClTrackAtCalo = new TH1D("hRealElectronDeltaPhiSeedClTrackAtCalo",
|
1101 |
|
|
";DeltaPhiSeedClTrackAtCalo;#",200,0,0.4 ) ;
|
1102 |
|
|
|
1103 |
|
|
fRealElectronEPInv = new TH1D("hRealElectronEPInv",
|
1104 |
|
|
";RealElectronEPInv;#",100,0,0.1);
|
1105 |
|
|
fRealElectronCutClass = new TH1D("hRealElectronCutClass",
|
1106 |
|
|
";RealElectronCutClass;#",10,-0.5,9.5);
|
1107 |
|
|
fRealElectronHadronicOverEm = new TH1D("hRealElectronHadronicOverEm",
|
1108 |
|
|
";HadronicOverEm;#",150,-0.00001,0.14999 ) ;
|
1109 |
|
|
fRealElectronE33OverE55 = new TH1D("hRealElectronE33OverE55",
|
1110 |
|
|
";RealElectronE33OverE55;#",110,0,1.1);
|
1111 |
|
|
fRealElectronIsEnergyScaleCorrected = new TH1D("hRealElectronIsEnergyScaleCorrected",
|
1112 |
|
|
";IsEnergyScaleCorrected;#",3,-1,1 ) ;
|
1113 |
|
|
fRealElectronIsMomentumCorrected = new TH1D("hRealElectronIsMomentumCorrected",
|
1114 |
|
|
";IsMomentumCorrected;#",3,-1,1 ) ;
|
1115 |
|
|
fRealElectronNumberOfClusters = new TH1D("hRealElectronNumberOfClusters",
|
1116 |
|
|
";NumberOfClusters;#",11,0,10 ) ;
|
1117 |
|
|
fRealElectronClassification = new TH1D("hRealElectronClassification",
|
1118 |
|
|
";Classification;#",51,0,50 ) ;
|
1119 |
|
|
fRealElectronE33 = new TH1D("hRealElectronE33",";E33;#",50,0,200 ) ;
|
1120 |
|
|
fRealElectronE55 = new TH1D("hRealElectronE55",";E55;#",50,0,200 ) ;
|
1121 |
|
|
fRealElectronCovEtaEta = new TH1D("hRealElectronCovEtaEta",
|
1122 |
|
|
";CovEtaEta;#",100,0,1.0 ) ;
|
1123 |
|
|
fRealElectronCovEtaPhi = new TH1D("hRealElectronCovEtaPhi",
|
1124 |
|
|
";CovEtaPhi;#",100,0,1.0 ) ;
|
1125 |
|
|
fRealElectronCovPhiPhi = new TH1D("hRealElectronCovPhiPhi",
|
1126 |
|
|
";CovPhiPhi;#",100,0,1.0 ) ;
|
1127 |
|
|
fRealElectronLat = new TH1D("hRealElectronLat",";Lat;#",20,0,10 ) ;
|
1128 |
|
|
fRealElectronZernike20 = new TH1D("hRealElectronZernike20",
|
1129 |
|
|
";Zernike20;#",20,0,10 ) ;
|
1130 |
|
|
fRealElectronZernike42 = new TH1D("hRealElectronZernike42",
|
1131 |
|
|
";Zernike42;#",20,0,10 ) ;
|
1132 |
|
|
fRealElectronCaloIso = new TH1D("hRealElectronCaloIso",
|
1133 |
|
|
";CaloIso;#",100,0,10 ) ;
|
1134 |
|
|
fRealElectronTrackIso = new TH1D("hRealElectronTrackIso",
|
1135 |
|
|
";TrackIso;#",100,0,10 ) ;
|
1136 |
|
|
fRealElectronComputedEcalIso = new TH1D("hRealElectronComputedEcalIso",
|
1137 |
|
|
";ComputedEcalIso;#",100,0,10 ) ;
|
1138 |
|
|
fRealElectronComputedTrackIso = new TH1D("hRealElectronComputedTrackIso",
|
1139 |
|
|
";ComputedTrackIso;#",100,0,10 ) ;
|
1140 |
|
|
fFakeElectronPtHist = new TH1D("hFakeElectronPtHist",";p_{t};#",100,0.,200.);
|
1141 |
|
|
fFakeElectronEtaHist = new TH1D("hFakeElectronEtaHist",";#eta;#",80,-2.,2.);
|
1142 |
|
|
|
1143 |
|
|
fFakeElectronESuperClOverP = new TH1D("hFakeElectronESuperClOverP",
|
1144 |
|
|
";ESuperClOverP;#",100,0,5.0 ) ;
|
1145 |
|
|
fFakeElectronESeedClOverPout = new TH1D("hFakeElectronESeedClOverPout",
|
1146 |
|
|
";ESeedClOverPout;#",90,0,3.0 ) ;
|
1147 |
|
|
|
1148 |
|
|
fFakeElectronDeltaEtaSuperClTrackAtVtx = new TH1D("hFakeElectronDeltaEtaSuperClTrackAtVtx",
|
1149 |
|
|
";DeltaEtaSuperClTrackAtVtx;#",200,0,0.02 ) ;
|
1150 |
|
|
fFakeElectronDeltaEtaSeedClTrackAtCalo = new TH1D("hFakeElectronDeltaEtaSeedClTrackAtCalo",
|
1151 |
|
|
";DeltaEtaSeedClTrackAtCalo;#",200,0,0.04 ) ;
|
1152 |
|
|
fFakeElectronDeltaPhiSuperClTrackAtVtx = new TH1D("hFakeElectronDeltaPhiSuperClTrackAtVtx",
|
1153 |
|
|
";DeltaPhiSuperClTrackAtVtx;#",200,0,-.1 ) ;
|
1154 |
|
|
fFakeElectronDeltaPhiSeedClTrackAtCalo = new TH1D("hFakeElectronDeltaPhiSeedClTrackAtCalo",
|
1155 |
|
|
";DeltaPhiSeedClTrackAtCalo;#",200,0,0.4 ) ;
|
1156 |
|
|
|
1157 |
|
|
fFakeElectronEPInv = new TH1D("hFakeElectronEPInv",
|
1158 |
|
|
";FakeElectronEPInv;#",100,0,0.1);
|
1159 |
|
|
fFakeElectronCutClass = new TH1D("hFakeElectronCutClass",
|
1160 |
|
|
";FakeElectronCutClass;#",10,-0.5,9.5);
|
1161 |
|
|
fFakeElectronHadronicOverEm = new TH1D("hFakeElectronHadronicOverEm",
|
1162 |
|
|
";HadronicOverEm;#",150,-0.00001,0.14999 ) ;
|
1163 |
|
|
fFakeElectronE33OverE55 = new TH1D("hFakeElectronE33OverE55",
|
1164 |
|
|
";FakeElectronE33OverE55;#",110,0,1.1);
|
1165 |
|
|
fFakeElectronIsEnergyScaleCorrected = new TH1D("hFakeElectronIsEnergyScaleCorrected",
|
1166 |
|
|
";IsEnergyScaleCorrected;#",3,-1,1 ) ;
|
1167 |
|
|
fFakeElectronIsMomentumCorrected = new TH1D("hFakeElectronIsMomentumCorrected",
|
1168 |
|
|
";IsMomentumCorrected;#",3,-1,1 ) ;
|
1169 |
|
|
fFakeElectronNumberOfClusters = new TH1D("hFakeElectronNumberOfClusters",
|
1170 |
|
|
";NumberOfClusters;#",11,0,10 ) ;
|
1171 |
|
|
fFakeElectronClassification = new TH1D("hFakeElectronClassification",
|
1172 |
|
|
";Classification;#",51,0,50 ) ;
|
1173 |
|
|
fFakeElectronE33 = new TH1D("hFakeElectronE33",";E33;#",50,0,200 ) ;
|
1174 |
|
|
fFakeElectronE55 = new TH1D("hFakeElectronE55",";E55;#",50,0,200 ) ;
|
1175 |
|
|
fFakeElectronCovEtaEta = new TH1D("hFakeElectronCovEtaEta",
|
1176 |
|
|
";CovEtaEta;#",100,0,1.0 ) ;
|
1177 |
|
|
fFakeElectronCovEtaPhi = new TH1D("hFakeElectronCovEtaPhi",
|
1178 |
|
|
";CovEtaPhi;#",100,0,1.0 ) ;
|
1179 |
|
|
fFakeElectronCovPhiPhi = new TH1D("hFakeElectronCovPhiPhi",
|
1180 |
|
|
";CovPhiPhi;#",100,0,1.0 ) ;
|
1181 |
|
|
fFakeElectronLat = new TH1D("hFakeElectronLat",";Lat;#",20,0,10 ) ;
|
1182 |
|
|
fFakeElectronZernike20 = new TH1D("hFakeElectronZernike20",
|
1183 |
|
|
";Zernike20;#",20,0,10 ) ;
|
1184 |
|
|
fFakeElectronZernike42 = new TH1D("hFakeElectronZernike42",
|
1185 |
|
|
";Zernike42;#",20,0,10 ) ;
|
1186 |
|
|
fFakeElectronCaloIso = new TH1D("hFakeElectronCaloIso",
|
1187 |
|
|
";CaloIso;#",100,0,10 ) ;
|
1188 |
|
|
fFakeElectronTrackIso = new TH1D("hFakeElectronTrackIso",
|
1189 |
|
|
";TrackIso;#",100,0,10 ) ;
|
1190 |
|
|
fFakeElectronComputedEcalIso = new TH1D("hFakeElectronComputedEcalIso",
|
1191 |
|
|
";ComputedEcalIso;#",100,0,10 ) ;
|
1192 |
|
|
fFakeElectronComputedTrackIso = new TH1D("hFakeElectronComputedTrackIso",
|
1193 |
|
|
";ComputedTrackIso;#",100,0,10 ) ;
|
1194 |
|
|
fElectronSelection = new TH1D("hElectronSelection",
|
1195 |
|
|
";ElectronSelection;#",18,-1.5,16.5 ) ;
|
1196 |
|
|
fRealElectronSelection = new TH1D("hRealElectronSelection",
|
1197 |
|
|
";RealElectronSelection;#",18,-1.5,16.5 ) ;
|
1198 |
|
|
fFakeElectronSelection = new TH1D("hFakeElectronSelection",
|
1199 |
|
|
";FakeElectronSelection;#",18,-1.5,16.5 ) ;
|
1200 |
|
|
fGoodElectronPtHist = new TH1D("hGoodElectronPtHist",";p_{t};#",25,0.,200.);
|
1201 |
|
|
fGoodElectronEtaHist = new TH1D("hGoodElectronEtaHist",";#eta;#",21,-5.,5.);
|
1202 |
|
|
fGoodElectronClassification = new TH1D("hGoodElectronClassification",
|
1203 |
|
|
";Good Electron Classification;#",51,0,50 ) ;
|
1204 |
|
|
|
1205 |
|
|
AddOutput(fAllElectronPtHist);
|
1206 |
|
|
AddOutput(fAllElectronEtaHist);
|
1207 |
|
|
AddOutput(fAllElectronESuperClOverP);
|
1208 |
|
|
AddOutput(fAllElectronESeedClOverPout);
|
1209 |
|
|
AddOutput(fAllElectronDeltaEtaSuperClTrackAtVtx);
|
1210 |
|
|
AddOutput(fAllElectronDeltaEtaSeedClTrackAtCalo);
|
1211 |
|
|
AddOutput(fAllElectronDeltaPhiSuperClTrackAtVtx);
|
1212 |
|
|
AddOutput(fAllElectronDeltaPhiSeedClTrackAtCalo);
|
1213 |
|
|
AddOutput(fAllElectronEPInv);
|
1214 |
|
|
AddOutput(fAllElectronCutClass);
|
1215 |
|
|
AddOutput(fAllElectronHadronicOverEm);
|
1216 |
|
|
AddOutput(fAllElectronE33OverE55);
|
1217 |
|
|
AddOutput(fAllElectronIsEnergyScaleCorrected);
|
1218 |
|
|
AddOutput(fAllElectronIsMomentumCorrected);
|
1219 |
|
|
AddOutput(fAllElectronNumberOfClusters);
|
1220 |
|
|
AddOutput(fAllElectronClassification);
|
1221 |
|
|
AddOutput(fAllElectronE33);
|
1222 |
|
|
AddOutput(fAllElectronE55);
|
1223 |
|
|
AddOutput(fAllElectronCovEtaEta);
|
1224 |
|
|
AddOutput(fAllElectronCovEtaPhi);
|
1225 |
|
|
AddOutput(fAllElectronCovPhiPhi);
|
1226 |
|
|
AddOutput(fAllElectronLat);
|
1227 |
|
|
AddOutput(fAllElectronZernike20);
|
1228 |
|
|
AddOutput(fAllElectronZernike42);
|
1229 |
|
|
AddOutput(fAllElectronCaloIso);
|
1230 |
|
|
AddOutput(fAllElectronTrackIso);
|
1231 |
|
|
AddOutput(fAllElectronComputedEcalIso);
|
1232 |
|
|
AddOutput(fAllElectronComputedTrackIso);
|
1233 |
|
|
AddOutput(fRealElectronPtHist);
|
1234 |
|
|
AddOutput(fRealElectronEtaHist);
|
1235 |
|
|
AddOutput(fRealElectronESuperClOverP);
|
1236 |
|
|
AddOutput(fRealElectronESeedClOverPout);
|
1237 |
|
|
AddOutput(fRealElectronDeltaEtaSuperClTrackAtVtx);
|
1238 |
|
|
AddOutput(fRealElectronDeltaEtaSeedClTrackAtCalo);
|
1239 |
|
|
AddOutput(fRealElectronDeltaPhiSuperClTrackAtVtx);
|
1240 |
|
|
AddOutput(fRealElectronDeltaPhiSeedClTrackAtCalo);
|
1241 |
|
|
AddOutput(fRealElectronEPInv);
|
1242 |
|
|
AddOutput(fRealElectronCutClass);
|
1243 |
|
|
AddOutput(fRealElectronHadronicOverEm);
|
1244 |
|
|
AddOutput(fRealElectronE33OverE55);
|
1245 |
|
|
AddOutput(fRealElectronIsEnergyScaleCorrected);
|
1246 |
|
|
AddOutput(fRealElectronIsMomentumCorrected);
|
1247 |
|
|
AddOutput(fRealElectronNumberOfClusters);
|
1248 |
|
|
AddOutput(fRealElectronClassification);
|
1249 |
|
|
AddOutput(fRealElectronE33);
|
1250 |
|
|
AddOutput(fRealElectronE55);
|
1251 |
|
|
AddOutput(fRealElectronCovEtaEta);
|
1252 |
|
|
AddOutput(fRealElectronCovEtaPhi);
|
1253 |
|
|
AddOutput(fRealElectronCovPhiPhi);
|
1254 |
|
|
AddOutput(fRealElectronLat);
|
1255 |
|
|
AddOutput(fRealElectronZernike20);
|
1256 |
|
|
AddOutput(fRealElectronZernike42);
|
1257 |
|
|
AddOutput(fRealElectronCaloIso);
|
1258 |
|
|
AddOutput(fRealElectronTrackIso);
|
1259 |
|
|
AddOutput(fRealElectronComputedEcalIso);
|
1260 |
|
|
AddOutput(fRealElectronComputedTrackIso);
|
1261 |
|
|
AddOutput(fFakeElectronPtHist);
|
1262 |
|
|
AddOutput(fFakeElectronEtaHist);
|
1263 |
|
|
AddOutput(fFakeElectronESuperClOverP);
|
1264 |
|
|
AddOutput(fFakeElectronESeedClOverPout);
|
1265 |
|
|
AddOutput(fFakeElectronDeltaEtaSuperClTrackAtVtx);
|
1266 |
|
|
AddOutput(fFakeElectronDeltaEtaSeedClTrackAtCalo);
|
1267 |
|
|
AddOutput(fFakeElectronDeltaPhiSuperClTrackAtVtx);
|
1268 |
|
|
AddOutput(fFakeElectronDeltaPhiSeedClTrackAtCalo);
|
1269 |
|
|
AddOutput(fFakeElectronEPInv);
|
1270 |
|
|
AddOutput(fFakeElectronCutClass);
|
1271 |
|
|
AddOutput(fFakeElectronHadronicOverEm);
|
1272 |
|
|
AddOutput(fFakeElectronE33OverE55);
|
1273 |
|
|
AddOutput(fFakeElectronIsEnergyScaleCorrected);
|
1274 |
|
|
AddOutput(fFakeElectronIsMomentumCorrected);
|
1275 |
|
|
AddOutput(fFakeElectronNumberOfClusters);
|
1276 |
|
|
AddOutput(fFakeElectronClassification);
|
1277 |
|
|
AddOutput(fFakeElectronE33);
|
1278 |
|
|
AddOutput(fFakeElectronE55);
|
1279 |
|
|
AddOutput(fFakeElectronCovEtaEta);
|
1280 |
|
|
AddOutput(fFakeElectronCovEtaPhi);
|
1281 |
|
|
AddOutput(fFakeElectronCovPhiPhi);
|
1282 |
|
|
AddOutput(fFakeElectronLat);
|
1283 |
|
|
AddOutput(fFakeElectronZernike20);
|
1284 |
|
|
AddOutput(fFakeElectronZernike42);
|
1285 |
|
|
AddOutput(fFakeElectronCaloIso);
|
1286 |
|
|
AddOutput(fFakeElectronTrackIso);
|
1287 |
|
|
AddOutput(fFakeElectronComputedEcalIso);
|
1288 |
|
|
AddOutput(fFakeElectronComputedTrackIso);
|
1289 |
|
|
AddOutput(fElectronSelection);
|
1290 |
|
|
AddOutput(fRealElectronSelection);
|
1291 |
|
|
AddOutput(fFakeElectronSelection);
|
1292 |
|
|
AddOutput(fGoodElectronPtHist);
|
1293 |
|
|
AddOutput(fGoodElectronEtaHist);
|
1294 |
|
|
AddOutput(fGoodElectronClassification);
|
1295 |
|
|
|
1296 |
|
|
|
1297 |
|
|
//Jet Plots
|
1298 |
|
|
fAllJetPtHist = new TH1D("hAllJetPtHist",";All Jet p_{t};#",100,0.,200.);
|
1299 |
|
|
fAllJetEtaHist = new TH1D("hAllJetEtaHist",";All Jet #eta;#",160,-8.,8.);
|
1300 |
|
|
fAllJetPtEta2DHist = new TH2D("hAllJetPtEta2DHist",
|
1301 |
|
|
";All Jet p_{t} vs #eta;#",25,0,100,32,-8.,8.);
|
1302 |
|
|
fAllJetMaxEInEmTowers = new TH1D("hAllJetMaxEInEmTowers",";;#",110,-100,1000 ) ;
|
1303 |
|
|
fAllJetMaxEInHadTowers = new TH1D("hAllJetMaxEInHadTowers",";;#",100,0,1000 ) ;
|
1304 |
|
|
fAllJetEnergyFractionH = new TH1D("hAllJetEnergyFractionH",";;#",100,0,2 ) ;
|
1305 |
|
|
fAllJetEnergyFractionEm = new TH1D("hAllJetEnergyFractionEm",";;#",0,0,1 ) ;
|
1306 |
|
|
fAllJetHadEnergyInHB = new TH1D("hAllJetHadEnergyInHB",";;#",100,0,100 ) ;
|
1307 |
|
|
fAllJetHadEnergyInHO = new TH1D("hAllJetHadEnergyInHO",";;#",100,0,10 ) ;
|
1308 |
|
|
fAllJetHadEnergyInHE = new TH1D("hAllJetHadEnergyInHE",";;#",100,0,1000 ) ;
|
1309 |
|
|
fAllJetHadEnergyInHF = new TH1D("hAllJetHadEnergyInHF",";;#",100,0,2000 ) ;
|
1310 |
|
|
fAllJetEmEnergyInEB = new TH1D("hAllJetEmEnergyInEB",";;#",100,0,200 ) ;
|
1311 |
|
|
fAllJetEmEnergyInEE = new TH1D("hAllJetEmEnergyInEE",";;#",100,0,500 ) ;
|
1312 |
|
|
fAllJetEmEnergyInHF = new TH1D("hAllJetEmEnergyInHF",";;#",110,-100,1000 ) ;
|
1313 |
|
|
fAllJetTowersArea = new TH1D("hAllJetTowersArea",";;#",100,0,1 ) ;
|
1314 |
|
|
fAllJetN = new TH1D("hAllJetN",";;#",80,0,40 ) ;
|
1315 |
|
|
fAllJetN60 = new TH1D("hAllJetN60",";;#",13,0,12 ) ;
|
1316 |
|
|
fAllJetN90 = new TH1D("hAllJetN90",";;#",31,0,30 ) ;
|
1317 |
|
|
fAllJetIsFake = new TH1D("hAllJetIsFake",";;#",3,-0.5,1.5) ;
|
1318 |
|
|
fCentralJetSelection = new TH1D("hCentralJetSelection",
|
1319 |
|
|
";CentralJetSelection;#",5,-1.5,3.5 ) ;
|
1320 |
|
|
fGoodCentralJetPtHist = new TH1D("hGoodCentralJetPtHist",
|
1321 |
|
|
";Good Jet p_{t};#",100,0.,200.);
|
1322 |
|
|
fGoodCentralJetEtaHist = new TH1D("hGoodCentralJetEtaHist",
|
1323 |
|
|
";Good Jet #eta;#",160,-8.,8.);
|
1324 |
|
|
fGoodCentralJetPtEta2DHist = new TH2D("hGoodCentralJetPtEta2DHist",
|
1325 |
|
|
";Good Jet p_{t} vs #eta;#",25,0,100,32,-8.,8.);
|
1326 |
|
|
fGoodCentralJetMaxEInEmTowers = new TH1D("hGoodCentralJetMaxEInEmTowers",
|
1327 |
|
|
";;#",110,-100,1000 ) ;
|
1328 |
|
|
fGoodCentralJetMaxEInHadTowers = new TH1D("hGoodCentralJetMaxEInHadTowers",";;#",100,0,1000 ) ;
|
1329 |
|
|
fGoodCentralJetEnergyFractionH = new TH1D("hGoodCentralJetEnergyFractionH",";;#",100,0,2 ) ;
|
1330 |
|
|
fGoodCentralJetEnergyFractionEm = new TH1D("hGoodCentralJetEnergyFractionEm",
|
1331 |
|
|
";;#",3,-0.5,1.5 ) ;
|
1332 |
|
|
fGoodCentralJetHadEnergyInHB = new TH1D("hGoodCentralJetHadEnergyInHB",";;#",100,0,100 ) ;
|
1333 |
|
|
fGoodCentralJetHadEnergyInHO = new TH1D("hGoodCentralJetHadEnergyInHO",";;#",100,0,10 ) ;
|
1334 |
|
|
fGoodCentralJetHadEnergyInHE = new TH1D("hGoodCentralJetHadEnergyInHE",";;#",100,0,1000 ) ;
|
1335 |
|
|
fGoodCentralJetHadEnergyInHF = new TH1D("hGoodCentralJetHadEnergyInHF",";;#",100,0,2000 ) ;
|
1336 |
|
|
fGoodCentralJetEmEnergyInEB = new TH1D("hGoodCentralJetEmEnergyInEB",";;#",100,0,200 ) ;
|
1337 |
|
|
fGoodCentralJetEmEnergyInEE = new TH1D("hGoodCentralJetEmEnergyInEE",";;#",100,0,500 ) ;
|
1338 |
|
|
fGoodCentralJetEmEnergyInHF = new TH1D("hGoodCentralJetEmEnergyInHF",";;#",110,-100,1000 ) ;
|
1339 |
|
|
fGoodCentralJetTowersArea = new TH1D("hGoodCentralJetTowersArea",";;#",100,0,1 ) ;
|
1340 |
|
|
fGoodCentralJetN = new TH1D("hGoodCentralJetN",";;#",80,0,40 ) ;
|
1341 |
|
|
fGoodCentralJetN60 = new TH1D("hGoodCentralJetN60",";;#",13,0,12 ) ;
|
1342 |
|
|
fGoodCentralJetN90 = new TH1D("hGoodCentralJetN90",";;#",31,0,30 ) ;
|
1343 |
|
|
fRealJetPtHist = new TH1D("hRealJetPtHist",";Real Jet p_{t};#",100,0.,200.);
|
1344 |
|
|
fRealJetEtaHist = new TH1D("hRealJetEtaHist",";Real Jet #eta;#",160,-8.,8.);
|
1345 |
|
|
fRealJetPtEta2DHist = new TH2D("hRealJetPtEta2DHist",
|
1346 |
|
|
";Real Jet p_{t} vs #eta;#",25,0,100,32,-8.,8.);
|
1347 |
|
|
fRealJetMaxEInEmTowers = new TH1D("hRealJetMaxEInEmTowers",";;#",110,-100,1000 ) ;
|
1348 |
|
|
fRealJetMaxEInHadTowers = new TH1D("hRealJetMaxEInHadTowers",";;#",100,0,1000 ) ;
|
1349 |
|
|
fRealJetEnergyFractionH = new TH1D("hRealJetEnergyFractionH",";;#",100,0,2 ) ;
|
1350 |
|
|
fRealJetEnergyFractionEm = new TH1D("hRealJetEnergyFractionEm",";;#",3,-0.5,1.5 ) ;
|
1351 |
|
|
fRealJetHadEnergyInHB = new TH1D("hRealJetHadEnergyInHB",";;#",100,0,100 ) ;
|
1352 |
|
|
fRealJetHadEnergyInHO = new TH1D("hRealJetHadEnergyInHO",";;#",100,0,10 ) ;
|
1353 |
|
|
fRealJetHadEnergyInHE = new TH1D("hRealJetHadEnergyInHE",";;#",100,0,1000 ) ;
|
1354 |
|
|
fRealJetHadEnergyInHF = new TH1D("hRealJetHadEnergyInHF",";;#",100,0,2000 ) ;
|
1355 |
|
|
fRealJetEmEnergyInEB = new TH1D("hRealJetEmEnergyInEB",";;#",100,0,200 ) ;
|
1356 |
|
|
fRealJetEmEnergyInEE = new TH1D("hRealJetEmEnergyInEE",";;#",100,0,500 ) ;
|
1357 |
|
|
fRealJetEmEnergyInHF = new TH1D("hRealJetEmEnergyInHF",";;#",110,-100,1000 ) ;
|
1358 |
|
|
fRealJetTowersArea = new TH1D("hRealJetTowersArea",";;#",100,0,1 ) ;
|
1359 |
|
|
fRealJetN = new TH1D("hRealJetN",";;#",80,0,40 ) ;
|
1360 |
|
|
fRealJetN60 = new TH1D("hRealJetN60",";;#",13,0,12 ) ;
|
1361 |
|
|
fRealJetN90 = new TH1D("hRealJetN90",";;#",31,0,30 ) ;
|
1362 |
|
|
fRealJetSelection = new TH1D("hRealJetSelection",
|
1363 |
|
|
";RealJetSelection;#",5,-1.5,3.5 ) ;
|
1364 |
|
|
fFakeJetPtHist = new TH1D("hFakeJetPtHist",";Fake Jet p_{t};#",100,0.,200.);
|
1365 |
|
|
fFakeJetEtaHist = new TH1D("hFakeJetEtaHist",";Fake Jet #eta;#",160,-8.,8.);
|
1366 |
|
|
fFakeJetPtEta2DHist = new TH2D("hFakeJetPtEta2DHist",
|
1367 |
|
|
";Fake Jet p_{t} vs #eta;#",25,0,100,32,-8.,8.);
|
1368 |
|
|
fFakeJetMaxEInEmTowers = new TH1D("hFakeJetMaxEInEmTowers",";;#",110,-100,1000 ) ;
|
1369 |
|
|
fFakeJetMaxEInHadTowers = new TH1D("hFakeJetMaxEInHadTowers",";;#",100,0,1000 ) ;
|
1370 |
|
|
fFakeJetEnergyFractionH = new TH1D("hFakeJetEnergyFractionH",";;#",100,0,2 ) ;
|
1371 |
|
|
fFakeJetEnergyFractionEm = new TH1D("hFakeJetEnergyFractionEm",";;#",3,-0.5,1.5 ) ;
|
1372 |
|
|
fFakeJetHadEnergyInHB = new TH1D("hFakeJetHadEnergyInHB",";;#",100,0,100 ) ;
|
1373 |
|
|
fFakeJetHadEnergyInHO = new TH1D("hFakeJetHadEnergyInHO",";;#",100,0,10 ) ;
|
1374 |
|
|
fFakeJetHadEnergyInHE = new TH1D("hFakeJetHadEnergyInHE",";;#",100,0,1000 ) ;
|
1375 |
|
|
fFakeJetHadEnergyInHF = new TH1D("hFakeJetHadEnergyInHF",";;#",100,0,2000 ) ;
|
1376 |
|
|
fFakeJetEmEnergyInEB = new TH1D("hFakeJetEmEnergyInEB",";;#",100,0,200 ) ;
|
1377 |
|
|
fFakeJetEmEnergyInEE = new TH1D("hFakeJetEmEnergyInEE",";;#",100,0,500 ) ;
|
1378 |
|
|
fFakeJetEmEnergyInHF = new TH1D("hFakeJetEmEnergyInHF",";;#",110,-100,1000 ) ;
|
1379 |
|
|
fFakeJetTowersArea = new TH1D("hFakeJetTowersArea",";;#",100,0,1 ) ;
|
1380 |
|
|
fFakeJetN = new TH1D("hFakeJetN",";;#",80,0,40 ) ;
|
1381 |
|
|
fFakeJetN60 = new TH1D("hFakeJetN60",";;#",13,0,12 ) ;
|
1382 |
|
|
fFakeJetN90 = new TH1D("hFakeJetN90",";;#",31,0,30 ) ;
|
1383 |
|
|
fFakeJetSelection = new TH1D("hFakeJetSelection",
|
1384 |
|
|
";FakeJetSelection;#",5,-1.5,3.5 ) ;
|
1385 |
|
|
|
1386 |
|
|
AddOutput(fAllJetPtHist);
|
1387 |
|
|
AddOutput(fAllJetEtaHist);
|
1388 |
|
|
AddOutput(fAllJetPtEta2DHist);
|
1389 |
|
|
AddOutput(fAllJetMaxEInEmTowers);
|
1390 |
|
|
AddOutput(fAllJetMaxEInHadTowers);
|
1391 |
|
|
AddOutput(fAllJetEnergyFractionH);
|
1392 |
|
|
AddOutput(fAllJetEnergyFractionEm);
|
1393 |
|
|
AddOutput(fAllJetHadEnergyInHB);
|
1394 |
|
|
AddOutput(fAllJetHadEnergyInHO);
|
1395 |
|
|
AddOutput(fAllJetHadEnergyInHE);
|
1396 |
|
|
AddOutput(fAllJetHadEnergyInHF);
|
1397 |
|
|
AddOutput(fAllJetEmEnergyInEB);
|
1398 |
|
|
AddOutput(fAllJetEmEnergyInEE);
|
1399 |
|
|
AddOutput(fAllJetEmEnergyInHF);
|
1400 |
|
|
AddOutput(fAllJetTowersArea);
|
1401 |
|
|
AddOutput(fAllJetN);
|
1402 |
|
|
AddOutput(fAllJetN60);
|
1403 |
|
|
AddOutput(fAllJetN90);
|
1404 |
|
|
AddOutput(fAllJetIsFake);
|
1405 |
|
|
AddOutput(fCentralJetSelection);
|
1406 |
|
|
AddOutput(fGoodCentralJetPtHist);
|
1407 |
|
|
AddOutput(fGoodCentralJetEtaHist);
|
1408 |
|
|
AddOutput(fGoodCentralJetPtEta2DHist);
|
1409 |
|
|
AddOutput(fGoodCentralJetMaxEInEmTowers);
|
1410 |
|
|
AddOutput(fGoodCentralJetMaxEInHadTowers);
|
1411 |
|
|
AddOutput(fGoodCentralJetEnergyFractionH);
|
1412 |
|
|
AddOutput(fGoodCentralJetEnergyFractionEm);
|
1413 |
|
|
AddOutput(fGoodCentralJetHadEnergyInHB);
|
1414 |
|
|
AddOutput(fGoodCentralJetHadEnergyInHO);
|
1415 |
|
|
AddOutput(fGoodCentralJetHadEnergyInHE);
|
1416 |
|
|
AddOutput(fGoodCentralJetHadEnergyInHF);
|
1417 |
|
|
AddOutput(fGoodCentralJetEmEnergyInEB);
|
1418 |
|
|
AddOutput(fGoodCentralJetEmEnergyInEE);
|
1419 |
|
|
AddOutput(fGoodCentralJetEmEnergyInHF);
|
1420 |
|
|
AddOutput(fGoodCentralJetTowersArea);
|
1421 |
|
|
AddOutput(fGoodCentralJetN);
|
1422 |
|
|
AddOutput(fGoodCentralJetN60);
|
1423 |
|
|
AddOutput(fGoodCentralJetN90);
|
1424 |
|
|
AddOutput(fRealJetPtHist);
|
1425 |
|
|
AddOutput(fRealJetEtaHist);
|
1426 |
|
|
AddOutput(fRealJetPtEta2DHist);
|
1427 |
|
|
AddOutput(fRealJetMaxEInEmTowers);
|
1428 |
|
|
AddOutput(fRealJetMaxEInHadTowers);
|
1429 |
|
|
AddOutput(fRealJetEnergyFractionH);
|
1430 |
|
|
AddOutput(fRealJetEnergyFractionEm);
|
1431 |
|
|
AddOutput(fRealJetHadEnergyInHB);
|
1432 |
|
|
AddOutput(fRealJetHadEnergyInHO);
|
1433 |
|
|
AddOutput(fRealJetHadEnergyInHE);
|
1434 |
|
|
AddOutput(fRealJetHadEnergyInHF);
|
1435 |
|
|
AddOutput(fRealJetEmEnergyInEB);
|
1436 |
|
|
AddOutput(fRealJetEmEnergyInEE);
|
1437 |
|
|
AddOutput(fRealJetEmEnergyInHF);
|
1438 |
|
|
AddOutput(fRealJetTowersArea);
|
1439 |
|
|
AddOutput(fRealJetN);
|
1440 |
|
|
AddOutput(fRealJetN60);
|
1441 |
|
|
AddOutput(fRealJetN90);
|
1442 |
|
|
AddOutput(fRealJetSelection);
|
1443 |
|
|
AddOutput(fFakeJetPtHist);
|
1444 |
|
|
AddOutput(fFakeJetEtaHist);
|
1445 |
|
|
AddOutput(fFakeJetPtEta2DHist);
|
1446 |
|
|
AddOutput(fFakeJetMaxEInEmTowers);
|
1447 |
|
|
AddOutput(fFakeJetMaxEInHadTowers);
|
1448 |
|
|
AddOutput(fFakeJetEnergyFractionH);
|
1449 |
|
|
AddOutput(fFakeJetEnergyFractionEm);
|
1450 |
|
|
AddOutput(fFakeJetHadEnergyInHB);
|
1451 |
|
|
AddOutput(fFakeJetHadEnergyInHO);
|
1452 |
|
|
AddOutput(fFakeJetHadEnergyInHE);
|
1453 |
|
|
AddOutput(fFakeJetHadEnergyInHF);
|
1454 |
|
|
AddOutput(fFakeJetEmEnergyInEB);
|
1455 |
|
|
AddOutput(fFakeJetEmEnergyInEE);
|
1456 |
|
|
AddOutput(fFakeJetEmEnergyInHF);
|
1457 |
|
|
AddOutput(fFakeJetTowersArea);
|
1458 |
|
|
AddOutput(fFakeJetN);
|
1459 |
|
|
AddOutput(fFakeJetN60);
|
1460 |
|
|
AddOutput(fFakeJetN90);
|
1461 |
|
|
AddOutput(fFakeJetSelection);
|
1462 |
|
|
|
1463 |
|
|
//MET Plots
|
1464 |
|
|
fMetRawPtHist = new TH1D("hMetRawPtHist",";p_{t};#",30,0.,300.);
|
1465 |
|
|
fMetRawPhiHist = new TH1D("hMetRawPhiHist",";#phi;#",28,-3.5,3.5);
|
1466 |
|
|
fMetMuonCorrectedPtHist = new TH1D("hMetMuonCorrectedPtHist",";p_{t};#",30,0.,300.);
|
1467 |
|
|
fMetMuonCorrectedPhiHist = new TH1D("hMetMuonCorrectedPhiHist",";#phi;#",28,-3.5,3.5);
|
1468 |
|
|
AddOutput(fMetRawPtHist);
|
1469 |
|
|
AddOutput(fMetRawPhiHist);
|
1470 |
|
|
AddOutput(fMetMuonCorrectedPtHist);
|
1471 |
|
|
AddOutput(fMetMuonCorrectedPhiHist);
|
1472 |
|
|
|
1473 |
|
|
}
|
1474 |
|
|
|
1475 |
|
|
//--------------------------------------------------------------------------------------------------
|
1476 |
|
|
void ObjectCleaningMod::SlaveTerminate()
|
1477 |
|
|
{
|
1478 |
|
|
// Run finishing code on the computer (slave) that did the analysis. For this
|
1479 |
|
|
// module, we dont do anything here.
|
1480 |
|
|
|
1481 |
|
|
}
|
1482 |
|
|
|
1483 |
|
|
//--------------------------------------------------------------------------------------------------
|
1484 |
|
|
void ObjectCleaningMod::Terminate()
|
1485 |
|
|
{
|
1486 |
|
|
// Run finishing code on the client computer. For this module, we dont do
|
1487 |
|
|
// anything here.
|
1488 |
|
|
}
|