ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dhidas/OSUAnalysis/Tools/test/TestElectron.h
Revision: 1.1.1.1 (vendor branch)
Committed: Thu Dec 1 16:28:47 2011 UTC (13 years, 5 months ago) by dhidas
Content type: text/plain
Branch: dhidas, MAIN
CVS Tags: START, HEAD
Changes since 1.1: +0 -0 lines
Log Message:
osu copy modified

File Contents

# Content
1 #include "cute/cute.h"
2 #include "cute/cute_suite.h"
3
4 #include "../interface/RecoObjects/Electron.h"
5 #include "TestObjectFactory.h"
6
7 using namespace BAT;
8
9 struct TestElectron {
10 private:
11 ElectronPointer isolatedElectron;
12 ElectronPointer goodElectron;
13 ElectronPointer badEtElectron;
14 ElectronPointer badEtaElectron;
15 ElectronPointer badInCrackElectron;
16 ElectronPointer badD0Electron;
17 ElectronPointer badElectronWithMissingInnerLayerHit;
18 ElectronPointer badElectronWithPartnerTrack;
19 ElectronPointer looseElectron;
20 ElectronPointer badLooseElectronNoID;
21 ElectronPointer badElectronNoID;
22
23 public:
24 TestElectron() :
25 isolatedElectron(TestObjectFactory::goodIsolatedElectron()),
26 goodElectron(TestObjectFactory::goodCaloElectron()),
27 badEtElectron(TestObjectFactory::badEtElectron()),
28 badEtaElectron(TestObjectFactory::badEtaElectron()),
29 badInCrackElectron(TestObjectFactory::badInCrackElectron()),
30 badD0Electron(TestObjectFactory::badD0Electron()),
31 badElectronWithMissingInnerLayerHit(TestObjectFactory::electronWithMissingInnerLayerHit()),
32 badElectronWithPartnerTrack(TestObjectFactory::electronWithMatchingPartnerTrack()),
33 looseElectron(TestObjectFactory::goodLooseElectron()),
34 badLooseElectronNoID(TestObjectFactory::badLooseElectronNoID()),
35 badElectronNoID(TestObjectFactory::badElectronNoID()) {
36 }
37
38 public:
39 void testEcalIsolation() {
40 ASSERT_EQUAL_DELTA(0.3, isolatedElectron->ecalIsolation(), 0.01);
41 }
42
43 void testHcalIsolation() {
44 ASSERT_EQUAL_DELTA(0.5, isolatedElectron->hcalIsolation(), 0.01);
45 }
46
47 void testTrackerIsolation() {
48 ASSERT_EQUAL_DELTA(0.4, isolatedElectron->trackerIsolation(), 0.01);
49 }
50
51 void testBadEtElectron() {
52 ASSERT(badEtElectron->isGood() == false);
53 }
54
55 void testBadEtaElectron() {
56 ASSERT(badEtaElectron->isGood() == false);
57 }
58
59 void testBadInCrackElectron() {
60 ASSERT(badInCrackElectron->isGood() == false);
61 }
62
63 void testElectronFromConversion() {
64 ASSERT(badElectronWithMissingInnerLayerHit->isFromConversion());
65 }
66
67 void testElectronFromConversionWithPartnerTrack() {
68 ASSERT(badElectronWithPartnerTrack->isTaggedAsConversion(0.2,0.2));
69 }
70
71 void testBadD0Electron() {
72 ASSERT(badD0Electron->isGood() == false);
73 }
74
75 void testLooseElectron() {
76 ASSERT_EQUAL(true, badD0Electron->isLoose());
77 ASSERT_EQUAL(true, looseElectron->isLoose());
78 }
79
80 void testRelativeIsolation() {
81 float isoSum = isolatedElectron->trackerIsolation() + isolatedElectron->ecalIsolation()
82 + isolatedElectron->hcalIsolation();
83 ASSERT_EQUAL_DELTA(isoSum / isolatedElectron->et(), isolatedElectron->relativeIsolation(), 0.01);
84 ASSERT(isolatedElectron->isIsolated());
85 }
86
87 void testGoodElectron() {
88 ASSERT(goodElectron->isGood());
89 }
90
91 void testBadLooseElectronNoID() {
92 ASSERT(badLooseElectronNoID->isLoose() == false);
93 }
94
95 void testBadElectronNoID() {
96 ASSERT(badElectronNoID->isGood() == false);
97 }
98
99 void testVBTFW70Barrel() {
100 Electron electron = Electron(50, 40, 30, 0);
101 electron.setSigmaIEtaIEta(0.01 - 0.01
102 * 0.01);
103 electron.setDPhiIn(0.03 - 0.01 * 0.03);
104 electron.setDEtaIn(0.004 - 0.01 * 0.004);
105 electron.setHadOverEm(0.025 - 0.01 * 0.025);
106 electron.setSuperClusterEta(0);
107 assert(electron.isInBarrelRegion());
108 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
109 }
110
111 void testVBTFW70BarrelNegativeValues() {
112 Electron electron = Electron(50, 40, 30, 0);
113 electron.setSigmaIEtaIEta(-0.01 + 0.01
114 * 0.01);
115 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
116 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
117 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
118 electron.setSuperClusterEta(0);
119 assert(electron.isInBarrelRegion());
120 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
121 }
122
123 void testVBTFW70BarrelFailSigmaIEtaIEta() {
124 Electron electron = Electron(50, 3, 0, 40);
125 electron.setSigmaIEtaIEta(0.01 + 0.01
126 * 0.01);
127 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
128 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
129 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
130 electron.setSuperClusterEta(0);
131 assert(electron.isInBarrelRegion());
132 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
133 }
134
135 void testVBTFW70BarrelNegativeSigmaIEtaIEta() {
136 Electron electron = Electron(50, 3, 0, 40);
137 electron.setSigmaIEtaIEta(-0.01 - 0.01
138 * 0.01);
139 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
140 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
141 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
142 electron.setSuperClusterEta(0);
143 assert(electron.isInBarrelRegion());
144 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
145 }
146
147 void testVBTFW70BarrelFailDPhiIn() {
148 Electron electron = Electron(50, 3, 0, 40);
149 electron.setSigmaIEtaIEta(-0.01 + 0.01
150 * 0.01);
151 electron.setDPhiIn(0.03 + 0.01 * 0.03);
152 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
153 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
154 electron.setSuperClusterEta(0);
155 assert(electron.isInBarrelRegion());
156 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
157 }
158
159 void testVBTFW70BarrelFailNegativeDPhiIn() {
160 Electron electron = Electron(50, 3, 0, 40);
161 electron.setSigmaIEtaIEta(-0.01 + 0.01
162 * 0.01);
163 electron.setDPhiIn(-0.03 - 0.01 * 0.03);
164 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
165 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
166 electron.setSuperClusterEta(0);
167 assert(electron.isInBarrelRegion());
168 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
169 }
170
171 void testVBTFW70BarrelFailDEtaIn() {
172 Electron electron = Electron(50, 3, 0, 40);
173 electron.setSigmaIEtaIEta(-0.01 + 0.01
174 * 0.01);
175 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
176 electron.setDEtaIn(0.004 + 0.01 * 0.004);
177 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
178 electron.setSuperClusterEta(0);
179 assert(electron.isInBarrelRegion());
180 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
181 }
182
183 void testVBTFW70BarrelFailNegativeDEtaIn() {
184 Electron electron = Electron(50, 3, 0, 40);
185 electron.setSigmaIEtaIEta(-0.01 + 0.01
186 * 0.01);
187 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
188 electron.setDEtaIn(-0.004 - 0.01 * 0.004);
189 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
190 electron.setSuperClusterEta(0);
191 assert(electron.isInBarrelRegion());
192 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
193 }
194
195 void testVBTFW70BarrelFailHadOverEm() {
196 Electron electron = Electron(50, 3, 0, 40);
197 electron.setSigmaIEtaIEta(-0.01 + 0.01
198 * 0.01);
199 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
200 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
201 electron.setHadOverEm(0.025 + 0.01 * 0.025);
202 electron.setSuperClusterEta(0);
203 assert(electron.isInBarrelRegion());
204 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
205 }
206
207 void testVBTFW70BarrelNegativeHadOverEm() {
208 Electron electron = Electron(50, 3, 0, 40);
209 electron.setSigmaIEtaIEta(-0.01 + 0.01
210 * 0.01);
211 electron.setDPhiIn(-0.03 + 0.01 * 0.03);
212 electron.setDEtaIn(-0.004 + 0.01 * 0.004);
213 electron.setHadOverEm(-0.025 - 0.01 * 0.025);
214 electron.setSuperClusterEta(0);
215 assert(electron.isInBarrelRegion());
216 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
217 }
218
219 void testVBTFW70Endcap() {
220 Electron electron = Electron(50, 3, 0, 40);
221 electron.setSigmaIEtaIEta(0.03 - 0.01
222 * 0.03);
223 electron.setDPhiIn(0.02 - 0.01 * 0.02);
224 electron.setDEtaIn(0.005 - 0.01 * 0.005);
225 electron.setHadOverEm(0.025 - 0.01 * 0.025);
226 electron.setSuperClusterEta(2.6);
227 assert(electron.isInEndCapRegion());
228 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
229 }
230
231 void testVBTFW70EndcapNegativeValues() {
232 Electron electron = Electron(50, 3, 0, 40);
233 electron.setSigmaIEtaIEta(-0.03 + 0.01
234 * 0.03);
235 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
236 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
237 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
238 electron.setSuperClusterEta(2.6);
239 assert(electron.isInEndCapRegion());
240 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
241 }
242
243 void testVBTFW70EndcapFailSigmaIEtaIEta() {
244 Electron electron = Electron(50, 3, 0, 40);
245 electron.setSigmaIEtaIEta(0.03 + 0.01
246 * 0.03);
247 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
248 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
249 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
250 electron.setSuperClusterEta(2.6);
251 assert(electron.isInEndCapRegion());
252 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
253 }
254
255 void testVBTFW70EndcapNegativeSigmaIEtaIEta() {
256 Electron electron = Electron(50, 3, 0, 40);
257 electron.setSigmaIEtaIEta(-0.03 - 0.01
258 * 0.03);
259 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
260 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
261 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
262 electron.setSuperClusterEta(2.6);
263 assert(electron.isInEndCapRegion());
264 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
265 }
266
267 void testVBTFW70EndcapFailDPhiIn() {
268 Electron electron = Electron(50, 3, 0, 40);
269 electron.setSigmaIEtaIEta(-0.03 + 0.01
270 * 0.03);
271 electron.setDPhiIn(0.02 + 0.01 * 0.02);
272 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
273 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
274 electron.setSuperClusterEta(2.6);
275 assert(electron.isInEndCapRegion());
276 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
277 }
278
279 void testVBTFW70EndcapFailNegativeDPhiIn() {
280 Electron electron = Electron(50, 3, 0, 40);
281 electron.setSigmaIEtaIEta(-0.03 + 0.01
282 * 0.03);
283 electron.setDPhiIn(-0.02 - 0.01 * 0.02);
284 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
285 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
286 electron.setSuperClusterEta(2.6);
287 assert(electron.isInEndCapRegion());
288 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
289 }
290
291 void testVBTFW70EndcapDEtaIn() {
292 Electron electron = Electron(50, 3, 0, 40);
293 electron.setSigmaIEtaIEta(-0.03 + 0.01
294 * 0.03);
295 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
296 electron.setDEtaIn(0.005 - 0.01 * 0.005);
297 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
298 electron.setSuperClusterEta(2.6);
299 assert(electron.isInEndCapRegion());
300 //expect true, dEtaIn cut is not used in the endcap at the moment
301 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
302 }
303
304 void testVBTFW70EndcapNegativeDEtaIn() {
305 Electron electron = Electron(50, 3, 0, 40);
306 electron.setSigmaIEtaIEta(-0.03 + 0.01
307 * 0.03);
308 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
309 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
310 electron.setHadOverEm(-0.025 + 0.01 * 0.025);
311 electron.setSuperClusterEta(2.6);
312 assert(electron.isInEndCapRegion());
313 //expect true, dEtaIn cut is not used in the endcap at the moment
314 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
315 }
316
317 void testVBTFW70EndcapFailHadOverEm() {
318 Electron electron = Electron(50, 3, 0, 40);
319 electron.setSigmaIEtaIEta(-0.03 + 0.01
320 * 0.03);
321 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
322 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
323 electron.setHadOverEm(0.025 + 0.01 * 0.025);
324 electron.setSuperClusterEta(2.6);
325 assert(electron.isInEndCapRegion());
326 ASSERT_EQUAL(false, electron.VBTF_W70_ElectronID());
327 }
328
329 void testVBTFW70EndcapNegativeHadOverEm() {
330 Electron electron = Electron(50, 3, 0, 40);
331 electron.setSigmaIEtaIEta(-0.03 + 0.01
332 * 0.03);
333 electron.setDPhiIn(-0.02 + 0.01 * 0.02);
334 electron.setDEtaIn(-0.005 + 0.01 * 0.005);
335 electron.setHadOverEm(-0.025 - 0.01 * 0.025);
336 electron.setSuperClusterEta(2.6);
337 assert(electron.isInEndCapRegion());
338 ASSERT_EQUAL(true, electron.VBTF_W70_ElectronID());
339 }
340
341 void testVBTFW95Barrel() {
342 Electron electron = Electron(50, 40, 30, 0);
343 electron.setSigmaIEtaIEta(0.01 - 0.01
344 * 0.01);
345 electron.setDPhiIn(0.8 - 0.01 * 0.8);
346 electron.setDEtaIn(0.007 - 0.01 * 0.007);
347 electron.setHadOverEm(0.15 - 0.01 * 0.15);
348 electron.setSuperClusterEta(0);
349 assert(electron.isInBarrelRegion());
350 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
351 }
352
353 void testVBTFW95BarrelNegativeValues() {
354 Electron electron = Electron(50, 40, 30, 0);
355 electron.setSigmaIEtaIEta(-0.01 + 0.01
356 * 0.01);
357 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
358 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
359 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
360 electron.setSuperClusterEta(0);
361 assert(electron.isInBarrelRegion());
362 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
363 }
364
365 void testVBTFW95BarrelFailSigmaIEtaIEta() {
366 Electron electron = Electron(50, 3, 0, 40);
367 electron.setSigmaIEtaIEta(0.01 + 0.01
368 * 0.01);
369 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
370 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
371 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
372 electron.setSuperClusterEta(0);
373 assert(electron.isInBarrelRegion());
374 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
375 }
376
377 void testVBTFW95BarrelNegativeSigmaIEtaIEta() {
378 Electron electron = Electron(50, 3, 0, 40);
379 electron.setSigmaIEtaIEta(-0.01 - 0.01
380 * 0.01);
381 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
382 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
383 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
384 electron.setSuperClusterEta(0);
385 assert(electron.isInBarrelRegion());
386 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
387 }
388
389 void testVBTFW95BarrelFailDPhiIn() {
390 Electron electron = Electron(50, 3, 0, 40);
391 electron.setSigmaIEtaIEta(-0.01 + 0.01
392 * 0.01);
393 electron.setDPhiIn(0.8 + 0.01 * 0.8);
394 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
395 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
396 electron.setSuperClusterEta(0);
397 assert(electron.isInBarrelRegion());
398 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
399 }
400
401 void testVBTFW95BarrelFailNegativeDPhiIn() {
402 Electron electron = Electron(50, 3, 0, 40);
403 electron.setSigmaIEtaIEta(-0.01 + 0.01
404 * 0.01);
405 electron.setDPhiIn(-0.8 - 0.01 * 0.8);
406 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
407 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
408 electron.setSuperClusterEta(0);
409 assert(electron.isInBarrelRegion());
410 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
411 }
412
413 void testVBTFW95BarrelFailDEtaIn() {
414 Electron electron = Electron(50, 3, 0, 40);
415 electron.setSigmaIEtaIEta(-0.01 + 0.01
416 * 0.01);
417 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
418 electron.setDEtaIn(0.007 + 0.01 * 0.007);
419 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
420 electron.setSuperClusterEta(0);
421 assert(electron.isInBarrelRegion());
422 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
423 }
424
425 void testVBTFW95BarrelFailNegativeDEtaIn() {
426 Electron electron = Electron(50, 3, 0, 40);
427 electron.setSigmaIEtaIEta(-0.01 + 0.01
428 * 0.01);
429 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
430 electron.setDEtaIn(-0.007 - 0.01 * 0.007);
431 electron.setHadOverEm(-0.15 + 0.01 * 0.15);
432 electron.setSuperClusterEta(0);
433 assert(electron.isInBarrelRegion());
434 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
435 }
436
437 void testVBTFW95BarrelFailHadOverEm() {
438 Electron electron = Electron(50, 3, 0, 40);
439 electron.setSigmaIEtaIEta(-0.01 + 0.01
440 * 0.01);
441 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
442 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
443 electron.setHadOverEm(0.15 + 0.01 * 0.15);
444 electron.setSuperClusterEta(0);
445 assert(electron.isInBarrelRegion());
446 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
447 }
448
449 void testVBTFW95BarrelNegativeHadOverEm() {
450 Electron electron = Electron(50, 3, 0, 40);
451 electron.setSigmaIEtaIEta(-0.01 + 0.01
452 * 0.01);
453 electron.setDPhiIn(-0.8 + 0.01 * 0.8);
454 electron.setDEtaIn(-0.007 + 0.01 * 0.007);
455 electron.setHadOverEm(-0.15 - 0.01 * 0.15);
456 electron.setSuperClusterEta(0);
457 assert(electron.isInBarrelRegion());
458 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
459 }
460
461 void testVBTFW95Endcap() {
462 Electron electron = Electron(50, 3, 0, 49);
463 electron.setSigmaIEtaIEta(0.03 - 0.01
464 * 0.03);
465 electron.setDPhiIn(0.7 - 0.01 * 0.7);
466 electron.setDEtaIn(0.01 - 0.01 * 0.01);
467 electron.setHadOverEm(0.07 - 0.01 * 0.07);
468 electron.setSuperClusterEta(2.4);
469
470 assert(electron.isInEndCapRegion());
471 assert(electron.sigmaIEtaIEta() < 0.03);
472 assert(fabs(electron.dPhiIn()) < 0.7);
473 assert(fabs(electron.dEtaIn()) < 0.01);
474 assert(electron.HadOverEm() < 0.07);
475 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
476 }
477
478 void testVBTFW95EndcapNegativeValues() {
479 Electron electron = Electron(50, 3, 0, 40);
480 electron.setSigmaIEtaIEta(-0.03 + 0.01
481 * 0.03);
482 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
483 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
484 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
485 electron.setSuperClusterEta(2.4);
486
487 assert(electron.sigmaIEtaIEta() < 0.03);
488 assert(fabs(electron.dPhiIn()) < 0.7);
489 assert(fabs(electron.dEtaIn()) < 0.01);
490 assert(electron.HadOverEm() < 0.07);
491 assert(electron.isInEndCapRegion());
492 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
493 }
494
495 void testVBTFW95EndcapFailSigmaIEtaIEta() {
496 Electron electron = Electron(50, 3, 0, 40);
497 electron.setSigmaIEtaIEta(0.03 + 0.01
498 * 0.03);
499 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
500 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
501 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
502 electron.setSuperClusterEta(2.4);
503 assert(electron.isInEndCapRegion());
504 assert(electron.sigmaIEtaIEta() > 0.03);
505 assert(fabs(electron.dPhiIn()) < 0.7);
506 assert(fabs(electron.dEtaIn()) < 0.01);
507 assert(electron.HadOverEm() < 0.07);
508 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
509 }
510
511 void testVBTFW95EndcapNegativeSigmaIEtaIEta() {
512 Electron electron = Electron(50, 3, 0, 40);
513 electron.setSigmaIEtaIEta(-0.03 - 0.01
514 * 0.03);
515 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
516 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
517 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
518 electron.setSuperClusterEta(2.6);
519 assert(electron.isInEndCapRegion());
520 assert(electron.sigmaIEtaIEta() < 0.03);
521 assert(fabs(electron.dPhiIn()) < 0.7);
522 assert(fabs(electron.dEtaIn()) < 0.01);
523 assert(electron.HadOverEm() < 0.07);
524 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
525 }
526
527 void testVBTFW95EndcapFailDPhiIn() {
528 Electron electron = Electron(50, 3, 0, 40);
529 electron.setSigmaIEtaIEta(-0.03 + 0.01
530 * 0.03);
531 electron.setDPhiIn(0.7 + 0.01 * 0.7);
532 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
533 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
534 electron.setSuperClusterEta(2.6);
535 assert(electron.sigmaIEtaIEta() < 0.03);
536 assert(fabs(electron.dPhiIn()) > 0.7);
537 assert(fabs(electron.dEtaIn()) < 0.01);
538 assert(electron.HadOverEm() < 0.07);
539 assert(electron.isInEndCapRegion());
540 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
541 }
542
543 void testVBTFW95EndcapFailNegativeDPhiIn() {
544 Electron electron = Electron(50, 3, 0, 40);
545 electron.setSigmaIEtaIEta(-0.03 + 0.01
546 * 0.03);
547 electron.setDPhiIn(-0.7 - 0.01 * 0.7);
548 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
549 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
550 electron.setSuperClusterEta(2.6);
551 assert(electron.isInEndCapRegion());
552 assert(electron.sigmaIEtaIEta() < 0.03);
553 assert(fabs(electron.dPhiIn()) > 0.7);
554 assert(fabs(electron.dEtaIn()) < 0.01);
555 assert(electron.HadOverEm() < 0.07);
556 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
557 }
558
559 void testVBTFW95EndcapDEtaIn() {
560 Electron electron = Electron(50, 3, 0, 40);
561 electron.setSigmaIEtaIEta(-0.03 + 0.01
562 * 0.03);
563 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
564 electron.setDEtaIn(0.01 - 0.01 * 0.01);
565 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
566 electron.setSuperClusterEta(2.6);
567 assert(electron.isInEndCapRegion());
568 assert(electron.sigmaIEtaIEta() < 0.03);
569 assert(fabs(electron.dPhiIn()) < 0.7);
570 assert(fabs(electron.dEtaIn()) < 0.01);
571 assert(electron.HadOverEm() < 0.07);
572 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
573 }
574
575 void testVBTFW95EndcapNegativeDEtaIn() {
576 Electron electron = Electron(50, 3, 0, 40);
577 electron.setSigmaIEtaIEta(-0.03 + 0.01
578 * 0.03);
579 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
580 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
581 electron.setHadOverEm(-0.07 + 0.01 * 0.07);
582 electron.setSuperClusterEta(2.6);
583 assert(electron.isInEndCapRegion());
584 assert(electron.sigmaIEtaIEta() < 0.03);
585 assert(fabs(electron.dPhiIn()) < 0.7);
586 assert(fabs(electron.dEtaIn()) < 0.01);
587 assert(electron.HadOverEm() < 0.07);
588 //expect true, dEtaIn cut is not used in the endcap at the moment
589 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
590 }
591
592 void testVBTFW95EndcapFailHadOverEm() {
593 Electron electron = Electron(50, 3, 0, 40);
594 electron.setSigmaIEtaIEta(-0.03 + 0.01
595 * 0.03);
596 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
597 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
598 electron.setHadOverEm(0.07 + 0.01 * 0.07);
599 electron.setSuperClusterEta(2.6);
600 assert(electron.isInEndCapRegion());
601 assert(electron.sigmaIEtaIEta() < 0.03);
602 assert(fabs(electron.dPhiIn()) < 0.7);
603 assert(fabs(electron.dEtaIn()) < 0.01);
604 assert(electron.HadOverEm() > 0.07);
605 ASSERT_EQUAL(false, electron.VBTF_W95_ElectronID());
606 }
607
608 void testVBTFW95EndcapNegativeHadOverEm() {
609 Electron electron = Electron(50, 3, 0, 40);
610 electron.setSigmaIEtaIEta(-0.03 + 0.01
611 * 0.03);
612 electron.setDPhiIn(-0.7 + 0.01 * 0.7);
613 electron.setDEtaIn(-0.01 + 0.01 * 0.01);
614 electron.setHadOverEm(-0.07 - 0.01 * 0.07);
615 electron.setSuperClusterEta(2.6);
616 assert(electron.isInEndCapRegion());
617 assert(electron.sigmaIEtaIEta() < 0.03);
618 assert(fabs(electron.dPhiIn()) < 0.7);
619 assert(fabs(electron.dEtaIn()) < 0.01);
620 assert(electron.HadOverEm() < 0.07);
621 ASSERT_EQUAL(true, electron.VBTF_W95_ElectronID());
622 }
623
624 void testElectronCharge() {
625 Electron electron = Electron(50, 3, 0, 40);
626 electron.setCharge(2);
627 ASSERT_EQUAL(2, electron.charge());
628 }
629
630 void testElectronChargeInCopy() {
631 Electron electron = Electron(50, 3, 0, 40);
632 electron.setCharge(2);
633 Electron copyElectron(electron);
634 ASSERT_EQUAL(2, copyElectron.charge());
635 }
636
637 void testElectronInCollection() {
638 ElectronCollection coll;
639 ElectronPointer electron(new Electron(50, 3, 0, 40));
640 ElectronPointer electron2(new Electron(50, 3, 0, 40));
641 electron->setCharge(2);
642 electron2->setCharge(2);
643 coll.push_back(electron);
644 coll.push_back(electron2);
645 ASSERT_EQUAL(2, coll.front()->charge());
646 }
647
648 void testElectronInSTDCollection() {
649 std::vector<Electron> coll;
650 Electron electron(50, 3, 0, 40);
651 Electron electron2(50, 3, 0, 40);
652 electron.setCharge(2);
653 electron2.setCharge(2);
654 coll.push_back(electron);
655 coll.push_back(electron2);
656 ASSERT_EQUAL(2, coll.front().charge());
657 }
658
659 void testElectronSetMass() {
660 Electron electron = Electron(50, 3, 0, 40);
661 electron.setMass(500);
662 ASSERT_EQUAL(500, electron.mass());
663 }
664
665 void testGSFTrack() {
666 TrackPointer track = TrackPointer(new Track(20, 20, 0, 0));
667 goodElectron->setGSFTrack(track);
668 ASSERT_EQUAL(track, goodElectron->GSFTrack());
669 }
670
671 };
672 extern cute::suite make_suite_TestElectron() {
673 cute::suite s;
674 s.push_back(CUTE_SMEMFUN(TestElectron, testRelativeIsolation));
675 s.push_back(CUTE_SMEMFUN(TestElectron, testGoodElectron));
676 s.push_back(CUTE_SMEMFUN(TestElectron, testBadEtElectron));
677 s.push_back(CUTE_SMEMFUN(TestElectron, testBadEtaElectron));
678 s.push_back(CUTE_SMEMFUN(TestElectron, testBadD0Electron));
679 s.push_back(CUTE_SMEMFUN(TestElectron, testBadInCrackElectron));
680 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronFromConversion));
681 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronFromConversionWithPartnerTrack));
682 s.push_back(CUTE_SMEMFUN(TestElectron, testEcalIsolation));
683 s.push_back(CUTE_SMEMFUN(TestElectron, testHcalIsolation));
684 s.push_back(CUTE_SMEMFUN(TestElectron, testTrackerIsolation));
685 s.push_back(CUTE_SMEMFUN(TestElectron, testLooseElectron));
686 s.push_back(CUTE_SMEMFUN(TestElectron, testBadLooseElectronNoID));
687 s.push_back(CUTE_SMEMFUN(TestElectron, testBadElectronNoID));
688
689 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70Barrel));
690 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelNegativeValues));
691 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelFailSigmaIEtaIEta));
692 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelNegativeSigmaIEtaIEta));
693 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelFailDPhiIn));
694 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelFailNegativeDPhiIn));
695 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelFailDEtaIn));
696 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelFailNegativeDEtaIn));
697 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelFailHadOverEm));
698 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70BarrelNegativeHadOverEm));
699
700 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70Endcap));
701 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapNegativeValues));
702 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapFailSigmaIEtaIEta));
703 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapNegativeSigmaIEtaIEta));
704 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapFailDPhiIn));
705 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapFailNegativeDPhiIn));
706 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapDEtaIn));
707 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapNegativeDEtaIn));
708 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapFailHadOverEm));
709 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW70EndcapNegativeHadOverEm));
710
711 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95Barrel));
712 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelNegativeValues));
713 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelFailSigmaIEtaIEta));
714 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelNegativeSigmaIEtaIEta));
715 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelFailDPhiIn));
716 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelFailNegativeDPhiIn));
717 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelFailDEtaIn));
718 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelFailNegativeDEtaIn));
719 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelFailHadOverEm));
720 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95BarrelNegativeHadOverEm));
721
722 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95Endcap));
723 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapNegativeValues));
724 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapFailSigmaIEtaIEta));
725 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapNegativeSigmaIEtaIEta));
726 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapFailDPhiIn));
727 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapFailNegativeDPhiIn));
728 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapDEtaIn));
729 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapNegativeDEtaIn));
730 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapFailHadOverEm));
731 s.push_back(CUTE_SMEMFUN(TestElectron, testVBTFW95EndcapNegativeHadOverEm));
732
733 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronCharge));
734 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronChargeInCopy));
735 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronInCollection));
736 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronSetMass));
737 s.push_back(CUTE_SMEMFUN(TestElectron, testElectronInSTDCollection));
738 // s.push_back(CUTE_SMEMFUN(TestElectron, testSwissCrossBarrel));
739 // s.push_back(CUTE_SMEMFUN(TestElectron, testSwissCrossEndcap));
740 // s.push_back(CUTE_SMEMFUN(TestElectron, testSwissCrossNotEcalDriven));
741 s.push_back(CUTE_SMEMFUN(TestElectron, testGSFTrack));
742 return s;
743 }