CMS 3D CMS Logo

GsfElectron.h
Go to the documentation of this file.
1 #ifndef GsfElectron_h
2 #define GsfElectron_h
3 
8 //#include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
15 //#include "DataFormats/Math/interface/LorentzVector.h"
18 #include <vector>
19 #include <limits>
20 #include <numeric>
21 
22 namespace reco {
23 
24  /****************************************************************************
25  * \class reco::GsfElectron
26  *
27  * An Electron with a GsfTrack seeded from an ElectronSeed.
28  * Renamed from PixelMatchGsfElectron.
29  * Originally adapted from the TRecElectron class in ORCA.
30  *
31  * \author Claude Charlot - Laboratoire Leprince-Ringuet - École polytechnique, CNRS/IN2P3
32  * \author David Chamont - Laboratoire Leprince-Ringuet - École polytechnique, CNRS/IN2P3
33  *
34  ****************************************************************************/
35 
36  class GsfElectron : public RecoCandidate {
37  //=======================================================
38  // Constructors
39  //
40  // The clone() method with arguments, and the copy
41  // constructor with edm references is designed for
42  // someone which want to duplicates all
43  // collections.
44  //=======================================================
45 
46  public:
47  // some nested structures defined later on
48  struct ChargeInfo;
49  struct TrackClusterMatching;
50  struct TrackExtrapolations;
51  struct ClosestCtfTrack;
52  struct FiducialFlags;
53  struct ShowerShape;
54  struct IsolationVariables;
55  struct ConversionRejection;
57  struct SaturationInfo;
58 
59  GsfElectron();
61  GsfElectron(const GsfElectron &, const GsfElectronCoreRef &);
63  const GsfElectronCoreRef &core,
66  const TrackBaseRef &conversionPartner,
67  const GsfTrackRefVector &ambiguousTracks);
68  GsfElectron(int charge,
69  const ChargeInfo &,
70  const GsfElectronCoreRef &,
71  const TrackClusterMatching &,
72  const TrackExtrapolations &,
73  const ClosestCtfTrack &,
74  const FiducialFlags &,
75  const ShowerShape &,
76  const ConversionRejection &);
77  GsfElectron(int charge,
78  const ChargeInfo &,
79  const GsfElectronCoreRef &,
80  const TrackClusterMatching &,
81  const TrackExtrapolations &,
82  const ClosestCtfTrack &,
83  const FiducialFlags &,
84  const ShowerShape &,
85  const ShowerShape &,
86  const ConversionRejection &,
87  const SaturationInfo &);
88  GsfElectron *clone() const override;
92  const TrackBaseRef &conversionPartner,
93  const GsfTrackRefVector &ambiguousTracks) const;
94  ~GsfElectron() override{};
95 
96  private:
97  void init();
98 
99  //=======================================================
100  // Candidate methods and complementary information
101  //
102  // The gsf electron producer has tried to best evaluate
103  // the four momentum and charge and given those values to
104  // the GsfElectron constructor, which forwarded them to
105  // the Candidate constructor. Those values can be retreived
106  // with getters inherited from Candidate : p4() and charge().
107  //=======================================================
108 
109  public:
110  // Inherited from Candidate
111  // const LorentzVector & charge() const ;
112  // const LorentzVector & p4() const ;
113 
114  // Complementary struct
115  struct ChargeInfo {
116  int scPixCharge;
119  bool isGsfCtfConsistent;
120  ChargeInfo()
122  };
123 
124  // Charge info accessors
125  // to get gsf track charge: gsfTrack()->charge()
126  // to get ctf track charge, if closestCtfTrackRef().isNonnull(): closestCtfTrackRef()->charge()
127  int scPixCharge() const { return chargeInfo_.scPixCharge; }
131  const ChargeInfo &chargeInfo() const { return chargeInfo_; }
132 
133  // Candidate redefined methods
134  bool isElectron() const override { return true; }
135  bool overlap(const Candidate &) const override;
136 
137  private:
138  // Complementary attributes
140 
141  //=======================================================
142  // Core Attributes
143  //
144  // They all have been computed before, when building the
145  // collection of GsfElectronCore instances. Each GsfElectron
146  // has a reference toward a GsfElectronCore.
147  //=======================================================
148 
149  public:
150  // accessors
151  virtual GsfElectronCoreRef core() const;
152  void setCore(const reco::GsfElectronCoreRef &core) { core_ = core; }
153 
154  // forward core methods
155  SuperClusterRef superCluster() const override { return core()->superCluster(); }
156  GsfTrackRef gsfTrack() const override { return core()->gsfTrack(); }
157  float ctfGsfOverlap() const { return core()->ctfGsfOverlap(); }
158  bool ecalDrivenSeed() const { return core()->ecalDrivenSeed(); }
159  bool trackerDrivenSeed() const { return core()->trackerDrivenSeed(); }
160  virtual SuperClusterRef parentSuperCluster() const { return core()->parentSuperCluster(); }
161  bool closestCtfTrackRefValid() const {
163  }
164  //methods used for MVA variables
165  float closestCtfTrackNormChi2() const {
166  return closestCtfTrackRefValid() ? closestCtfTrackRef()->normalizedChi2() : 0;
167  }
169  return closestCtfTrackRefValid() ? closestCtfTrackRef()->hitPattern().trackerLayersWithMeasurement() : -1;
170  }
171 
172  // backward compatibility
174  TrackRef ctfTrack; // best matching ctf track
175  float shFracInnerHits; // fraction of common hits between the ctf and gsf tracks
178  };
179  float shFracInnerHits() const { return core()->ctfGsfOverlap(); }
180  virtual TrackRef closestCtfTrackRef() const { return core()->ctfTrack(); }
183  }
184 
185  private:
186  // attributes
188 
189  //=======================================================
190  // Track-Cluster Matching Attributes
191  //=======================================================
192 
193  public:
194  struct TrackClusterMatching {
195  CaloClusterPtr electronCluster; // basic cluster best matching gsf track
196  float eSuperClusterOverP; // the supercluster energy / track momentum at the PCA to the beam spot
197  float eSeedClusterOverP; // the seed cluster energy / track momentum at the PCA to the beam spot
198  float eSeedClusterOverPout; // the seed cluster energy / track momentum at calo extrapolated from the outermost track state
199  float eEleClusterOverPout; // the electron cluster energy / track momentum at calo extrapolated from the outermost track state
200  float deltaEtaSuperClusterAtVtx; // the supercluster eta - track eta position at calo extrapolated from innermost track state
201  float deltaEtaSeedClusterAtCalo; // the seed cluster eta - track eta position at calo extrapolated from the outermost track state
202  float deltaEtaEleClusterAtCalo; // the electron cluster eta - track eta position at calo extrapolated from the outermost state
203  float deltaPhiEleClusterAtCalo; // the electron cluster phi - track phi position at calo extrapolated from the outermost track state
204  float deltaPhiSuperClusterAtVtx; // the supercluster phi - track phi position at calo extrapolated from the innermost track state
205  float deltaPhiSeedClusterAtCalo; // the seed cluster phi - track phi position at calo extrapolated from the outermost track state
211  deltaEtaSuperClusterAtVtx(std::numeric_limits<float>::max()),
212  deltaEtaSeedClusterAtCalo(std::numeric_limits<float>::max()),
213  deltaEtaEleClusterAtCalo(std::numeric_limits<float>::max()),
214  deltaPhiEleClusterAtCalo(std::numeric_limits<float>::max()),
215  deltaPhiSuperClusterAtVtx(std::numeric_limits<float>::max()),
216  deltaPhiSeedClusterAtCalo(std::numeric_limits<float>::max()) {}
217  };
218 
219  // accessors
232  return superCluster().isNonnull() && superCluster()->seed().isNonnull()
234  superCluster()->seed()->eta()
236  }
238 
239  // for backward compatibility, usefull ?
242 
243  private:
244  // attributes
246 
247  //=======================================================
248  // Track extrapolations
249  //=======================================================
250 
251  public:
252  struct TrackExtrapolations {
253  math::XYZPointF positionAtVtx; // the track PCA to the beam spot
254  math::XYZPointF positionAtCalo; // the track PCA to the supercluster position
255  math::XYZVectorF momentumAtVtx; // the track momentum at the PCA to the beam spot
256  // the track momentum extrapolated at the supercluster position from the innermost track state
258  // the track momentum extrapolated at the seed cluster position from the outermost track state
260  // the track momentum extrapolated at the ele cluster position from the outermost track state
262  math::XYZVectorF momentumAtVtxWithConstraint; // the track momentum at the PCA to the beam spot using bs constraint
263  };
264 
265  // accessors
274  }
276 
277  // setter (if you know what you're doing)
279 
280  // for backward compatibility
283 
284  private:
285  // attributes
287 
288  //=======================================================
289  // SuperCluster direct access
290  //=======================================================
291 
292  public:
293  // direct accessors
294  math::XYZPoint superClusterPosition() const { return superCluster()->position(); } // the super cluster position
295  int basicClustersSize() const {
296  return superCluster()->clustersSize();
297  } // number of basic clusters inside the supercluster
298  CaloCluster_iterator basicClustersBegin() const { return superCluster()->clustersBegin(); }
299  CaloCluster_iterator basicClustersEnd() const { return superCluster()->clustersEnd(); }
300 
301  // for backward compatibility
302  math::XYZPoint caloPosition() const { return superCluster()->position(); }
303 
304  //=======================================================
305  // Fiducial Flags
306  //=======================================================
307 
308  public:
309  struct FiducialFlags {
310  bool isEB; // true if particle is in ECAL Barrel
311  bool isEE; // true if particle is in ECAL Endcaps
312  bool isEBEEGap; // true if particle is in the crack between EB and EE
313  bool isEBEtaGap; // true if particle is in EB, and inside the eta gaps between modules
314  bool isEBPhiGap; // true if particle is in EB, and inside the phi gaps between modules
315  bool isEEDeeGap; // true if particle is in EE, and inside the gaps between dees
316  bool isEERingGap; // true if particle is in EE, and inside the gaps between rings
325  };
326 
327  // accessors
328  bool isEB() const { return fiducialFlags_.isEB; }
329  bool isEE() const { return fiducialFlags_.isEE; }
330  bool isGap() const { return ((isEBEEGap()) || (isEBGap()) || (isEEGap())); }
331  bool isEBEEGap() const { return fiducialFlags_.isEBEEGap; }
332  bool isEBGap() const { return (isEBEtaGap() || isEBPhiGap()); }
333  bool isEBEtaGap() const { return fiducialFlags_.isEBEtaGap; }
334  bool isEBPhiGap() const { return fiducialFlags_.isEBPhiGap; }
335  bool isEEGap() const { return (isEEDeeGap() || isEERingGap()); }
336  bool isEEDeeGap() const { return fiducialFlags_.isEEDeeGap; }
337  bool isEERingGap() const { return fiducialFlags_.isEERingGap; }
338  const FiducialFlags &fiducialFlags() const { return fiducialFlags_; }
339  // setters... not necessary in regular situations
340  // but handy for late stage modifications of electron objects
341  void setFFlagIsEB(const bool b) { fiducialFlags_.isEB = b; }
342  void setFFlagIsEE(const bool b) { fiducialFlags_.isEE = b; }
343  void setFFlagIsEBEEGap(const bool b) { fiducialFlags_.isEBEEGap = b; }
347  void setFFlagIsEERingGap(const bool b) { fiducialFlags_.isEERingGap = b; }
348 
349  private:
350  // attributes
352 
353  //=======================================================
354  // Shower Shape Variables
355  //=======================================================
356 
357  public:
358  struct ShowerShape {
359  float sigmaEtaEta; // weighted cluster rms along eta and inside 5x5 (absolute eta)
360  float sigmaIetaIeta; // weighted cluster rms along eta and inside 5x5 (Xtal eta)
361  float sigmaIphiIphi; // weighted cluster rms along phi and inside 5x5 (Xtal phi)
362  float e1x5; // energy inside 1x5 in etaxphi around the seed Xtal
363  float e2x5Max; // energy inside 2x5 in etaxphi around the seed Xtal (max bwt the 2 possible sums)
364  float e5x5; // energy inside 5x5 in etaxphi around the seed Xtal
365  float r9; // ratio of the 3x3 energy and supercluster energy
366  float hcalDepth1OverEcal; // run2 hcal over ecal seed cluster energy using 1st hcal depth (using hcal towers within a cone)
367  float hcalDepth2OverEcal; // run2 hcal over ecal seed cluster energy using 2nd hcal depth (using hcal towers within a cone)
368  float hcalDepth1OverEcalBc; // run2 hcal over ecal seed cluster energy using 1st hcal depth (using hcal towers behind clusters)
369  float hcalDepth2OverEcalBc; // run2 hcal over ecal seed cluster energy using 2nd hcal depth (using hcal towers behind clusters)
370  std::array<float, 7>
371  hcalOverEcal; // run3 hcal over ecal seed cluster energy per depth (using rechits within a cone)
372  std::array<float, 7>
373  hcalOverEcalBc; // run3 hcal over ecal seed cluster energy per depth (using rechits behind clusters)
374  std::vector<CaloTowerDetId> hcalTowersBehindClusters;
375  bool invalidHcal; // set to true if the hcal energy estimate is not valid (e.g. the corresponding tower was off or masked)
376  bool pre7DepthHcal; // to work around an ioread rule issue on legacy RECO files
378  float eMax;
379  float e2nd;
380  float eTop;
381  float eLeft;
382  float eRight;
383  float eBottom;
384  float e2x5Top;
385  float e2x5Left;
386  float e2x5Right;
387  float e2x5Bottom;
389  : sigmaEtaEta(std::numeric_limits<float>::max()),
390  sigmaIetaIeta(std::numeric_limits<float>::max()),
391  sigmaIphiIphi(std::numeric_limits<float>::max()),
392  e1x5(0.f),
393  e2x5Max(0.f),
394  e5x5(0.f),
395  r9(-std::numeric_limits<float>::max()),
400  hcalOverEcal{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
401  hcalOverEcalBc{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
402  invalidHcal(false),
403  pre7DepthHcal(true),
404  sigmaIetaIphi(0.f),
405  eMax(0.f),
406  e2nd(0.f),
407  eTop(0.f),
408  eLeft(0.f),
409  eRight(0.f),
410  eBottom(0.f),
411  e2x5Top(0.f),
412  e2x5Left(0.f),
413  e2x5Right(0.f),
414  e2x5Bottom(0.f) {}
415  };
416 
417  // accessors
418  float sigmaEtaEta() const { return showerShape_.sigmaEtaEta; }
419  float sigmaIetaIeta() const { return showerShape_.sigmaIetaIeta; }
420  float sigmaIphiIphi() const { return showerShape_.sigmaIphiIphi; }
421  float e1x5() const { return showerShape_.e1x5; }
422  float e2x5Max() const { return showerShape_.e2x5Max; }
423  float e5x5() const { return showerShape_.e5x5; }
424  float r9() const { return showerShape_.r9; }
425  float hcalOverEcal(const ShowerShape &ss, int depth) const {
426  if (ss.pre7DepthHcal) {
427  if (depth == 0)
428  return ss.hcalDepth1OverEcal + ss.hcalDepth2OverEcal;
429  else if (depth == 1)
430  return ss.hcalDepth1OverEcal;
431  else if (depth == 2)
432  return ss.hcalDepth2OverEcal;
433 
434  return 0.f;
435  } else {
436  const auto &hovere = ss.hcalOverEcal;
437  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hovere), std::end(hovere), 0.f)
438  : hovere[depth - 1];
439  }
440  }
441  float hcalOverEcal(int depth = 0) const { return hcalOverEcal(showerShape_, depth); }
442  float hcalOverEcalBc(const ShowerShape &ss, int depth) const {
443  if (ss.pre7DepthHcal) {
444  if (depth == 0)
445  return ss.hcalDepth1OverEcalBc + ss.hcalDepth2OverEcalBc;
446  else if (depth == 1)
447  return ss.hcalDepth1OverEcalBc;
448  else if (depth == 2)
449  return ss.hcalDepth2OverEcalBc;
450 
451  return 0.f;
452  } else {
453  const auto &hovere = ss.hcalOverEcalBc;
454  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hovere), std::end(hovere), 0.f)
455  : hovere[depth - 1];
456  }
457  }
458  float hcalOverEcalBc(int depth = 0) const { return hcalOverEcalBc(showerShape_, depth); }
459  const std::vector<CaloTowerDetId> &hcalTowersBehindClusters() const {
461  }
462  bool hcalOverEcalValid() const { return !showerShape_.invalidHcal; }
463  float eLeft() const { return showerShape_.eLeft; }
464  float eRight() const { return showerShape_.eRight; }
465  float eTop() const { return showerShape_.eTop; }
466  float eBottom() const { return showerShape_.eBottom; }
467  const ShowerShape &showerShape() const { return showerShape_; }
468  // non-zero-suppressed and no-fractions shower shapes
469  // ecal energy is always that from the full 5x5
473  float full5x5_e1x5() const { return full5x5_showerShape_.e1x5; }
474  float full5x5_e2x5Max() const { return full5x5_showerShape_.e2x5Max; }
475  float full5x5_e5x5() const { return full5x5_showerShape_.e5x5; }
476  float full5x5_r9() const { return full5x5_showerShape_.r9; }
477  float full5x5_hcalOverEcal(int depth = 0) const { return hcalOverEcal(full5x5_showerShape_, depth); }
482  float full5x5_e2x5Top() const { return full5x5_showerShape_.e2x5Top; }
484  float full5x5_eLeft() const { return full5x5_showerShape_.eLeft; }
485  float full5x5_eRight() const { return full5x5_showerShape_.eRight; }
486  float full5x5_eTop() const { return full5x5_showerShape_.eTop; }
487  float full5x5_eBottom() const { return full5x5_showerShape_.eBottom; }
489 
490  // setters (if you know what you're doing)
493 
494  // for backward compatibility (this will only ever be the ZS shapes!)
495  float scSigmaEtaEta() const { return sigmaEtaEta(); }
496  float scSigmaIEtaIEta() const { return sigmaIetaIeta(); }
497  float scE1x5() const { return e1x5(); }
498  float scE2x5Max() const { return e2x5Max(); }
499  float scE5x5() const { return e5x5(); }
500  float hadronicOverEm() const { return hcalOverEcal(); }
501 
502  private:
503  // attributes
506 
507  //=======================================================
508  // SaturationInfo
509  //=======================================================
510 
511  public:
512  struct SaturationInfo {
514  bool isSeedSaturated;
516  };
517 
518  // accessors
519  float nSaturatedXtals() const { return saturationInfo_.nSaturatedXtals; }
521  const SaturationInfo &saturationInfo() const { return saturationInfo_; }
523 
524  private:
526 
527  //=======================================================
528  // Isolation Variables
529  //=======================================================
530 
531  public:
532  struct IsolationVariables {
533  float tkSumPt; // track iso with electron footprint removed
534  float tkSumPtHEEP; // track iso used for the HEEP ID
535  float ecalRecHitSumEt; // ecal iso deposit with electron footprint removed
536  float hcalDepth1TowerSumEt; // hcal depth 1 iso deposit with electron footprint removed
537  float hcalDepth2TowerSumEt; // hcal depth 2 iso deposit with electron footprint removed
538  float hcalDepth1TowerSumEtBc; // hcal depth 1 iso deposit without towers behind clusters
539  float hcalDepth2TowerSumEtBc; // hcal depth 2 iso deposit without towers behind clusters
540  std::array<float, 7> hcalRecHitSumEt; // ...per depth, with electron footprint removed
541  std::array<float, 7> hcalRecHitSumEtBc; // ...per depth, with hcal rechit behind cluster removed
542  bool pre7DepthHcal; // to work around an ioread rule issue on legacy RECO files
544  : tkSumPt(0.),
551  hcalRecHitSumEt{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
552  hcalRecHitSumEtBc{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
553  pre7DepthHcal(true) {}
554  };
555 
556  // 03 accessors
557  float dr03TkSumPt() const { return dr03_.tkSumPt; }
558  float dr03TkSumPtHEEP() const { return dr03_.tkSumPtHEEP; }
559  float dr03EcalRecHitSumEt() const { return dr03_.ecalRecHitSumEt; }
560  float hcalTowerSumEt(const IsolationVariables &iv, int depth) const {
561  if (iv.pre7DepthHcal) {
562  if (depth == 0)
563  return iv.hcalDepth1TowerSumEt + iv.hcalDepth1TowerSumEt;
564  else if (depth == 1)
565  return iv.hcalDepth1TowerSumEt;
566  else if (depth == 2)
567  return iv.hcalDepth2TowerSumEt;
568 
569  return 0.f;
570  } else {
571  const auto &hcaliso = iv.hcalRecHitSumEt;
572  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hcaliso), std::end(hcaliso), 0.f)
573  : hcaliso[depth - 1];
574  }
575  }
576  float dr03HcalTowerSumEt(int depth = 0) const { return hcalTowerSumEt(dr03_, depth); }
577  float hcalTowerSumEtBc(const IsolationVariables &iv, int depth) const {
578  if (iv.pre7DepthHcal) {
579  if (depth == 0)
580  return iv.hcalDepth1TowerSumEtBc + iv.hcalDepth1TowerSumEtBc;
581  else if (depth == 1)
582  return iv.hcalDepth1TowerSumEtBc;
583  else if (depth == 2)
584  return iv.hcalDepth2TowerSumEtBc;
585 
586  return 0.f;
587  } else {
588  const auto &hcaliso = iv.hcalRecHitSumEtBc;
589  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hcaliso), std::end(hcaliso), 0.f)
590  : hcaliso[depth - 1];
591  }
592  }
593  float dr03HcalTowerSumEtBc(int depth = 0) const { return hcalTowerSumEtBc(dr03_, depth); }
594  const IsolationVariables &dr03IsolationVariables() const { return dr03_; }
595 
596  // 04 accessors
597  float dr04TkSumPt() const { return dr04_.tkSumPt; }
598  float dr04TkSumPtHEEP() const { return dr04_.tkSumPtHEEP; }
599  float dr04EcalRecHitSumEt() const { return dr04_.ecalRecHitSumEt; }
600  float dr04HcalTowerSumEt(int depth = 0) const { return hcalTowerSumEt(dr04_, depth); }
601  float dr04HcalTowerSumEtBc(int depth = 0) const { return hcalTowerSumEtBc(dr04_, depth); }
603 
604  // setters ?!?
605  void setDr03Isolation(const IsolationVariables &dr03) { dr03_ = dr03; }
606  void setDr04Isolation(const IsolationVariables &dr04) { dr04_ = dr04; }
607 
608  // for backward compatibility
609  void setIsolation03(const IsolationVariables &dr03) { dr03_ = dr03; }
610  void setIsolation04(const IsolationVariables &dr04) { dr04_ = dr04; }
611  const IsolationVariables &isolationVariables03() const { return dr03_; }
612  const IsolationVariables &isolationVariables04() const { return dr04_; }
613 
614  // go back to run2-like 2 effective depths if desired - depth 1 is the normal depth 1, depth 2 is the sum over the rest
615  void hcalToRun2EffDepth();
616 
617  private:
618  // attributes
621 
622  //=======================================================
623  // Conversion Rejection Information
624  //=======================================================
625 
626  public:
628  int flags; // -max:not-computed, other: as computed by Puneeth conversion code
629  TrackBaseRef partner; // conversion partner
630  float dist; // distance to the conversion partner
631  float dcot; // difference of cot(angle) with the conversion partner track
632  float radius; // signed conversion radius
633  float vtxFitProb; //fit probablity (chi2/ndof) of the matched conversion vtx
635  : flags(-1),
636  dist(std::numeric_limits<float>::max()),
637  dcot(std::numeric_limits<float>::max()),
638  radius(std::numeric_limits<float>::max()),
639  vtxFitProb(std::numeric_limits<float>::max()) {}
640  };
641 
642  // accessors
643  int convFlags() const { return conversionRejection_.flags; }
645  float convDist() const { return conversionRejection_.dist; }
646  float convDcot() const { return conversionRejection_.dcot; }
647  float convRadius() const { return conversionRejection_.radius; }
648  float convVtxFitProb() const { return conversionRejection_.vtxFitProb; }
649  const ConversionRejection &conversionRejectionVariables() const { return conversionRejection_; }
650  void setConversionRejectionVariables(const ConversionRejection &convRej) { conversionRejection_ = convRej; }
651 
652  private:
653  // attributes
655 
656  //=======================================================
657  // Pflow Information
658  //=======================================================
659 
660  public:
661  struct PflowIsolationVariables {
662  //first three data members that changed names, according to DataFormats/MuonReco/interface/MuonPFIsolation.h
663  float sumChargedHadronPt;
664  float sumNeutralHadronEt;
665  float sumPhotonEt;
666  //then four new data members, corresponding to DataFormats/MuonReco/interface/MuonPFIsolation.h
667  float sumChargedParticlePt;
670  float sumPUPt;
671  //new pf cluster based isolation values
672  float sumEcalClusterEt; //sum pt of ecal clusters, vetoing clusters part of electron
673  float sumHcalClusterEt; //sum pt of hcal clusters, vetoing clusters part of electron
683  sumHcalClusterEt(0){};
684  };
685 
686  struct MvaInput {
687  int earlyBrem; // Early Brem detected (-2=>unknown,-1=>could not be evaluated,0=>wrong,1=>true)
688  int lateBrem; // Late Brem detected (-2=>unknown,-1=>could not be evaluated,0=>wrong,1=>true)
689  float sigmaEtaEta; // Sigma-eta-eta with the PF cluster
690  float hadEnergy; // Associated PF Had Cluster energy
691  float deltaEta; // PF-cluster GSF track delta-eta
692  int nClusterOutsideMustache; // -2 => unknown, -1 =>could not be evaluated, 0 and more => number of clusters
693  float etOutsideMustache;
695  : earlyBrem(-2),
696  lateBrem(-2),
697  sigmaEtaEta(std::numeric_limits<float>::max()),
699  deltaEta(std::numeric_limits<float>::max()),
701  etOutsideMustache(-std::numeric_limits<float>::max()) {}
702  };
703 
704  struct MvaOutput {
705  int status; // see PFCandidateElectronExtra::StatusFlag
706  float mva_Isolated;
707  float mva_e_pi;
708  float mvaByPassForIsolated; // complementary MVA used in preselection
709  MvaOutput() : status(-1), mva_Isolated(-999999999.), mva_e_pi(-999999999.), mvaByPassForIsolated(-999999999.) {}
710  };
711 
712  // accessors
714  //backwards compat functions for pat::Electron
715  float ecalPFClusterIso() const { return pfIso_.sumEcalClusterEt; };
716  float hcalPFClusterIso() const { return pfIso_.sumHcalClusterEt; };
717 
718  const MvaInput &mvaInput() const { return mvaInput_; }
719  const MvaOutput &mvaOutput() const { return mvaOutput_; }
720 
721  // setters
722  void setPfIsolationVariables(const PflowIsolationVariables &iso) { pfIso_ = iso; }
723  void setMvaInput(const MvaInput &mi) { mvaInput_ = mi; }
724  void setMvaOutput(const MvaOutput &mo) { mvaOutput_ = mo; }
725 
726  // for backward compatibility
727  float mva_Isolated() const { return mvaOutput_.mva_Isolated; }
728  float mva_e_pi() const { return mvaOutput_.mva_e_pi; }
729 
730  private:
734 
735  //=======================================================
736  // Preselection and Ambiguity
737  //=======================================================
738 
739  public:
740  // accessors
741  bool ecalDriven() const; // return true if ecalDrivenSeed() and passingCutBasedPreselection()
743  bool passingPflowPreselection() const { return passPflowPreselection_; }
744  bool ambiguous() const { return ambiguous_; }
746  auto const &ambiguousGsfTracks() const { return ambiguousGsfTracks_; }
747 
748  // setters
751  void setAmbiguous(bool flag) { ambiguous_ = flag; }
754 
755  // backward compatibility
758 
759  private:
760  // attributes
763  bool passMvaPreslection_; // to be removed : passPflowPreslection_
765  GsfTrackRefVector ambiguousGsfTracks_; // ambiguous gsf tracks
766 
767  //=======================================================
768  // Brem Fractions and Classification
769  //=======================================================
770 
771  public:
773  float trackFbrem; // the brem fraction from gsf fit: (track momentum in - track momentum out) / track momentum in
774  float superClusterFbrem; // the brem fraction from supercluster: (supercluster energy - electron cluster energy) / supercluster energy
775  constexpr static float kDefaultValue = -1.e30;
777  };
778  enum Classification { UNKNOWN = -1, GOLDEN = 0, BIGBREM = 1, BADTRACK = 2, SHOWERING = 3, GAP = 4 };
779 
780  // accessors
781  float trackFbrem() const { return classVariables_.trackFbrem; }
785 
786  // utilities
787  int numberOfBrems() const { return basicClustersSize() - 1; }
788  float fbrem() const { return trackFbrem(); }
789 
790  // setters
793  void setClassificationVariables(const ClassificationVariables &cv) { classVariables_ = cv; }
794  void setClassification(Classification myclass) { class_ = myclass; }
795 
796  private:
797  // attributes
799  Classification class_; // fbrem and number of clusters based electron classification
800 
801  //=======================================================
802  // Corrections
803  //
804  // The only methods, with classification, which modify
805  // the electrons after they have been constructed.
806  // They change a given characteristic, such as the super-cluster
807  // energy, and propagate the change consistently
808  // to all the depending attributes.
809  // We expect the methods to be called in a given order
810  // and so to store specific kind of corrections
811  // 1) classify()
812  // 2) correctEcalEnergy() : depending on classification and eta
813  // 3) correctMomemtum() : depending on classification and ecal energy and tracker momentum errors
814  //
815  // Beware that correctEcalEnergy() is modifying few attributes which
816  // were potentially used for preselection, whose value used in
817  // preselection will not be available any more :
818  // hcalOverEcal, eSuperClusterOverP,
819  // eSeedClusterOverP, eEleClusterOverPout.
820  //=======================================================
821 
822  public:
824 
825  struct Corrections {
826  bool isEcalEnergyCorrected; // true if ecal energy has been corrected
827  float correctedEcalEnergy; // corrected energy (if !isEcalEnergyCorrected this value is identical to the supercluster energy)
828  float correctedEcalEnergyError; // error on energy
829  //bool isMomentumCorrected ; // DEPRECATED
830  float trackMomentumError; // track momentum error from gsf fit
831  //
832  LorentzVector fromSuperClusterP4; // for P4_FROM_SUPER_CLUSTER
833  float fromSuperClusterP4Error; // for P4_FROM_SUPER_CLUSTER
834  LorentzVector combinedP4; // for P4_COMBINATION
835  float combinedP4Error; // for P4_COMBINATION
836  LorentzVector pflowP4; // for P4_PFLOW_COMBINATION
837  float pflowP4Error; // for P4_PFLOW_COMBINATION
838  P4Kind candidateP4Kind; // say which momentum has been stored in reco::Candidate
839  //
844  /*isMomentumCorrected(false),*/ trackMomentumError(999.),
847  pflowP4Error(999.),
849  };
850 
851  // setters
852  void setCorrectedEcalEnergyError(float newEnergyError);
853  void setCorrectedEcalEnergy(float newEnergy);
854  void setCorrectedEcalEnergy(float newEnergy, bool rescaleDependentValues);
856  void setP4(P4Kind kind, const LorentzVector &p4, float p4Error, bool setCandidate);
857  using RecoCandidate::setP4;
858 
859  // accessors
861  float correctedEcalEnergy() const { return corrections_.correctedEcalEnergy; }
863  float trackMomentumError() const { return corrections_.trackMomentumError; }
864  const LorentzVector &p4(P4Kind kind) const;
865  using RecoCandidate::p4;
866  float p4Error(P4Kind kind) const;
868  const Corrections &corrections() const { return corrections_; }
869 
870  // bare setter (if you know what you're doing)
872 
873  // for backward compatibility
874  void setEcalEnergyError(float energyError) { setCorrectedEcalEnergyError(energyError); }
875  float ecalEnergy() const { return correctedEcalEnergy(); }
876  float ecalEnergyError() const { return correctedEcalEnergyError(); }
877  //bool isMomentumCorrected() const { return corrections_.isMomentumCorrected ; }
878  float caloEnergy() const { return correctedEcalEnergy(); }
880  void correctEcalEnergy(float newEnergy, float newEnergyError, bool corrEovP = true) {
881  setCorrectedEcalEnergy(newEnergy, corrEovP);
882  setEcalEnergyError(newEnergyError);
883  }
887  }
888 
889  private:
890  // attributes
892 
893  public:
894  struct PixelMatchVariables {
896  float dPhi1;
898  float dPhi2;
900  float dRz1;
902  float dRz2;
904  unsigned char subdetectors;
905  PixelMatchVariables() : dPhi1(-999), dPhi2(-999), dRz1(-999), dRz2(-999), subdetectors(0) {}
907  };
908  void setPixelMatchSubdetectors(int sd1, int sd2) { pixelMatchVariables_.subdetectors = 10 * sd1 + sd2; }
909  void setPixelMatchDPhi1(float dPhi1) { pixelMatchVariables_.dPhi1 = dPhi1; }
910  void setPixelMatchDPhi2(float dPhi2) { pixelMatchVariables_.dPhi2 = dPhi2; }
911  void setPixelMatchDRz1(float dRz1) { pixelMatchVariables_.dRz1 = dRz1; }
912  void setPixelMatchDRz2(float dRz2) { pixelMatchVariables_.dRz2 = dRz2; }
913 
915  int pixelMatchSubdetector2() const { return pixelMatchVariables_.subdetectors % 10; }
916  float pixelMatchDPhi1() const { return pixelMatchVariables_.dPhi1; }
917  float pixelMatchDPhi2() const { return pixelMatchVariables_.dPhi2; }
918  float pixelMatchDRz1() const { return pixelMatchVariables_.dRz1; }
919  float pixelMatchDRz2() const { return pixelMatchVariables_.dRz2; }
920 
921  private:
923  };
924 
925 } // namespace reco
926 
927 #endif
reco::GsfElectron::ClosestCtfTrack::shFracInnerHits
float shFracInnerHits
Definition: GsfElectron.h:183
reco::GsfElectron::deltaEtaSeedClusterTrackAtCalo
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:234
reco::GsfElectron::convFlags
int convFlags() const
Definition: GsfElectron.h:651
reco::GsfElectron::MvaInput::etOutsideMustache
float etOutsideMustache
Definition: GsfElectron.h:701
reco::GsfElectron::ClassificationVariables::trackFbrem
float trackFbrem
Definition: GsfElectron.h:781
reco::GsfElectron::convDcot
float convDcot() const
Definition: GsfElectron.h:654
reco::GsfElectron::trackClusterMatching_
TrackClusterMatching trackClusterMatching_
Definition: GsfElectron.h:253
reco::GsfElectron::numberOfBrems
int numberOfBrems() const
Definition: GsfElectron.h:795
GsfElectronCore.h
reco::GsfElectron::ShowerShape::e2x5Right
float e2x5Right
Definition: GsfElectron.h:394
reco::GsfElectron::isEE
bool isEE() const
Definition: GsfElectron.h:337
reco::GsfTrackRef
edm::Ref< GsfTrackCollection > GsfTrackRef
persistent reference to a GsfTrack
Definition: GsfTrackFwd.h:13
reco::GsfElectron::dr04EcalRecHitSumEt
float dr04EcalRecHitSumEt() const
Definition: GsfElectron.h:607
reco::GsfElectron::ChargeInfo::isGsfScPixConsistent
bool isGsfScPixConsistent
Definition: GsfElectron.h:126
reco::GsfElectron::ClassificationVariables::kDefaultValue
constexpr static float kDefaultValue
Definition: GsfElectron.h:783
reco::GsfElectron::ShowerShape::r9
float r9
Definition: GsfElectron.h:373
reco::GsfElectron::full5x5_sigmaEtaEta
float full5x5_sigmaEtaEta() const
Definition: GsfElectron.h:478
reco::GsfElectron::ShowerShape::pre7DepthHcal
bool pre7DepthHcal
Definition: GsfElectron.h:384
reco::GsfElectron::setFFlagIsEBPhiGap
void setFFlagIsEBPhiGap(const bool b)
Definition: GsfElectron.h:353
edm::RefVector::clear
void clear()
Clear the vector.
Definition: RefVector.h:142
reco::GsfElectron::ShowerShape::sigmaIetaIeta
float sigmaIetaIeta
Definition: GsfElectron.h:368
reco::GsfElectron::MvaInput::hadEnergy
float hadEnergy
Definition: GsfElectron.h:698
reco::GsfElectron::ClosestCtfTrack
Definition: GsfElectron.h:181
reco::GsfElectron::TrackClusterMatching::electronCluster
CaloClusterPtr electronCluster
Definition: GsfElectron.h:203
reco::GsfElectron::Corrections::combinedP4Error
float combinedP4Error
Definition: GsfElectron.h:843
reco::GsfElectron::Corrections::Corrections
Corrections()
Definition: GsfElectron.h:848
reco::GsfElectron::dr03TkSumPt
float dr03TkSumPt() const
Definition: GsfElectron.h:565
reco::GsfElectron::pfIso_
PflowIsolationVariables pfIso_
Definition: GsfElectron.h:739
reco::GsfElectron::ChargeInfo::ChargeInfo
ChargeInfo()
Definition: GsfElectron.h:128
reco::GsfElectron::full5x5_e2x5Right
float full5x5_e2x5Right() const
Definition: GsfElectron.h:489
reco::GsfElectron::isEB
bool isEB() const
Definition: GsfElectron.h:336
reco::GsfElectron::scE1x5
float scE1x5() const
Definition: GsfElectron.h:505
reco::GsfElectron::isolationVariables03
const IsolationVariables & isolationVariables03() const
Definition: GsfElectron.h:619
reco::GsfElectron::gsfTrack
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:164
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
reco::GsfElectron::trackMomentumOut
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:278
reco::GsfElectron::setIsolation04
void setIsolation04(const IsolationVariables &dr04)
Definition: GsfElectron.h:618
funct::false
false
Definition: Factorize.h:29
reco::GsfElectron::Corrections::correctedEcalEnergy
float correctedEcalEnergy
Definition: GsfElectron.h:835
reco::GsfElectron::Corrections::candidateP4Kind
P4Kind candidateP4Kind
Definition: GsfElectron.h:846
reco::GsfElectron::setSaturationInfo
void setSaturationInfo(const SaturationInfo &s)
Definition: GsfElectron.h:530
reco::GsfElectron::trackPositionAtCalo
math::XYZPointF trackPositionAtCalo() const
Definition: GsfElectron.h:275
reco::GsfElectron::setFFlagIsEERingGap
void setFFlagIsEERingGap(const bool b)
Definition: GsfElectron.h:355
reco::GsfElectron::Corrections::pflowP4Error
float pflowP4Error
Definition: GsfElectron.h:845
reco::GsfElectron::FiducialFlags::isEBEEGap
bool isEBEEGap
Definition: GsfElectron.h:320
edm::RefVector< GsfTrackCollection >::size_type
KeyVec::size_type size_type
Definition: RefVector.h:48
reco::GsfElectron::dr03HcalTowerSumEtBc
float dr03HcalTowerSumEtBc(int depth=0) const
Definition: GsfElectron.h:601
reco::GsfElectron::passingMvaPreselection
bool passingMvaPreselection() const
Definition: GsfElectron.h:765
reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:236
reco::GsfElectron::ShowerShape::hcalDepth1OverEcal
float hcalDepth1OverEcal
Definition: GsfElectron.h:374
reco::GsfElectron::closestCtfTrackNormChi2
float closestCtfTrackNormChi2() const
Definition: GsfElectron.h:173
reco::GsfElectron::ChargeInfo
Definition: GsfElectron.h:123
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
reco::GsfElectron::parentSuperCluster
virtual SuperClusterRef parentSuperCluster() const
Definition: GsfElectron.h:168
cuy.cv
cv
Definition: cuy.py:363
reco::GsfElectron::corrections_
Corrections corrections_
Definition: GsfElectron.h:899
reco::GsfElectron::deltaEtaSeedClusterTrackAtVtx
float deltaEtaSeedClusterTrackAtVtx() const
Definition: GsfElectron.h:239
reco::GsfElectron::correctMomentum
void correctMomentum(const LorentzVector &p4, float trackMomentumError, float p4Error)
Definition: GsfElectron.h:892
reco::GsfElectron::FiducialFlags::isEE
bool isEE
Definition: GsfElectron.h:319
reco::GsfElectron::setPixelMatchDPhi2
void setPixelMatchDPhi2(float dPhi2)
Definition: GsfElectron.h:918
reco::GsfElectron::isEERingGap
bool isEERingGap() const
Definition: GsfElectron.h:345
edm::Ref::isAvailable
bool isAvailable() const
Definition: Ref.h:537
reco::GsfElectron::conversionRejection_
ConversionRejection conversionRejection_
Definition: GsfElectron.h:662
reco::GsfElectron::full5x5_showerShape_
ShowerShape full5x5_showerShape_
Definition: GsfElectron.h:513
reco::GsfElectron::isEBGap
bool isEBGap() const
Definition: GsfElectron.h:340
reco::GsfElectron::core_
GsfElectronCoreRef core_
Definition: GsfElectron.h:195
reco::GsfElectron::MvaOutput::mva_e_pi
float mva_e_pi
Definition: GsfElectron.h:715
reco::GsfElectron::FiducialFlags::isEEDeeGap
bool isEEDeeGap
Definition: GsfElectron.h:323
reco::GsfElectron::ClosestCtfTrack::ctfTrack
TrackRef ctfTrack
Definition: GsfElectron.h:182
reco::GsfElectron::trackClusterMatching
const TrackClusterMatching & trackClusterMatching() const
Definition: GsfElectron.h:245
reco::GsfElectron::saturationInfo
const SaturationInfo & saturationInfo() const
Definition: GsfElectron.h:529
reco::GsfElectron::closestCtfTrackRefValid
bool closestCtfTrackRefValid() const
Definition: GsfElectron.h:169
gpuVertexFinder::iv
int32_t *__restrict__ iv
Definition: gpuClusterTracksDBSCAN.h:42
reco::GsfElectron::PflowIsolationVariables
Definition: GsfElectron.h:669
reco::GsfElectron::trackExtrapolations
const TrackExtrapolations & trackExtrapolations() const
Definition: GsfElectron.h:283
reco::GsfElectron::setDeltaEtaSuperClusterAtVtx
void setDeltaEtaSuperClusterAtVtx(float de)
Definition: GsfElectron.h:248
reco::GsfElectron::PixelMatchVariables::~PixelMatchVariables
~PixelMatchVariables()
Definition: GsfElectron.h:914
reco::GsfElectron::setCorrections
void setCorrections(const Corrections &c)
Definition: GsfElectron.h:879
reco::GsfElectron::dr04HcalTowerSumEt
float dr04HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:608
reco::GsfElectron::scE2x5Max
float scE2x5Max() const
Definition: GsfElectron.h:506
reco::GsfElectron::P4_COMBINATION
Definition: GsfElectron.h:831
reco::GsfElectron::TrackPositionAtCalo
math::XYZPointF TrackPositionAtCalo() const
Definition: GsfElectron.h:290
reco::GsfElectron::isGsfCtfChargeConsistent
bool isGsfCtfChargeConsistent() const
Definition: GsfElectron.h:138
reco::GsfElectron::TrackClusterMatching::eSeedClusterOverP
float eSeedClusterOverP
Definition: GsfElectron.h:205
reco::GsfElectron::passCutBasedPreselection_
bool passCutBasedPreselection_
Definition: GsfElectron.h:769
reco::GsfElectron::IsolationVariables::hcalRecHitSumEtBc
std::array< float, 7 > hcalRecHitSumEtBc
Definition: GsfElectron.h:549
reco::GsfElectron::full5x5_eRight
float full5x5_eRight() const
Definition: GsfElectron.h:493
reco::GsfElectron::dr03TkSumPtHEEP
float dr03TkSumPtHEEP() const
Definition: GsfElectron.h:566
reco::GsfElectron::ShowerShape::eMax
float eMax
Definition: GsfElectron.h:386
reco::GsfElectron::convPartner
TrackBaseRef convPartner() const
Definition: GsfElectron.h:652
reco::GsfElectron::dr03IsolationVariables
const IsolationVariables & dr03IsolationVariables() const
Definition: GsfElectron.h:602
reco::GsfElectron::full5x5_e2x5Max
float full5x5_e2x5Max() const
Definition: GsfElectron.h:482
reco::GsfElectron::p4Error
float p4Error(P4Kind kind) const
Definition: GsfElectron.cc:230
reco::GsfElectron::setPixelMatchSubdetectors
void setPixelMatchSubdetectors(int sd1, int sd2)
Definition: GsfElectron.h:916
reco::GsfElectron::ConversionRejection::dcot
float dcot
Definition: GsfElectron.h:639
reco::GsfElectron::setPassMvaPreselection
void setPassMvaPreselection(bool flag)
Definition: GsfElectron.h:764
reco::GsfElectron::ShowerShape::sigmaIetaIphi
float sigmaIetaIphi
Definition: GsfElectron.h:385
reco::GsfElectron::PixelMatchVariables
Definition: GsfElectron.h:902
reco::GsfElectron::trackExtrapolations_
TrackExtrapolations trackExtrapolations_
Definition: GsfElectron.h:294
reco::GsfElectron::deltaPhiSeedClusterTrackAtCalo
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:237
reco::GsfElectron::PflowIsolationVariables::sumChargedParticlePt
float sumChargedParticlePt
sum-pt of charged Particles(inludes e/mu)
Definition: GsfElectron.h:675
reco::GsfElectron::MvaInput::MvaInput
MvaInput()
Definition: GsfElectron.h:702
reco::GsfElectron::candidateP4Kind
P4Kind candidateP4Kind() const
Definition: GsfElectron.h:875
reco::GsfElectron::Corrections::correctedEcalEnergyError
float correctedEcalEnergyError
Definition: GsfElectron.h:836
reco::GsfElectron::isEEGap
bool isEEGap() const
Definition: GsfElectron.h:343
reco::GsfElectron::ShowerShape::hcalOverEcal
std::array< float, 7 > hcalOverEcal
Definition: GsfElectron.h:379
reco::GsfElectron::setFFlagIsEEDeeGap
void setFFlagIsEEDeeGap(const bool b)
Definition: GsfElectron.h:354
reco::GsfElectron::convVtxFitProb
float convVtxFitProb() const
Definition: GsfElectron.h:656
reco::GsfElectron::setSuperClusterFbrem
void setSuperClusterFbrem(float fbrem)
Definition: GsfElectron.h:800
reco::GsfElectron::PixelMatchVariables::dPhi1
float dPhi1
Pixel match variable: deltaPhi for innermost hit.
Definition: GsfElectron.h:904
edm::RefVector< GsfTrackCollection >
reco::GsfElectron::full5x5_setShowerShape
void full5x5_setShowerShape(const ShowerShape &s)
Definition: GsfElectron.h:500
reco::GsfElectron::setFFlagIsEBEtaGap
void setFFlagIsEBEtaGap(const bool b)
Definition: GsfElectron.h:352
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:46
reco::GsfElectron::~GsfElectron
~GsfElectron() override
Definition: GsfElectron.h:102
reco::GsfElectron::SaturationInfo::nSaturatedXtals
int nSaturatedXtals
Definition: GsfElectron.h:521
reco::GsfElectron::TrackClusterMatching::eEleClusterOverPout
float eEleClusterOverPout
Definition: GsfElectron.h:207
reco::GsfElectron::ChargeInfo::isGsfCtfConsistent
bool isGsfCtfConsistent
Definition: GsfElectron.h:127
reco::GsfElectron::TrackExtrapolations::momentumAtCalo
math::XYZVectorF momentumAtCalo
Definition: GsfElectron.h:265
reco::GsfElectron::TrackExtrapolations::momentumOut
math::XYZVectorF momentumOut
Definition: GsfElectron.h:267
reco::GsfElectron::ShowerShape::e2x5Max
float e2x5Max
Definition: GsfElectron.h:371
reco::GsfElectron::TrackClusterMatching::deltaEtaEleClusterAtCalo
float deltaEtaEleClusterAtCalo
Definition: GsfElectron.h:210
reco::GsfElectron::hadronicOverEm
float hadronicOverEm() const
Definition: GsfElectron.h:508
reco::GsfElectron::showerShape
const ShowerShape & showerShape() const
Definition: GsfElectron.h:475
RecoCandidate.h
reco::GsfElectron::fbrem
float fbrem() const
Definition: GsfElectron.h:796
reco::GsfElectron::setShowerShape
void setShowerShape(const ShowerShape &s)
Definition: GsfElectron.h:499
reco::GsfElectron::Classification
Classification
Definition: GsfElectron.h:786
reco::GsfElectron::scPixCharge
int scPixCharge() const
Definition: GsfElectron.h:135
reco::RecoCandidate::track
virtual reco::TrackRef track() const
reference to a Track
Definition: RecoCandidate.cc:13
reco::GsfElectron::ShowerShape::eBottom
float eBottom
Definition: GsfElectron.h:391
edm::Ref< GsfElectronCoreCollection >
reco::GsfElectron::mvaOutput_
MvaOutput mvaOutput_
Definition: GsfElectron.h:741
reco::GsfElectron::mva_e_pi
float mva_e_pi() const
Definition: GsfElectron.h:736
reco::GsfElectron::dr04HcalTowerSumEtBc
float dr04HcalTowerSumEtBc(int depth=0) const
Definition: GsfElectron.h:609
reco::GsfElectron::GsfElectron
GsfElectron()
Definition: GsfElectron.cc:18
reco::GsfElectron::FiducialFlags::isEBPhiGap
bool isEBPhiGap
Definition: GsfElectron.h:322
reco::GsfElectron::Corrections::combinedP4
LorentzVector combinedP4
Definition: GsfElectron.h:842
reco::GsfElectron::ClosestCtfTrack::ClosestCtfTrack
ClosestCtfTrack()
Definition: GsfElectron.h:184
reco::GsfElectron::MvaInput::sigmaEtaEta
float sigmaEtaEta
Definition: GsfElectron.h:697
reco::GsfElectron::full5x5_hcalOverEcal
float full5x5_hcalOverEcal(int depth=0) const
Definition: GsfElectron.h:485
reco::GsfElectron::ShowerShape::sigmaEtaEta
float sigmaEtaEta
Definition: GsfElectron.h:367
reco::GsfElectron::setPassPflowPreselection
void setPassPflowPreselection(bool flag)
Definition: GsfElectron.h:758
reco::GsfElectron::trackMomentumAtVtxWithConstraint
math::XYZVectorF trackMomentumAtVtxWithConstraint() const
Definition: GsfElectron.h:280
reco::GsfElectron::core
virtual GsfElectronCoreRef core() const
Definition: GsfElectron.cc:8
reco::GsfElectron::setTrackMomentumError
void setTrackMomentumError(float trackMomentumError)
Definition: GsfElectron.cc:192
reco::GsfElectron::TrackClusterMatching::deltaPhiSuperClusterAtVtx
float deltaPhiSuperClusterAtVtx
Definition: GsfElectron.h:212
reco::GsfElectron::mva_Isolated
float mva_Isolated() const
Definition: GsfElectron.h:735
reco::GsfElectron::hcalOverEcalBc
float hcalOverEcalBc(const ShowerShape &ss, int depth) const
Definition: GsfElectron.h:450
reco::GsfElectron::isGsfCtfScPixChargeConsistent
bool isGsfCtfScPixChargeConsistent() const
Definition: GsfElectron.h:136
reco::GsfElectron::ecalPFClusterIso
float ecalPFClusterIso() const
Definition: GsfElectron.h:723
reco::GsfElectron::IsolationVariables::tkSumPtHEEP
float tkSumPtHEEP
Definition: GsfElectron.h:542
reco::GsfElectron::hcalTowerSumEtBc
float hcalTowerSumEtBc(const IsolationVariables &iv, int depth) const
Definition: GsfElectron.h:585
reco::GsfElectron::SHOWERING
Definition: GsfElectron.h:786
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
reco::GsfElectron::setP4
void setP4(P4Kind kind, const LorentzVector &p4, float p4Error, bool setCandidate)
Definition: GsfElectron.cc:194
reco::GsfElectron::passingPflowPreselection
bool passingPflowPreselection() const
Definition: GsfElectron.h:751
reco::GsfElectron::full5x5_showerShape
const ShowerShape & full5x5_showerShape() const
Definition: GsfElectron.h:496
reco::GsfElectron::PflowIsolationVariables::sumPhotonEt
float sumPhotonEt
sum pt of PF photons // old float photonIso ;
Definition: GsfElectron.h:673
alignCSCRings.s
s
Definition: alignCSCRings.py:92
reco::GsfElectron::closestCtfTrackNLayers
int closestCtfTrackNLayers() const
Definition: GsfElectron.h:176
reco::GsfElectron::ClassificationVariables::superClusterFbrem
float superClusterFbrem
Definition: GsfElectron.h:782
reco::GsfElectron::mvaInput_
MvaInput mvaInput_
Definition: GsfElectron.h:740
reco::GsfElectron::ambiguousGsfTracksSize
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:753
reco::GsfElectron::full5x5_e2x5Bottom
float full5x5_e2x5Bottom() const
Definition: GsfElectron.h:491
reco::GsfElectron::IsolationVariables::tkSumPt
float tkSumPt
Definition: GsfElectron.h:541
reco::GsfElectron::FiducialFlags::isEERingGap
bool isEERingGap
Definition: GsfElectron.h:324
reco::GsfElectron::caloPosition
math::XYZPoint caloPosition() const
Definition: GsfElectron.h:310
Track.h
reco::GsfElectron::Corrections::fromSuperClusterP4Error
float fromSuperClusterP4Error
Definition: GsfElectron.h:841
TrackFwd.h
reco::GsfElectron::PflowIsolationVariables::sumPUPt
float sumPUPt
sum pt of charged Particles not from PV (for Pu corrections)
Definition: GsfElectron.h:678
reco::GsfElectron::MvaInput::deltaEta
float deltaEta
Definition: GsfElectron.h:699
reco::GsfElectron::P4_UNKNOWN
Definition: GsfElectron.h:831
reco::GsfElectron::full5x5_e2x5Left
float full5x5_e2x5Left() const
Definition: GsfElectron.h:488
reco::GsfElectron::PflowIsolationVariables::sumNeutralHadronEtHighThreshold
float sumNeutralHadronEtHighThreshold
sum pt of neutral hadrons with a higher threshold
Definition: GsfElectron.h:676
reco::GsfElectron::setPixelMatchDRz2
void setPixelMatchDRz2(float dRz2)
Definition: GsfElectron.h:920
reco::GsfElectron::TrackClusterMatching::TrackClusterMatching
TrackClusterMatching()
Definition: GsfElectron.h:214
reco::GsfElectron::ConversionRejection
Definition: GsfElectron.h:635
reco::GsfElectron::ShowerShape
Definition: GsfElectron.h:366
reco::GsfElectron::setFFlagIsEE
void setFFlagIsEE(const bool b)
Definition: GsfElectron.h:350
reco::GsfElectron::full5x5_e2x5Top
float full5x5_e2x5Top() const
Definition: GsfElectron.h:490
reco::GsfElectron::ambiguousGsfTracks_
GsfTrackRefVector ambiguousGsfTracks_
Definition: GsfElectron.h:773
reco::GsfElectron::ClassificationVariables::ClassificationVariables
ClassificationVariables()
Definition: GsfElectron.h:784
reco::GsfElectron::MvaOutput::mva_Isolated
float mva_Isolated
Definition: GsfElectron.h:714
reco::GsfElectron::chargeInfo
const ChargeInfo & chargeInfo() const
Definition: GsfElectron.h:139
reco::GsfElectron::trackMomentumAtVtx
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:276
mps_fire.end
end
Definition: mps_fire.py:242
reco::GsfElectron::e2x5Max
float e2x5Max() const
Definition: GsfElectron.h:430
reco::GsfElectron::isEcalEnergyCorrected
bool isEcalEnergyCorrected() const
Definition: GsfElectron.h:868
reco::GsfElectron::ecalDrivenSeed
bool ecalDrivenSeed() const
Definition: GsfElectron.h:166
reco::GsfElectron::GOLDEN
Definition: GsfElectron.h:786
reco::GsfElectron::isEEDeeGap
bool isEEDeeGap() const
Definition: GsfElectron.h:344
reco::GsfElectron::IsolationVariables::hcalDepth1TowerSumEt
float hcalDepth1TowerSumEt
Definition: GsfElectron.h:544
reco::GsfElectron::ShowerShape::eTop
float eTop
Definition: GsfElectron.h:388
reco::GsfElectron::FiducialFlags
Definition: GsfElectron.h:317
reco::GsfElectron::setPixelMatchDRz1
void setPixelMatchDRz1(float dRz1)
Definition: GsfElectron.h:919
CaloClusterFwd.h
reco::GsfElectron::PixelMatchVariables::subdetectors
unsigned char subdetectors
Subdetectors for first and second pixel hit.
Definition: GsfElectron.h:912
reco::GsfElectron::convDist
float convDist() const
Definition: GsfElectron.h:653
reco::GsfElectron::IsolationVariables::pre7DepthHcal
bool pre7DepthHcal
Definition: GsfElectron.h:550
reco::GsfElectron
Definition: GsfElectron.h:35
reco::GsfElectron::correctedEcalEnergyError
float correctedEcalEnergyError() const
Definition: GsfElectron.h:870
reco::GsfElectron::dr04_
IsolationVariables dr04_
Definition: GsfElectron.h:628
reco::GsfElectron::P4_FROM_SUPER_CLUSTER
Definition: GsfElectron.h:831
reco::GsfElectron::hcalToRun2EffDepth
void hcalToRun2EffDepth()
Definition: GsfElectron.cc:243
reco::GsfElectron::IsolationVariables
Definition: GsfElectron.h:540
reco::GsfElectron::pixelMatchDRz1
float pixelMatchDRz1() const
Definition: GsfElectron.h:926
b
double b
Definition: hdecay.h:118
reco::GsfElectron::ShowerShape::hcalTowersBehindClusters
std::vector< CaloTowerDetId > hcalTowersBehindClusters
Definition: GsfElectron.h:382
reco::GsfElectron::MvaOutput::MvaOutput
MvaOutput()
Definition: GsfElectron.h:717
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
reco::GsfElectron::pixelMatchDPhi1
float pixelMatchDPhi1() const
Definition: GsfElectron.h:924
reco::GsfElectron::ShowerShape::sigmaIphiIphi
float sigmaIphiIphi
Definition: GsfElectron.h:369
reco::GsfElectron::MvaInput
Definition: GsfElectron.h:694
reco::GsfElectron::setDr04Isolation
void setDr04Isolation(const IsolationVariables &dr04)
Definition: GsfElectron.h:614
reco::GsfElectron::clearAmbiguousGsfTracks
void clearAmbiguousGsfTracks()
Definition: GsfElectron.h:760
reco::GsfElectron::sigmaIphiIphi
float sigmaIphiIphi() const
Definition: GsfElectron.h:428
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
reco::GsfElectron::corrections
const Corrections & corrections() const
Definition: GsfElectron.h:876
reco::GsfElectron::ChargeInfo::isGsfCtfScPixConsistent
bool isGsfCtfScPixConsistent
Definition: GsfElectron.h:125
reco::GsfElectron::IsolationVariables::hcalDepth1TowerSumEtBc
float hcalDepth1TowerSumEtBc
Definition: GsfElectron.h:546
reco::GsfElectron::Corrections::pflowP4
LorentzVector pflowP4
Definition: GsfElectron.h:844
reco::GsfElectron::UNKNOWN
Definition: GsfElectron.h:786
reco::GsfElectron::classVariables_
ClassificationVariables classVariables_
Definition: GsfElectron.h:806
reco::GsfElectron::eBottom
float eBottom() const
Definition: GsfElectron.h:474
reco::GsfElectron::TrackClusterMatching::eSeedClusterOverPout
float eSeedClusterOverPout
Definition: GsfElectron.h:206
reco::GsfElectron::isEnergyScaleCorrected
bool isEnergyScaleCorrected() const
Definition: GsfElectron.h:887
reco::GsfElectron::setTrackFbrem
void setTrackFbrem(float fbrem)
Definition: GsfElectron.h:799
reco::GsfElectron::PixelMatchVariables::dRz2
float dRz2
Pixel match variable: deltaRz for second hit.
Definition: GsfElectron.h:910
reco::GsfElectron::showerShape_
ShowerShape showerShape_
Definition: GsfElectron.h:512
reco::GsfElectron::IsolationVariables::hcalDepth2TowerSumEtBc
float hcalDepth2TowerSumEtBc
Definition: GsfElectron.h:547
reco::GsfElectron::P4Kind
P4Kind
Definition: GsfElectron.h:831
GsfElectronFwd.h
reco::GsfElectron::pixelMatchDPhi2
float pixelMatchDPhi2() const
Definition: GsfElectron.h:925
reco::GsfElectron::MvaInput::lateBrem
int lateBrem
Definition: GsfElectron.h:696
reco::GsfElectron::setCorrectedEcalEnergyError
void setCorrectedEcalEnergyError(float newEnergyError)
Definition: GsfElectron.cc:170
core
Definition: __init__.py:1
reco::GsfElectron::TrackClusterMatching
Definition: GsfElectron.h:202
reco::GsfElectron::TrackClusterMatching::eSuperClusterOverP
float eSuperClusterOverP
Definition: GsfElectron.h:204
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
reco::GsfElectron::conversionRejectionVariables
const ConversionRejection & conversionRejectionVariables() const
Definition: GsfElectron.h:657
reco::GsfElectron::full5x5_hcalOverEcalValid
bool full5x5_hcalOverEcalValid() const
Definition: GsfElectron.h:487
reco::GsfElectron::full5x5_r9
float full5x5_r9() const
Definition: GsfElectron.h:484
reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:233
reco::GsfElectron::correctEcalEnergy
void correctEcalEnergy(float newEnergy, float newEnergyError, bool corrEovP=true)
Definition: GsfElectron.h:888
reco::GsfElectron::pixelMatchVariables_
PixelMatchVariables pixelMatchVariables_
Definition: GsfElectron.h:930
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
reco::GsfElectron::FiducialFlags::FiducialFlags
FiducialFlags()
Definition: GsfElectron.h:325
reco::GsfElectron::clone
GsfElectron * clone() const override
returns a clone of the Candidate object
Definition: GsfElectron.cc:158
reco::GsfElectron::IsolationVariables::hcalRecHitSumEt
std::array< float, 7 > hcalRecHitSumEt
Definition: GsfElectron.h:548
reco::GsfElectron::full5x5_sigmaIetaIeta
float full5x5_sigmaIetaIeta() const
Definition: GsfElectron.h:479
reco::GsfElectron::TrackExtrapolations::momentumAtVtxWithConstraint
math::XYZVectorF momentumAtVtxWithConstraint
Definition: GsfElectron.h:270
reco::GsfElectron::scE5x5
float scE5x5() const
Definition: GsfElectron.h:507
reco::GsfElectron::setClassification
void setClassification(Classification myclass)
Definition: GsfElectron.h:802
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
reco::GsfElectron::TrackExtrapolations
Definition: GsfElectron.h:260
reco::GsfElectron::classificationVariables
const ClassificationVariables & classificationVariables() const
Definition: GsfElectron.h:791
reco::GsfElectron::setPfIsolationVariables
void setPfIsolationVariables(const PflowIsolationVariables &iso)
Definition: GsfElectron.h:730
reco::GsfElectron::addAmbiguousGsfTrack
void addAmbiguousGsfTrack(const reco::GsfTrackRef &t)
Definition: GsfElectron.h:761
reco::GsfElectron::ShowerShape::e2x5Left
float e2x5Left
Definition: GsfElectron.h:393
reco::GsfElectron::dr03_
IsolationVariables dr03_
Definition: GsfElectron.h:627
reco::GsfElectron::eSeedClusterOverP
float eSeedClusterOverP() const
Definition: GsfElectron.h:230
reco::GsfElectron::setFFlagIsEB
void setFFlagIsEB(const bool b)
Definition: GsfElectron.h:349
reco::GsfElectron::dr04TkSumPt
float dr04TkSumPt() const
Definition: GsfElectron.h:605
reco::GsfElectron::pixelMatchDRz2
float pixelMatchDRz2() const
Definition: GsfElectron.h:927
reco::GsfElectron::TrackClusterMatching::deltaPhiEleClusterAtCalo
float deltaPhiEleClusterAtCalo
Definition: GsfElectron.h:211
reco::LeafCandidate::p4
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:114
reco::GsfElectron::passPflowPreselection_
bool passPflowPreselection_
Definition: GsfElectron.h:770
reco::GsfElectron::pixelMatchSubdetector1
int pixelMatchSubdetector1() const
Definition: GsfElectron.h:922
reco::GsfElectron::MvaInput::earlyBrem
int earlyBrem
Definition: GsfElectron.h:695
reco::GsfElectron::PflowIsolationVariables::sumPhotonEtHighThreshold
float sumPhotonEtHighThreshold
sum pt of PF photons with a higher threshold
Definition: GsfElectron.h:677
reco::GsfElectron::PixelMatchVariables::PixelMatchVariables
PixelMatchVariables()
Definition: GsfElectron.h:913
reco::GsfElectron::e1x5
float e1x5() const
Definition: GsfElectron.h:429
reco::GsfElectron::ShowerShape::e2x5Top
float e2x5Top
Definition: GsfElectron.h:392
reco::GsfElectron::isGap
bool isGap() const
Definition: GsfElectron.h:338
reco::GsfElectron::setMvaOutput
void setMvaOutput(const MvaOutput &mo)
Definition: GsfElectron.h:732
reco::GsfElectron::passingCutBasedPreselection
bool passingCutBasedPreselection() const
Definition: GsfElectron.h:750
reco::GsfElectron::setPixelMatchDPhi1
void setPixelMatchDPhi1(float dPhi1)
Definition: GsfElectron.h:917
reco::GsfElectron::full5x5_e1x5
float full5x5_e1x5() const
Definition: GsfElectron.h:481
reco::GsfElectron::hcalOverEcalValid
bool hcalOverEcalValid() const
Definition: GsfElectron.h:470
reco::GsfElectron::ecalDriven
bool ecalDriven() const
Definition: GsfElectron.cc:168
reco::LeafCandidate::charge
int charge() const final
electric charge
Definition: LeafCandidate.h:106
reco::GsfElectron::hcalPFClusterIso
float hcalPFClusterIso() const
Definition: GsfElectron.h:724
reco::GsfElectron::isEBEtaGap
bool isEBEtaGap() const
Definition: GsfElectron.h:341
CaloTowerDetId.h
reco::GsfElectron::closestCtfTrackRef
virtual TrackRef closestCtfTrackRef() const
Definition: GsfElectron.h:188
reco::GsfElectron::class_
Classification class_
Definition: GsfElectron.h:807
reco::GsfElectron::ClassificationVariables
Definition: GsfElectron.h:780
reco::GsfElectron::trackMomentumAtCalo
math::XYZVectorF trackMomentumAtCalo() const
Definition: GsfElectron.h:277
reco::GsfElectron::setFFlagIsEBEEGap
void setFFlagIsEBEEGap(const bool b)
Definition: GsfElectron.h:351
reco::GsfElectron::nSaturatedXtals
float nSaturatedXtals() const
Definition: GsfElectron.h:527
reco::GsfElectron::setTrackExtrapolations
void setTrackExtrapolations(const TrackExtrapolations &te)
Definition: GsfElectron.h:286
reco::GsfElectron::full5x5_e5x5
float full5x5_e5x5() const
Definition: GsfElectron.h:483
reco::RecoCandidate
Definition: RecoCandidate.h:20
reco::GsfElectron::TrackExtrapolations::momentumAtEleClus
math::XYZVectorF momentumAtEleClus
Definition: GsfElectron.h:269
reco::GsfElectron::SaturationInfo::isSeedSaturated
bool isSeedSaturated
Definition: GsfElectron.h:522
edm::RefVector::push_back
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:67
reco::GsfElectron::closestCtfTrack
virtual ClosestCtfTrack closestCtfTrack() const
Definition: GsfElectron.h:189
reco::GsfElectron::setMvaInput
void setMvaInput(const MvaInput &mi)
Definition: GsfElectron.h:731
HPSPFTauProducerPuppi_cfi.electron
electron
Definition: HPSPFTauProducerPuppi_cfi.py:13
CalibrationSummaryClient_cfi.kind
kind
Definition: CalibrationSummaryClient_cfi.py:37
reco::GsfElectron::trackMomentumAtEleClus
math::XYZVectorF trackMomentumAtEleClus() const
Definition: GsfElectron.h:279
reco::GsfElectron::r9
float r9() const
Definition: GsfElectron.h:432
reco::GsfElectron::PflowIsolationVariables::sumNeutralHadronEt
float sumNeutralHadronEt
sum pt of neutral hadrons // old float neutralHadronIso ;
Definition: GsfElectron.h:672
reco::GsfElectron::TrackClusterMatching::deltaPhiSeedClusterAtCalo
float deltaPhiSeedClusterAtCalo
Definition: GsfElectron.h:213
reco::GsfElectron::sigmaEtaEta
float sigmaEtaEta() const
Definition: GsfElectron.h:426
reco::GsfElectron::ChargeInfo::scPixCharge
int scPixCharge
Definition: GsfElectron.h:124
edm::Ptr< CaloCluster >
reco::Candidate
Definition: Candidate.h:27
reco::GsfElectron::sigmaIetaIeta
float sigmaIetaIeta() const
Definition: GsfElectron.h:427
reco::GsfElectron::BIGBREM
Definition: GsfElectron.h:786
reco::GsfElectron::MvaOutput::status
int status
Definition: GsfElectron.h:713
reco::GsfElectron::pixelMatchSubdetector2
int pixelMatchSubdetector2() const
Definition: GsfElectron.h:923
reco::GsfElectron::mvaOutput
const MvaOutput & mvaOutput() const
Definition: GsfElectron.h:727
reco::GsfElectron::correctedEcalEnergy
float correctedEcalEnergy() const
Definition: GsfElectron.h:869
reco::GsfElectron::electronCluster
CaloClusterPtr electronCluster() const
Definition: GsfElectron.h:228
reco::CaloCluster_iterator
CaloClusterPtrVector::iterator CaloCluster_iterator
Definition: CaloClusterFwd.h:25
reco::GsfElectron::setDeltaPhiSuperClusterAtVtx
void setDeltaPhiSuperClusterAtVtx(float dphi)
Definition: GsfElectron.h:249
reco::GsfElectron::Corrections::trackMomentumError
float trackMomentumError
Definition: GsfElectron.h:838
reco::GsfElectron::eLeft
float eLeft() const
Definition: GsfElectron.h:471
reco::GsfElectron::basicClustersEnd
CaloCluster_iterator basicClustersEnd() const
Definition: GsfElectron.h:307
reco::GsfElectron::ConversionRejection::partner
TrackBaseRef partner
Definition: GsfElectron.h:637
reco::GsfElectron::full5x5_eBottom
float full5x5_eBottom() const
Definition: GsfElectron.h:495
reco::GsfElectron::basicClustersBegin
CaloCluster_iterator basicClustersBegin() const
Definition: GsfElectron.h:306
reco::LeafCandidate::setP4
void setP4(const LorentzVector &p4) final
set 4-momentum
Definition: LeafCandidate.h:158
reco::GsfElectron::ShowerShape::eRight
float eRight
Definition: GsfElectron.h:390
reco::GsfElectron::setAmbiguous
void setAmbiguous(bool flag)
Definition: GsfElectron.h:759
reco::GsfElectron::ShowerShape::e2nd
float e2nd
Definition: GsfElectron.h:387
std
Definition: JetResolutionObject.h:76
reco::GsfElectron::isElectron
bool isElectron() const override
Definition: GsfElectron.h:142
reco::GsfElectron::setClassificationVariables
void setClassificationVariables(const ClassificationVariables &cv)
Definition: GsfElectron.h:801
reco::GsfElectron::fiducialFlags_
FiducialFlags fiducialFlags_
Definition: GsfElectron.h:359
reco::GsfElectron::ShowerShape::invalidHcal
bool invalidHcal
Definition: GsfElectron.h:383
GsfTrackFwd.h
reco::GsfElectron::ShowerShape::e1x5
float e1x5
Definition: GsfElectron.h:370
reco::GsfElectron::convRadius
float convRadius() const
Definition: GsfElectron.h:655
reco::GsfElectron::eTop
float eTop() const
Definition: GsfElectron.h:473
reco::GsfElectron::P4_PFLOW_COMBINATION
Definition: GsfElectron.h:831
reco::GsfElectron::superClusterPosition
math::XYZPoint superClusterPosition() const
Definition: GsfElectron.h:302
reco::GsfElectron::saturationInfo_
SaturationInfo saturationInfo_
Definition: GsfElectron.h:533
reco::GsfElectron::overlap
bool overlap(const Candidate &) const override
check overlap with another candidate
Definition: GsfElectron.cc:152
SuperClusterFwd.h
reco::GsfElectron::setPassCutBasedPreselection
void setPassCutBasedPreselection(bool flag)
Definition: GsfElectron.h:757
reco::GsfElectron::e5x5
float e5x5() const
Definition: GsfElectron.h:431
reco::GsfElectron::setConversionRejectionVariables
void setConversionRejectionVariables(const ConversionRejection &convRej)
Definition: GsfElectron.h:658
reco::GsfElectron::ConversionRejection::dist
float dist
Definition: GsfElectron.h:638
reco::GsfElectron::scSigmaEtaEta
float scSigmaEtaEta() const
Definition: GsfElectron.h:503
reco::GsfElectron::TrackClusterMatching::deltaEtaSuperClusterAtVtx
float deltaEtaSuperClusterAtVtx
Definition: GsfElectron.h:208
reco::GsfElectron::isEBEEGap
bool isEBEEGap() const
Definition: GsfElectron.h:339
reco::GsfElectron::setDr03Isolation
void setDr03Isolation(const IsolationVariables &dr03)
Definition: GsfElectron.h:613
reco::GsfElectron::ShowerShape::hcalDepth2OverEcalBc
float hcalDepth2OverEcalBc
Definition: GsfElectron.h:377
reco::GsfElectron::isolationVariables04
const IsolationVariables & isolationVariables04() const
Definition: GsfElectron.h:620
reco::GsfElectron::Corrections::fromSuperClusterP4
LorentzVector fromSuperClusterP4
Definition: GsfElectron.h:840
LorentzVector
math::XYZTLorentzVector LorentzVector
Definition: HLTMuonMatchAndPlot.h:49
reco::GsfElectron::PflowIsolationVariables::sumHcalClusterEt
float sumHcalClusterEt
Definition: GsfElectron.h:681
SuperCluster.h
reco::GsfElectron::basicClustersSize
int basicClustersSize() const
Definition: GsfElectron.h:303
reco::GsfElectron::PflowIsolationVariables::PflowIsolationVariables
PflowIsolationVariables()
Definition: GsfElectron.h:682
reco::GsfElectron::TrackExtrapolations::positionAtCalo
math::XYZPointF positionAtCalo
Definition: GsfElectron.h:262
reco::GsfElectron::ShowerShape::ShowerShape
ShowerShape()
Definition: GsfElectron.h:396
reco::GsfElectron::MvaOutput
Definition: GsfElectron.h:712
reco::GsfElectron::isSeedSaturated
float isSeedSaturated() const
Definition: GsfElectron.h:528
reco::GsfElectron::full5x5_eLeft
float full5x5_eLeft() const
Definition: GsfElectron.h:492
reco::GsfElectron::ShowerShape::hcalDepth1OverEcalBc
float hcalDepth1OverEcalBc
Definition: GsfElectron.h:376
reco::GsfElectron::deltaEtaEleClusterTrackAtCalo
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:235
reco::GsfElectron::init
void init()
Definition: GsfElectron.cc:10
reco::GsfElectron::eSuperClusterOverP
float eSuperClusterOverP() const
Definition: GsfElectron.h:229
reco::GsfElectron::classification
Classification classification() const
Definition: GsfElectron.h:792
math::XYZVectorF
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:16
reco::GsfElectron::ConversionRejection::radius
float radius
Definition: GsfElectron.h:640
reco::GsfElectron::ConversionRejection::flags
int flags
Definition: GsfElectron.h:636
GlobalVector.h
reco::GsfElectron::eEleClusterOverPout
float eEleClusterOverPout() const
Definition: GsfElectron.h:232
reco::GsfElectron::IsolationVariables::hcalDepth2TowerSumEt
float hcalDepth2TowerSumEt
Definition: GsfElectron.h:545
reco::GsfElectron::SaturationInfo::SaturationInfo
SaturationInfo()
Definition: GsfElectron.h:523
reco::GsfElectron::GAP
Definition: GsfElectron.h:786
reco::GsfElectron::trackerDrivenSeed
bool trackerDrivenSeed() const
Definition: GsfElectron.h:167
reco::GsfElectron::MvaInput::nClusterOutsideMustache
int nClusterOutsideMustache
Definition: GsfElectron.h:700
edm::RefToBase< reco::Track >
reco::GsfElectron::isEBPhiGap
bool isEBPhiGap() const
Definition: GsfElectron.h:342
reco::GsfElectron::ShowerShape::eLeft
float eLeft
Definition: GsfElectron.h:389
reco::GsfElectron::dr03HcalTowerSumEt
float dr03HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:584
reco::GsfElectron::eSeedClusterOverPout
float eSeedClusterOverPout() const
Definition: GsfElectron.h:231
reco::GsfElectron::superCluster
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:163
reco::GsfElectron::full5x5_hcalOverEcalBc
float full5x5_hcalOverEcalBc(int depth=0) const
Definition: GsfElectron.h:486
reco::GsfElectron::ecalEnergyError
float ecalEnergyError() const
Definition: GsfElectron.h:884
reco::GsfElectron::hcalTowersBehindClusters
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
Definition: GsfElectron.h:467
reco::GsfElectron::setIsolation03
void setIsolation03(const IsolationVariables &dr03)
Definition: GsfElectron.h:617
reco::GsfElectron::trackPositionAtVtx
math::XYZPointF trackPositionAtVtx() const
Definition: GsfElectron.h:274
reco::GsfElectron::trackMomentumError
float trackMomentumError() const
Definition: GsfElectron.h:871
reco::GsfElectron::IsolationVariables::ecalRecHitSumEt
float ecalRecHitSumEt
Definition: GsfElectron.h:543
reco::GsfElectron::FiducialFlags::isEBEtaGap
bool isEBEtaGap
Definition: GsfElectron.h:321
reco::GsfElectron::eRight
float eRight() const
Definition: GsfElectron.h:472
reco::GsfElectron::FiducialFlags::isEB
bool isEB
Definition: GsfElectron.h:318
reco::GsfElectron::hcalOverEcal
float hcalOverEcal(const ShowerShape &ss, int depth) const
Definition: GsfElectron.h:433
reco::GsfElectron::ambiguousGsfTracks
const auto & ambiguousGsfTracks() const
Definition: GsfElectron.h:754
reco::GsfElectron::pfIsolationVariables
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:721
reco::GsfElectron::TrackExtrapolations::momentumAtVtx
math::XYZVectorF momentumAtVtx
Definition: GsfElectron.h:263
reco::GsfElectron::ShowerShape::hcalOverEcalBc
std::array< float, 7 > hcalOverEcalBc
Definition: GsfElectron.h:381
reco::GsfElectron::full5x5_eTop
float full5x5_eTop() const
Definition: GsfElectron.h:494
reco::GsfElectron::setCorrectedEcalEnergy
void setCorrectedEcalEnergy(float newEnergy)
Definition: GsfElectron.cc:174
reco::GsfElectron::dr04TkSumPtHEEP
float dr04TkSumPtHEEP() const
Definition: GsfElectron.h:606
reco::GsfElectron::PixelMatchVariables::dRz1
float dRz1
Pixel match variable: deltaRz for innermost hit.
Definition: GsfElectron.h:908
reco::Candidate::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
reco::GsfElectron::IsolationVariables::IsolationVariables
IsolationVariables()
Definition: GsfElectron.h:551
reco::GsfElectron::setEcalEnergyError
void setEcalEnergyError(float energyError)
Definition: GsfElectron.h:882
reco::GsfElectron::BADTRACK
Definition: GsfElectron.h:786
reco::GsfElectron::Corrections::isEcalEnergyCorrected
bool isEcalEnergyCorrected
Definition: GsfElectron.h:834
reco::GsfElectron::ctfGsfOverlap
float ctfGsfOverlap() const
Definition: GsfElectron.h:165
math::XYZPointF
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
reco::GsfElectron::TrackPositionAtVtx
math::XYZPointF TrackPositionAtVtx() const
Definition: GsfElectron.h:289
reco::GsfElectron::caloEnergy
float caloEnergy() const
Definition: GsfElectron.h:886
reco::GsfElectron::SaturationInfo
Definition: GsfElectron.h:520
edm::RefVector::size
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
reco::GsfElectron::scSigmaIEtaIEta
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:504
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
reco::GsfElectron::ambiguous
bool ambiguous() const
Definition: GsfElectron.h:752
reco::GsfElectron::dr04IsolationVariables
const IsolationVariables & dr04IsolationVariables() const
Definition: GsfElectron.h:610
reco::GsfElectron::passMvaPreslection_
bool passMvaPreslection_
Definition: GsfElectron.h:771
reco::GsfElectron::deltaPhiEleClusterTrackAtCalo
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:238
reco::GsfElectron::MvaOutput::mvaByPassForIsolated
float mvaByPassForIsolated
Definition: GsfElectron.h:716
GlobalPoint.h
reco::GsfElectron::isGsfScPixChargeConsistent
bool isGsfScPixChargeConsistent() const
Definition: GsfElectron.h:137
reco::GsfElectron::PflowIsolationVariables::sumEcalClusterEt
float sumEcalClusterEt
Definition: GsfElectron.h:680
reco::GsfElectron::mvaInput
const MvaInput & mvaInput() const
Definition: GsfElectron.h:726
reco::GsfElectron::fiducialFlags
const FiducialFlags & fiducialFlags() const
Definition: GsfElectron.h:346
reco::GsfElectron::hcalTowerSumEt
float hcalTowerSumEt(const IsolationVariables &iv, int depth) const
Definition: GsfElectron.h:568
reco::GsfElectron::ShowerShape::e5x5
float e5x5
Definition: GsfElectron.h:372
reco::GsfElectron::setCore
void setCore(const reco::GsfElectronCoreRef &core)
Definition: GsfElectron.h:160
reco::GsfElectron::full5x5_sigmaIphiIphi
float full5x5_sigmaIphiIphi() const
Definition: GsfElectron.h:480
reco::GsfElectron::dr03EcalRecHitSumEt
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:567
reco::GsfElectron::ShowerShape::e2x5Bottom
float e2x5Bottom
Definition: GsfElectron.h:395
reco::GsfElectron::shFracInnerHits
float shFracInnerHits() const
Definition: GsfElectron.h:187
reco::GsfElectron::ambiguous_
bool ambiguous_
Definition: GsfElectron.h:772
reco::GsfElectron::ConversionRejection::vtxFitProb
float vtxFitProb
Definition: GsfElectron.h:641
reco::GsfElectron::Corrections
Definition: GsfElectron.h:833
reco::GsfElectron::TrackClusterMatching::deltaEtaSeedClusterAtCalo
float deltaEtaSeedClusterAtCalo
Definition: GsfElectron.h:209
reco::GsfElectron::PflowIsolationVariables::sumChargedHadronPt
float sumChargedHadronPt
sum-pt of charged Hadron // old float chargedHadronIso ;
Definition: GsfElectron.h:671
reco::GsfElectron::ConversionRejection::ConversionRejection
ConversionRejection()
Definition: GsfElectron.h:642
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:117
reco::GsfElectron::TrackExtrapolations::positionAtVtx
math::XYZPointF positionAtVtx
Definition: GsfElectron.h:261
reco::GsfElectron::chargeInfo_
ChargeInfo chargeInfo_
Definition: GsfElectron.h:147
reco::GsfElectron::ecalEnergy
float ecalEnergy() const
Definition: GsfElectron.h:883
reco::GsfElectron::PixelMatchVariables::dPhi2
float dPhi2
Pixel match variable: deltaPhi for second hit.
Definition: GsfElectron.h:906
reco::GsfElectron::ShowerShape::hcalDepth2OverEcal
float hcalDepth2OverEcal
Definition: GsfElectron.h:375
reco::GsfElectron::trackFbrem
float trackFbrem() const
Definition: GsfElectron.h:789