CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
electronSelections.h
Go to the documentation of this file.
1 #ifndef ELECTRONSELECTIONS_H
2 #define ELECTRONSELECTIONS_H
3 
4 // C++
5 #include <stdint.h>
6 #include <vector>
7 #include <iostream>
8 
9 // ROOT
10 #include "TMath.h"
11 
12 // Header
14 
15 // CMS2
17 
18 typedef ULong64_t uint64;
19 typedef uint64 cuts_t;
21 
22 namespace HWWFunctions {
23 
25  // This is the menu of electron selections //
27 
29 
31  // Isolation //
33 
34  ELEISO_REL010, // rel iso (fixed below 20 GeV) < 0.10, 0.3 cone size for all, 1 GeV pedestal sub in EB
35  ELEISO_REL015, // rel iso (fixed below 20 GeV) < 0.15, 0.3 cone size for all, 1 GeV pedestal sub in EB
36  ELEISO_REL040, // rel iso (fixed below 20 GeV) < 0.40, 0.3 cone size for all, 1 GeV pedestal sub in EB
37  ELEISO_REL100, // rel iso (fixed below 20 GeV) < 1.00, 0.3 cone size for all, 1 GeV pedestal sub in EB
38  ELEISO_REL010_WW, // rel iso (fixed below 20 GeV) < 0.10, 0.3 cone size for all, 1 GeV pedestal sub in EB/EE
39  ELEISO_REL040_WW, // rel iso (fixed below 20 GeV) < 0.40, 0.3 cone size for all, 1 GeV pedestal sub in EB/EE
40  ELEISO_REL100_WW, // rel iso (fixed below 20 GeV) < 1.00, 0.3 cone size for all, 1 GeV pedestal sub in EB/EE
41  ELEISO_SMURFV4, // non-truncated relative pf iso with cut [0.15,0.09] for [barrel,endcap]
42  ELEISO_SMURFV5, // non-truncated relative pf iso with cut [0.13,0.09] for [barrel,endcap]
43  ELEISO_RELNT010, // non-truncated relative iso < 0.10, 0.3 cone size for all, 1 GeV pedestal sub in EB
44  ELEISO_RELNT015, // non-truncated relative iso < 0.15, 0.3 cone size for all, 1 GeV pedestal sub in EB
45  ELEISO_RELNT040, // non-truncated relative iso < 0.40, 0.3 cone size for all, 1 GeV pedestal sub in EB
46  ELEISO_TRK_RELNT020, // non-truncated relative Tracker iso < 0.20, 0.3 cone size for all
47  ELEISO_ECAL_RELNT020, // non-truncated relative ECAL iso < 0.20, 0.3 cone size for all, 1 GeV pedestal sub in EB
48  ELEISO_ECAL_RELNT020_NPS, // non-truncated relative ECAL iso < 0.20, 0.3 cone size for all, no pedestal sub in EB
49  ELEISO_HCAL_RELNT020, // non-truncated relative HCAL iso < 0.20, 0.3 cone size for all
50  ELEISO_ECAL_REL020, // truncated relative ECAL iso < 0.20, 0.3 cone size for all, 1 GeV pedestal sub in EB
51  ELEISO_HCAL_REL020, // truncated relative HCAL iso < 0.20, 0.3 cone size for all
52  ELEISO_FASTJET_REL005, // truncated reliso < 0.05, 0.3 cone size, 1 GeV pedestal subtraction, fastjet-corrected
53  ELEISO_FASTJET_REL010, // truncated reliso < 0.05, 0.3 cone size, 1 GeV pedestal subtraction, fastjet-corrected
54  ELEISO_FASTJET_REL015, // truncated reliso < 0.05, 0.3 cone size, 1 GeV pedestal subtraction, fastjet-corrected
55  ELEISO_COR_RELNT010, // truncated correction reliso < 0.1, cor_iso = ntiso - (ln(pt) * nvtx)/(30+pt)
56 
58  // Impact Parameter //
60 
61  ELEIP_200, // d0 corrected for beamspot < 0.02
62  ELEIP_400, // d0 corrected for beamspot < 0.04
63  ELEIP_PV_200, // d0 corrected for primary vertex < 0.02
64  ELEIP_PV_wwV1, // d0 (PV) < 0.02 and dz (PV) < 1.0
65  ELEIP_PV_SMURFV3, // d0 (PV) < 0.02 and dz (PV) < 0.2, using first PV
66  ELEIP_PV_DZ_1MM, // dz (PV) < 0.1, using first PV
67  ELEIP_PV_OSV2, // d0 (PV) < 0.04 and dz (PV) < 1, using first PV
68  ELEIP_PV_OSV2_FO, // d0 (PV) < 0.2 and dz (PV) < 1, using first PV
69  ELEIP_SS200, // 2011 SS numerator d0 cut
70 
71 
73  // Electron Identification //
75 
76  ELEID_SMURFV1_EXTRA, // pass smurf v1 electron ID
77  ELEID_SMURFV2_EXTRA, // pass smurf v2 electron ID
78  ELEID_SMURFV3_EXTRA, // pass smurf v3 electron ID
79  ELEID_VBTF_35X_95, // VBTF95 electron ID (35X)
80  ELEID_VBTF_35X_90, // VBTF90 electron ID (35X)
81  ELEID_VBTF_35X_80, // VBTF80 electron ID (35X)
82  ELEID_VBTF_80_NOHOEEND, // VBTF80 electron ID no HoE in endcap
83  ELEID_VBTF_85_NOHOEEND, // VBTF85 electron ID no HoE in endcap
84  ELEID_VBTF_85, // VBTF85 electron ID
85  ELEID_VBTF_70_NOHOEEND, // VBTF70 electron ID no HoE in endcap
86  ELEID_VBTF_90_HLT, // VBTF90 electron ID with HoE and dPhiIn cuts tuned to represent HLT requirements for CaloIdL_TrkIdVL
87  ELEID_VBTF_90_HLT_CALOIDT_TRKIDVL, // VBTF90 electron ID with HoE and dPhiIn cuts tuned to represent HLT requirements for CaloIdT_TrkIdVL
88  ELEID_CIC_V03_MEDIUM, // CIC_MEDIUM electron ID (V03)
89  ELEID_VBTF_95_NOHOEEND, // VBTF80 electron ID no HoE in endcap
90  ELEID_WP2012_MEDIUM_NOISO, // WP2012 MEDIUM ELECTRON ID, NO ISO
91  ELEID_WP2012_MEDIUM_NOISO_NOIP, // WP2012 MEDIUM ELECTRON ID, NO ISO, NO IP
92  ELEID_WP2012_LOOSE_NOISO, // WP2012 MEDIUM ELECTRON ID, NO ISO
93 
95  // Conversion Rejection //
97 
98  ELENOTCONV_MIT, // mit conversion rejection v11
99  ELENOTCONV_DISTDCOT002, // dist < 0.02 && dcot(theta) < 0.02
100  ELENOTCONV_HITPATTERN_0MHITS, // < 1 missing hits
101 
103  // Basic Selections //
105 
106  ELEETA_250, // |eta| < 2.50
107  ELEETA_240, // |eta| < 2.40
108 
109  ELEPT_010, // Pt > 10
110 
111  ELENOMUON_010, // no muon within dR < 0.1
112  ELENOMUON_010_SS, // no muon passing same sign numerator selection within dR < 0.1
113 
114  ELESEED_ECAL, // seed must have been found by at least the ecal algo
115 
116  ELECHARGE_NOTFLIP3AGREE, // Not a charge flip and CTF, GSF, and Pixel-SuperCluster charges agree
117 
118  ELE_NOT_TRANSITION, // SC |eta| < 1.4442 OR SC |eta| > 1.566 (veto transition region)
119 
120 
122 
123  };
124 
125  // Assuming the constants in EleSelectionType have default numeric values ( 0, 1, 2, ... N ),
126  // the last enum constant will have integer value N
127  // For the bitmasks to work, N must be <= 63
128  inline void checkElectronSelections(void){
129  using namespace std;
130  int n = (int) EleSelectionType(ELE_LAST);
131  int nMax = (int) 8*sizeof(1ll) - 1;
132  if( n > nMax ){
133  edm::LogError("InvalidInput") << "enum \"EleSelectionType\" has " << n << " elements but cannot have more than " << nMax << " elements...";
134  //exit(1);
135  }
136  }
137 
138 
140  // Higgs, WW //
142 
143  // ======================== WW ============================
144  //
145  // The standard WW impact parameter cut
146  //
147  //---------------------------------------------------------
149  (1ll<<ELEIP_200);
150  //---------------------------------------------------------
151  //
152  // The standard WW isolation cut
153  //
154  //---------------------------------------------------------
156  (1ll<<ELEISO_REL010);
157  //---------------------------------------------------------
158 
159  //--------beginning of WW V0 cuts--------------------------
160 
161  //---------------------------------------------------------
162  // WWV0 base cut
163  //---------------------------------------------------------
165  (1ll<<ELEETA_250) |
166  (1ll<<ELENOTCONV_DISTDCOT002);
167 
168  //---------------------------------------------------------
169  // WWV0 impact parameter cut
170  //---------------------------------------------------------
172  (1ll<<ELEIP_PV_200);
173 
174  //---------------------------------------------------------
175  // WWV0 id cut
176  //---------------------------------------------------------
178  (1ll<<ELEID_VBTF_35X_80) ;
179 
180  //---------------------------------------------------------
181  // WWV0 isolation cut
182  //---------------------------------------------------------
184  (1ll<<ELEISO_REL010_WW);
185 
186  //---------------------------------------------------------
187  // WWV0 selection
188  //--------------------------------------------------------
190  electronSelection_wwV0_base |
191  electronSelection_wwV0_ip |
192  electronSelection_wwV0_id |
194 
195  //---------------------------------------------------------
196  // WWV0 fakeable object baseline definition
197  //---------------------------------------------------------
200 
201  //---------------------------------------------------------
202  // WWV0 fakeable object definition v1
203  // extrapolating in isolation and id
204  //---------------------------------------------------------
206  electronSelectionFO_wwV0_baseline |
207  (1ll<<ELEISO_REL040_WW);
208 
209  //---------------------------------------------------------
210  // WWV0 fakeable object definition v2
211  // extrapolating in id
212  //---------------------------------------------------------
214  electronSelectionFO_wwV0_baseline |
216 
217  //---------------------------------------------------------
218  // WWV0 fakeable object definition v3
219  // extrapolating in iso
220  //---------------------------------------------------------
222  electronSelectionFO_wwV0_baseline |
223  electronSelection_wwV0_id |
224  (1ll<<ELEISO_REL100_WW);
225 
226  //---------------------------------------------------------
227  // WWV0 fakeable object definition v4
228  // extrapolating in iso
229  //---------------------------------------------------------
231  electronSelectionFO_wwV0_baseline |
232  (1ll<<ELEID_VBTF_35X_90) |
233  (1ll<<ELEISO_REL100_WW);
234 
235  //--------end of WW V0 cuts--------------------------------
236 
237 
238  //---------------------------------------------------------
239  // WWV0b base cut
240  //---------------------------------------------------------
242  (1ll<<ELEETA_250) |
243  (1ll<<ELENOTCONV_DISTDCOT002) |
245 
246  //---------------------------------------------------------
247  // WWV0b impact parameter cut
248  //---------------------------------------------------------
250  (1ll<<ELEIP_PV_200);
251 
252  //---------------------------------------------------------
253  // WWV0b id cut
254  //---------------------------------------------------------
256  (1ll<<ELEID_VBTF_35X_80) ;
257 
258  //---------------------------------------------------------
259  // WWV0b isolation cut
260  //---------------------------------------------------------
262  (1ll<<ELEISO_REL010);
263 
264  //---------------------------------------------------------
265  // WWV0b selection
266  //--------------------------------------------------------
268  electronSelection_wwV0b_base |
269  electronSelection_wwV0b_ip |
270  electronSelection_wwV0b_id |
272 
273  //---------------------------------------------------------
274  // WWV0b fakeable object baseline definition
275  //---------------------------------------------------------
278 
279  //---------------------------------------------------------
280  // WWV0b fakeable object definition v1
281  // extrapolating in isolation and id
282  //---------------------------------------------------------
284  electronSelectionFO_wwV0b_baseline |
285  (1ll<<ELEISO_REL040);
286 
287  //---------------------------------------------------------
288  // WWV0b fakeable object definition v2
289  // extrapolating in id
290  //---------------------------------------------------------
292  electronSelectionFO_wwV0b_baseline |
294 
295  //---------------------------------------------------------
296  // WWV0b fakeable object definition v3
297  // extrapolating in iso
298  //---------------------------------------------------------
300  electronSelectionFO_wwV0b_baseline |
301  electronSelection_wwV0b_id |
302  (1ll<<ELEISO_REL100);
303 
304  //---------------------------------------------------------
305  // WWV0b fakeable object definition v4
306  // extrapolating in iso
307  //---------------------------------------------------------
309  electronSelectionFO_wwV0b_baseline |
310  (1ll<<ELEID_VBTF_35X_90) |
311  (1ll<<ELEISO_REL100);
312 
313  //--------end of WW V0b cuts--------------------------------
314 
315  //---------------------------------------------------------
316  // WWV1 base cut
317  //---------------------------------------------------------
319  (1ll<<ELEETA_250) ;
320 
321  //---------------------------------------------------------
322  // WWV1 convrej
323  //---------------------------------------------------------
325  (1ll<<ELENOTCONV_DISTDCOT002) |
327 
328  //---------------------------------------------------------
329  // WWV1 impact parameter cut
330  //---------------------------------------------------------
332  (1ll<<ELEIP_PV_wwV1);
333 
334  //---------------------------------------------------------
335  // WWV1 id cut
336  //---------------------------------------------------------
338  (1ll<<ELEID_VBTF_35X_80) ;
339 
340  //---------------------------------------------------------
341  // WWV1 isolation cut
342  //---------------------------------------------------------
344  (1ll<<ELEISO_REL010);
345 
346  //---------------------------------------------------------
347  // WWV1 selection
348  //--------------------------------------------------------
350  electronSelection_wwV1_base |
351  electronSelection_wwV1_convrej |
352  electronSelection_wwV1_ip |
353  electronSelection_wwV1_id |
355 
356  //---------------------------------------------------------
357  // WWV1 fakeable object baseline definition
358  //---------------------------------------------------------
360  electronSelection_wwV1_base |
362 
363 
364  //---------------------------------------------------------
365  // WWV1 fakeable object definition v1
366  // extrapolating in isolation and id
367  //---------------------------------------------------------
369  electronSelectionFO_wwV1_baseline |
370  (1ll<<ELEISO_REL040);
371 
372  //---------------------------------------------------------
373  // WWV1 fakeable object definition v2
374  // extrapolating in id
375  //---------------------------------------------------------
377  electronSelectionFO_wwV1_baseline |
379 
380  //---------------------------------------------------------
381  // WWV1 fakeable object definition v3
382  // extrapolating in iso
383  //---------------------------------------------------------
385  electronSelectionFO_wwV1_baseline |
386  electronSelection_wwV1_id |
387  (1ll<<ELEISO_REL100);
388 
389  //---------------------------------------------------------
390  // WWV1 fakeable object definition v4
391  // extrapolating in iso
392  //---------------------------------------------------------
394  electronSelectionFO_wwV1_baseline |
395  (1ll<<ELEID_VBTF_35X_90) |
396  (1ll<<ELEISO_REL100);
397 
398  //--------end of WW V1 cuts--------------------------------
399 
400 
401  //--------SMURF V2 cuts--------------------------------
403  electronSelection_wwV1_base |
404  electronSelection_wwV1_convrej |
407  (1ll<<ELEISO_RELNT010);
409  electronSelection_wwV1_id |
410  (1ll<<ELEID_SMURFV2_EXTRA);
412  electronSelection_smurfV2_baseline |
413  electronSelection_smurfV2_iso |
415  //--------end of SMURF V2 cuts--------------------------------
416 
417  //--------SMURF V3 cuts--------------------------------
419  (1ll<<ELEIP_PV_SMURFV3);
421  electronSelection_wwV1_base |
425  (1ll<<ELENOTCONV_MIT);
427  (1ll<<ELEISO_RELNT010);
429  (1ll<<ELEID_VBTF_80_NOHOEEND) |
430  (1ll<<ELEID_SMURFV3_EXTRA);
431 
433  electronSelection_smurfV3_baseline |
434  electronSelection_smurfV3_convrej |
435  electronSelection_smurfV3_iso |
437  //--------end of SMURF V3 cuts--------------------------------
438 
439  //--------SMURF V4 cuts--------------------------------
441  (1ll<<ELEIP_PV_SMURFV3) | (1ll<<ELEIP_PV_DZ_1MM);
443  electronSelection_wwV1_base |
447  (1ll<<ELENOTCONV_MIT);
449  (1ll<<ELEISO_SMURFV4);
451  (1ll<<ELEID_VBTF_80_NOHOEEND) |
452  (1ll<<ELEID_SMURFV3_EXTRA);
454  electronSelection_smurfV4_baseline |
455  electronSelection_smurfV4_convrej |
456  electronSelection_smurfV4_iso |
458  //--------end of SMURF V4 cuts--------------------------------
459 
460  //--------SMURF V5 cuts--------------------------------
462  (1ll<<ELEIP_PV_SMURFV3) | (1ll<<ELEIP_PV_DZ_1MM);
464  electronSelection_wwV1_base |
468  (1ll<<ELENOTCONV_MIT);
470  (1ll<<ELEISO_SMURFV5);
472  (1ll<<ELEID_VBTF_80_NOHOEEND) |
473  (1ll<<ELEID_SMURFV3_EXTRA);
475  electronSelection_smurfV5_baseline |
476  electronSelection_smurfV5_convrej |
477  electronSelection_smurfV5_iso |
481  //--------end of SMURF V5 cuts--------------------------------
482 
483  //--------SMURF FakableObject cuts--------------------------------
485  (1ll<<ELEETA_250) | (1ll<<ELEIP_PV_DZ_1MM) |
487  //---------------------------------------------------------
488  // Fakeable object definition (option V3)
489  // extrapolating in isolation as much as the trigger allows
490  // *! USE WITH CARE !*
491  //---------------------------------------------------------
493  electronSelectionFO_el_smurf_base |
494  (1ll<<ELEID_VBTF_80_NOHOEEND);
495  //---------------------------------------------------------
496  // Fakeable object definition (option V1)
497  // extrapolating in isolation as much as the trigger allows
498  // and in partial id
499  // *! USE WITH CARE !*
500  //---------------------------------------------------------
502  electronSelectionFO_el_smurf_base |
503  (1ll<<ELEID_VBTF_90_HLT);
504  //---------------------------------------------------------
505  // Fakeable object definition (option V4)
506  // extrapolating in partial id and partial isolation
507  //---------------------------------------------------------
509  electronSelectionFO_el_smurf_base |
510  (1ll<<ELEID_VBTF_90_HLT) |
511  (1ll<<ELEISO_TRK_RELNT020) |
512  (1ll<<ELEISO_ECAL_RELNT020) |
513  (1ll<<ELEISO_HCAL_RELNT020);
514  //---------------------------------------------------------
515  // Fakeable object definition (option V2)
516  // extrapolating in partial id
517  //---------------------------------------------------------
519  electronSelectionFO_el_smurf_base |
520  (1ll<<ELEID_VBTF_90_HLT) |
521  (1ll<<ELEISO_RELNT010);
522  //--------end of SMURF FakableObject cuts------------------
523 
524 
526  // enums for internal use //
528 
539  };
540 
542  ISECALENERGYCORRECTED, // if false, the electron "ecalEnergy" is just the supercluster energy
543  ISMOMENTUMCORRECTED, // has E-p combination been applied
546  };
547 
553  };
554 
555  namespace wp2012 {
557  DETAIN = (1<<0),
558  DPHIIN = (1<<1),
559  SIGMAIETAIETA = (1<<2),
560  HOE = (1<<3),
561  OOEMOOP = (1<<4),
562  D0VTX = (1<<5),
563  DZVTX = (1<<6),
564  ISO = (1<<7),
565  VTXFIT = (1<<8),
566  MHITS = (1<<9)
567  };
569  | OOEMOOP | D0VTX | DZVTX | ISO | VTXFIT | MHITS;
570 
572  | OOEMOOP | D0VTX | DZVTX | VTXFIT | MHITS;
573 
575 
577  | OOEMOOP | DZVTX | VTXFIT | MHITS;
578  }
579 
580 
581  // master selection function
582  bool pass_electronSelectionCompareMask(HWW&, const cuts_t cuts_passed, const cuts_t selectionType);
583  bool pass_electronSelection(HWW&, const unsigned int index, const cuts_t selectionType, bool applyAlignmentCorrection = false, bool removedEtaCutInEndcap = false, bool useGsfTrack = true);
584  cuts_t electronSelection(HWW&, const unsigned int index, bool applyAlignmentCorrection = false, bool removedEtaCutInEndcap = false, bool useGsfTrack = true);
585 
586  // "smurf" electron id
587  // WARNING!!! this is not the full smurf selection, just the additional ID on top of VBTF80 for low pt guys
588  bool electronId_smurf_v1(HWW&, const unsigned int index);
589  bool electronId_smurf_v2(HWW&, const unsigned int index);
590  bool electronId_smurf_v3(HWW&, const unsigned int index);
591 
592  // WP2012
593  electronIdComponent_t electronId_WP2012(HWW&, const unsigned int index, const wp2012_tightness tightness);
594  electronIdComponent_t electronId_WP2012_v2(HWW&, const unsigned int index, const wp2012_tightness tightness, bool useOldIsolation = false);
595  electronIdComponent_t electronId_WP2012_v3(HWW&, const unsigned int index, const wp2012_tightness tightness, bool useOldIsolation = false);
596  electronIdComponent_t electronId_WP2012_noIso_useElEtaForIsEB(HWW&, const unsigned int index, const wp2012_tightness tightness); // same as v2 except uses el->eta() to determine isEB and no iso
597 
598  // "VBTF" id
599  electronIdComponent_t electronId_VBTF(HWW&, const unsigned int index, const vbtf_tightness tightness, bool applyAlignementCorrection = false, bool removedEtaCutInEndcap = false);
600 
601  // "CIC" id
602  electronIdComponent_t electronId_CIC(HWW&, const unsigned int index, const unsigned int version, const cic_tightness tightness, bool applyAlignementCorrection = false, bool removedEtaCutInEndcap =false);
603 
604  bool passLikelihoodId_v2(HWW&, unsigned int index, float lhValue, int workingPoint);
605 
606  float electronIsolation_rel(HWW&, const unsigned int index, bool use_calo_iso);
607  float electronIsoValuePF(HWW&, const unsigned int iel, unsigned int ivtx, float coner=0.4, float minptn=1.0, float dzcut=0.1,
608  float footprintdr=0.07, float gammastripveto=0.025, float elestripveto=-999., int filterId = 0);
609 
610  // conversion rejection
611  bool isFromConversionHitPattern(HWW&, const unsigned int index);
612  bool isFromConversionPartnerTrack(HWW&, const unsigned int index);
613  bool isFromConversionMIT(HWW&, const unsigned int index);
614 
615  bool isChargeFlip3agree(HWW&, int elIndex);
616 
617  // spike rejection for electrons
618  bool isSpikeElectron(HWW&, const unsigned int index);
619 
620  // position correction for electrons
621  void electronCorrection_pos(HWW&, const unsigned int index, float &dEtaIn, float &dPhiIn);
622 
623  // d0 corrected by the primary vertex
624  double electron_d0PV_wwV1(HWW&, unsigned int index);
625  double electron_dzPV_wwV1(HWW&, unsigned int index);
626  double electron_d0PV_smurfV3(HWW&, unsigned int index);
627  double electron_dzPV_smurfV3(HWW&, unsigned int index);
628 
629  // dz
630  double dzPV(const LorentzVector& vtx, const LorentzVector& p4, const LorentzVector& pv);
631 
632  //
633  // 2012 PF Iso
634  //
635 
636  void electronIsoValuePF2012(HWW&, float &pfiso_ch, float &pfiso_em, float &pfiso_nh, const float R, const unsigned int iel, const int ivtx, bool barrelVetoes = false);
637  void electronIsoValuePF2012reco(HWW&, float &pfiso_ch, float &pfiso_em, float &pfiso_nh, const float R, const unsigned int iel, const int ivtx, float neutral_threshold = 0.5);
638  float electronIsoValuePF2012_FastJetEffArea(HWW&, int index , float conesize = 0.3, int ivtx = 0);
639  float electronIsoValuePF2012_FastJetEffArea_v2(HWW&, int index, float conesize = 0.3, int ivtx = 0, bool useOldIsolation = false);
640  float electronIsoValuePF2012_FastJetEffArea_v3(HWW&, int index, float conesize = 0.3, int ivtx = 0, bool useOldIsolation = false);
641  float electronRadialIsolation(HWW&, int index, float &chiso, float &nhiso, float &emiso, float neutral_et_threshold = 1.0, float cone_size = 0.3, bool barrelVetoes = false, bool verbose = false);
642 
644  float fastJetEffArea04_v1(HWW&, const float eta);
645 
646 }
647 #endif
bool electronId_smurf_v2(HWW &, const unsigned int index)
static const cuts_t electronSelection_smurfV6
float electronIsoValuePF2012_FastJetEffArea_v2(HWW &, int index, float conesize=0.3, int ivtx=0, bool useOldIsolation=false)
static const cuts_t electronSelection_smurfV3
static const cuts_t electronSelection_wwV0b_id
static const cuts_t electronSelectionFO_el_wwV1_v1
float electronIsolation_rel(HWW &, const unsigned int index, bool use_calo_iso)
uint64 electronIdComponent_t
static const cuts_t electronSelection_smurfV5_iso
static const cuts_t electronSelection_smurfV2_baseline
bool isSpikeElectron(HWW &, const unsigned int index)
static const cuts_t electronSelectionFO_el_wwV0b_v2
double electron_dzPV_wwV1(HWW &, unsigned int index)
float fastJetEffArea04_v1(HWW &, const float eta)
float electronIsoValuePF2012_FastJetEffArea(HWW &, int index, float conesize=0.3, int ivtx=0)
bool passLikelihoodId_v2(HWW &, unsigned int index, float lhValue, int workingPoint)
ULong64_t uint64
bool pass_electronSelectionCompareMask(HWW &, const cuts_t cuts_passed, const cuts_t selectionType)
electronIdComponent_t electronId_WP2012_v2(HWW &, const unsigned int index, const wp2012_tightness tightness, bool useOldIsolation=false)
static const cuts_t electronSelectionFO_wwV0b_baseline
static const cuts_t electronSelection_wwV0_iso
static const cuts_t electronSelection_smurfV5_ip
static const cuts_t electronSelection_smurfV4_convrej
static const cuts_t electronSelectionFO_el_wwV1_v2
static const cuts_t electronSelection_wwV1_convrej
static const cuts_t electronSelection_wwV0b_iso
static const cuts_t electronSelectionFO_el_smurf_base
float electronIsoValuePF(HWW &, const unsigned int iel, unsigned int ivtx, float coner=0.4, float minptn=1.0, float dzcut=0.1, float footprintdr=0.07, float gammastripveto=0.025, float elestripveto=-999., int filterId=0)
static const cuts_t electronSelection_ww_iso
float electronIsoValuePF2012_FastJetEffArea_HWW(HWW &, int index)
electronIdComponent_t electronId_VBTF(HWW &, const unsigned int index, const vbtf_tightness tightness, bool applyAlignementCorrection=false, bool removedEtaCutInEndcap=false)
static const cuts_t electronSelection_smurfV4_id
double electron_dzPV_smurfV3(HWW &, unsigned int index)
cuts_t electronSelection(HWW &, const unsigned int index, bool applyAlignmentCorrection=false, bool removedEtaCutInEndcap=false, bool useGsfTrack=true)
float electronRadialIsolation(HWW &, int index, float &chiso, float &nhiso, float &emiso, float neutral_et_threshold=1.0, float cone_size=0.3, bool barrelVetoes=false, bool verbose=false)
static const electronIdComponent_t PassWP2012CutsNoIso
static const electronIdComponent_t PassWP2012CutsIso
static const cuts_t electronSelection_wwV1_ip
static const cuts_t electronSelection_smurfV2_id
void checkElectronSelections(void)
static const cuts_t electronSelection_smurfV5_convrej
static const cuts_t electronSelection_wwV0_id
void electronIsoValuePF2012reco(HWW &, float &pfiso_ch, float &pfiso_em, float &pfiso_nh, const float R, const unsigned int iel, const int ivtx, float neutral_threshold=0.5)
static const cuts_t electronSelectionFO_el_wwV0_v2
static const cuts_t electronSelection_smurfV4_iso
static const cuts_t electronSelectionFO_el_smurf_v1
static const cuts_t electronSelection_wwV1_id
double p4[4]
Definition: TauolaWrapper.h:92
double electron_d0PV_smurfV3(HWW &, unsigned int index)
static const cuts_t electronSelection_smurfV3_id
static const cuts_t electronSelection_wwV1
static const cuts_t electronSelection_smurfV5_baseline
static const cuts_t electronSelection_smurfV3_convrej
static const cuts_t electronSelectionFO_wwV0_baseline
double electron_d0PV_wwV1(HWW &, unsigned int index)
static const cuts_t electronSelection_smurfV3_iso
bool electronId_smurf_v1(HWW &, const unsigned int index)
bool isFromConversionHitPattern(HWW &, const unsigned int index)
static const cuts_t electronSelectionFO_el_smurf_v3
static const cuts_t electronSelection_ww_ip
electronIdComponent_t electronId_CIC(HWW &, const unsigned int index, const unsigned int version, const cic_tightness tightness, bool applyAlignementCorrection=false, bool removedEtaCutInEndcap=false)
bool pass_electronSelection(HWW &, const unsigned int index, const cuts_t selectionType, bool applyAlignmentCorrection=false, bool removedEtaCutInEndcap=false, bool useGsfTrack=true)
Definition: HWW.h:12
static const cuts_t electronSelectionFO_el_wwV1_v3
static const cuts_t electronSelection_smurfV4_baseline
static const electronIdComponent_t PassWP2012CutsNoIsoNoIP
static const cuts_t electronSelection_smurfV2_iso
static const cuts_t electronSelectionFO_el_smurf_v4
electronIdComponent_t electronId_WP2012_noIso_useElEtaForIsEB(HWW &, const unsigned int index, const wp2012_tightness tightness)
float electronIsoValuePF2012_FastJetEffArea_v3(HWW &, int index, float conesize=0.3, int ivtx=0, bool useOldIsolation=false)
static const electronIdComponent_t PassAllWP2012Cuts
static const cuts_t electronSelectionFO_el_wwV0b_v4
bool isFromConversionMIT(HWW &, const unsigned int index)
static const cuts_t electronSelectionFO_el_wwV0b_v3
static const cuts_t electronSelectionFO_el_wwV0_v3
static const cuts_t electronSelection_smurfV4
static const cuts_t electronSelectionFO_el_wwV1_v4
static const cuts_t electronSelection_wwV0_ip
static const cuts_t electronSelection_smurfV3_ip
static const cuts_t electronSelection_smurfV4_ip
static const cuts_t electronSelection_wwV0
static const cuts_t electronSelectionFO_wwV1_baseline
double dzPV(const LorentzVector &vtx, const LorentzVector &p4, const LorentzVector &pv)
static const cuts_t electronSelection_smurfV2
static const cuts_t electronSelection_wwV0_base
static const cuts_t electronSelection_wwV0b_ip
static const cuts_t electronSelectionFO_el_wwV0b_v1
static const cuts_t electronSelection_smurfV5
bool electronId_smurf_v3(HWW &, const unsigned int index)
static const cuts_t electronSelection_smurfV3_baseline
uint64 cuts_t
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > LorentzVector
Definition: pfjetMVAtools.h:10
electronIdComponent_t electronId_WP2012(HWW &, const unsigned int index, const wp2012_tightness tightness)
static const cuts_t electronSelection_wwV0b_base
bool isChargeFlip3agree(HWW &, int elIndex)
void electronCorrection_pos(HWW &, const unsigned int index, float &dEtaIn, float &dPhiIn)
static const cuts_t electronSelection_wwV0b
static const cuts_t electronSelection_wwV1_base
static const cuts_t electronSelection_smurfV5_id
static const cuts_t electronSelectionFO_el_smurf_v2
bool isFromConversionPartnerTrack(HWW &, const unsigned int index)
static const cuts_t electronSelectionFO_el_wwV0_v4
static const cuts_t electronSelectionFO_el_wwV0_v1
electronIdComponent_t electronId_WP2012_v3(HWW &, const unsigned int index, const wp2012_tightness tightness, bool useOldIsolation=false)
void electronIsoValuePF2012(HWW &, float &pfiso_ch, float &pfiso_em, float &pfiso_nh, const float R, const unsigned int iel, const int ivtx, bool barrelVetoes=false)
static const cuts_t electronSelection_wwV1_iso