CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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"
13 //#include "DataFormats/Math/interface/LorentzVector.h"
17 #include <vector>
18 #include <limits>
19 
20 namespace reco
21  {
22 
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  * \author Ursula Berthon - Laboratoire Leprince-Ringuet - �cole polytechnique, CNRS/IN2P3
34  *
35  * \version $Id: GsfElectron.h,v 1.43 2011/01/14 17:45:58 chamont Exp $
36  *
37  ****************************************************************************/
38 
39 class GsfElectron : public RecoCandidate
40  {
41 
42  //=======================================================
43  // Constructors
44  //
45  // The clone() method with arguments, and the copy
46  // constructor with edm references is designed for
47  // someone which want to duplicates all
48  // collections.
49  //=======================================================
50 
51  public :
52 
53  // some nested structures defined later on
54  struct ChargeInfo ;
55  struct TrackClusterMatching ;
56  struct TrackExtrapolations ;
57  struct ClosestCtfTrack ;
58  struct FiducialFlags ;
59  struct ShowerShape ;
60  struct IsolationVariables ;
61  struct ConversionRejection ;
62 
63  GsfElectron() ;
64  GsfElectron( const GsfElectronCoreRef & ) ;
66  (
67  const GsfElectron &,
68  const GsfElectronCoreRef &
69  ) ;
71  (
72  const GsfElectron & electron,
73  const GsfElectronCoreRef & core,
75  const TrackRef & closestCtfTrack,
76  const TrackBaseRef & conversionPartner,
77  const GsfTrackRefVector & ambiguousTracks
78  ) ;
80  (
81  const LorentzVector & p4, int charge,
82  const ChargeInfo &,
83  const GsfElectronCoreRef &,
84  const TrackClusterMatching &,
85  const TrackExtrapolations &,
86  const ClosestCtfTrack &,
87  const FiducialFlags &,
88  const ShowerShape &,
89  const ConversionRejection &,
90  float fbrem
91  ) ;
92  GsfElectron * clone() const ;
94  (
95  const GsfElectronCoreRef & core,
96  const CaloClusterPtr & electronCluster,
97  const TrackRef & closestCtfTrack,
98  const TrackBaseRef & conversionPartner,
99  const GsfTrackRefVector & ambiguousTracks
100  ) const ;
101  virtual ~GsfElectron() {} ;
102 
103 
104  //=======================================================
105  // Candidate methods and charge information
106  //
107  // The gsf electron producer has tried to best evaluate
108  // the four momentum and charge and given those values to
109  // the GsfElectron constructor, which forwarded them to
110  // the Candidate constructor. Those values can be retreived
111  // with getters inherited from Candidate : p4() and charge().
112  //=======================================================
113 
114  public:
115 
116  // Inherited from Candidate
117  // const LorentzVector & charge() const ;
118  // const LorentzVector & p4() const ;
119 
120  // Complementary struct
121  struct ChargeInfo
122  {
130  {}
131  } ;
132 
133  // Charge info accessors
134  // to get gsf track charge: gsfTrack()->charge()
135  // to get ctf track charge, if closestCtfTrackRef().isNonnull(): closestCtfTrackRef()->charge()
136  int scPixCharge() const { return chargeInfo_.scPixCharge ; }
140  const ChargeInfo & chargeInfo() const { return chargeInfo_ ; }
141 
142  // Candidate redefined methods
143  virtual bool isElectron() const { return true ; }
144  virtual bool overlap( const Candidate & ) const ;
145 
146  private:
147 
148  // Complementary attributes
150 
151 
152  //=======================================================
153  // Core Attributes
154  //
155  // They all have been computed before, when building the
156  // collection of GsfElectronCore instances. Each GsfElectron
157  // has a reference toward a GsfElectronCore.
158  //=======================================================
159 
160  public:
161 
162  // accessors
163  virtual GsfElectronCoreRef core() const { return core_ ; }
164 
165  // forward core methods
166  SuperClusterRef superCluster() const { return core()->superCluster() ; }
167  GsfTrackRef gsfTrack() const { return core()->gsfTrack() ; }
168  bool ecalDrivenSeed() const { return core()->ecalDrivenSeed() ; }
169  bool trackerDrivenSeed() const { return core()->trackerDrivenSeed() ; }
170  SuperClusterRef pflowSuperCluster() const { return core()->pflowSuperCluster() ; }
171 
172  private:
173 
174  // attributes
176 
177 
178  //=======================================================
179  // Track-Cluster Matching Attributes
180  //=======================================================
181 
182  public:
183 
185  {
186  CaloClusterPtr electronCluster ; // basic cluster best matching gsf track
187  float eSuperClusterOverP ; // the supercluster energy / track momentum at the PCA to the beam spot
188  float eSeedClusterOverP ; // the seed cluster energy / track momentum at the PCA to the beam spot
189  float eSeedClusterOverPout ; // the seed cluster energy / track momentum at calo extrapolated from the outermost track state
190  float eEleClusterOverPout ; // the electron cluster energy / track momentum at calo extrapolated from the outermost track state
191  float deltaEtaSuperClusterAtVtx ; // the supercluster eta - track eta position at calo extrapolated from innermost track state
192  float deltaEtaSeedClusterAtCalo ; // the seed cluster eta - track eta position at calo extrapolated from the outermost track state
193  float deltaEtaEleClusterAtCalo ; // the electron cluster eta - track eta position at calo extrapolated from the outermost state
194  float deltaPhiEleClusterAtCalo ; // the electron cluster phi - track phi position at calo extrapolated from the outermost track state
195  float deltaPhiSuperClusterAtVtx ; // the supercluster phi - track phi position at calo extrapolated from the innermost track state
196  float deltaPhiSeedClusterAtCalo ; // the seed cluster phi - track phi position at calo extrapolated from the outermost track state
197  } ;
198 
199  // accessors
212 
213  // for backward compatibility, usefull ?
216 
217 
218  private:
219 
220  // attributes
222 
223 
224  //=======================================================
225  // Track extrapolations
226  //=======================================================
227 
228  public :
229 
231  {
232  math::XYZPoint positionAtVtx ; // the track PCA to the beam spot
233  math::XYZPoint positionAtCalo ; // the track PCA to the supercluster position
234  math::XYZVector momentumAtVtx ; // the track momentum at the PCA to the beam spot
235  math::XYZVector momentumAtCalo ; // the track momentum extrapolated at the supercluster position from the innermost track state
236  math::XYZVector momentumOut ; // the track momentum extrapolated at the seed cluster position from the outermost track state
237  math::XYZVector momentumAtEleClus ; // the track momentum extrapolated at the ele cluster position from the outermost track state
238  math::XYZVector momentumAtVtxWithConstraint ; // the track momentum at the PCA to the beam spot using bs constraint
239  } ;
240 
241  // accessors
250 
251  // for backward compatibility
254 
255 
256  private:
257 
258  // attributes
260 
261 
262  //=======================================================
263  // SuperCluster direct access
264  //=======================================================
265 
266  public :
267 
268  // direct accessors
269  math::XYZPoint superClusterPosition() const { return superCluster()->position() ; } // the super cluster position
270  int basicClustersSize() const { return superCluster()->clustersSize() ; } // number of basic clusters inside the supercluster
271  CaloCluster_iterator basicClustersBegin() const { return superCluster()->clustersBegin() ; }
272  CaloCluster_iterator basicClustersEnd() const { return superCluster()->clustersEnd() ; }
273 
274  // for backward compatibility
275  math::XYZPoint caloPosition() const { return superCluster()->position() ; }
276 
277 
278  //=======================================================
279  // Other tracks
280  //=======================================================
281 
282  public :
283 
285  {
286  TrackRef ctfTrack ; // best matching ctf track
287  float shFracInnerHits ; // fraction of common hits between the ctf and gsf tracks
289  } ;
290 
291  // accessors
292  TrackRef closestCtfTrackRef() const { return closestCtfTrack_.ctfTrack ; } // get the CTF track best matching the GTF associated to this electron
293  float shFracInnerHits() const { return closestCtfTrack_.shFracInnerHits ; } // measure the fraction of common hits between the GSF and CTF tracks
294  const ClosestCtfTrack & closestCtfTrack() const { return closestCtfTrack_ ; }
298 
299  // setters
302 
303 
304  private:
305 
306  // attributes
308  GsfTrackRefVector ambiguousGsfTracks_ ; // ambiguous gsf tracks
309 
310 
311  //=======================================================
312  // Fiducial Flags
313  //=======================================================
314 
315  public :
316 
318  {
319  bool isEB ; // true if particle is in ECAL Barrel
320  bool isEE ; // true if particle is in ECAL Endcaps
321  bool isEBEEGap ; // true if particle is in the crack between EB and EE
322  bool isEBEtaGap ; // true if particle is in EB, and inside the eta gaps between modules
323  bool isEBPhiGap ; // true if particle is in EB, and inside the phi gaps between modules
324  bool isEEDeeGap ; // true if particle is in EE, and inside the gaps between dees
325  bool isEERingGap ; // true if particle is in EE, and inside the gaps between rings
330  {}
331  } ;
332 
333  // accessors
334  bool isEB() const { return fiducialFlags_.isEB ; }
335  bool isEE() const { return fiducialFlags_.isEE ; }
336  bool isGap() const { return ((isEBEEGap())||(isEBGap())||(isEEGap())) ; }
337  bool isEBEEGap() const { return fiducialFlags_.isEBEEGap ; }
338  bool isEBGap() const { return (isEBEtaGap()||isEBPhiGap()) ; }
339  bool isEBEtaGap() const { return fiducialFlags_.isEBEtaGap ; }
340  bool isEBPhiGap() const { return fiducialFlags_.isEBPhiGap ; }
341  bool isEEGap() const { return (isEEDeeGap()||isEERingGap()) ; }
342  bool isEEDeeGap() const { return fiducialFlags_.isEEDeeGap ; }
343  bool isEERingGap() const { return fiducialFlags_.isEERingGap ; }
344  const FiducialFlags & fiducialFlags() const { return fiducialFlags_ ; }
345 
346 
347  private:
348 
349  // attributes
351 
352 
353  //=======================================================
354  // Shower Shape Variables
355  //=======================================================
356 
357  public :
358 
359  struct ShowerShape
360  {
361  float sigmaEtaEta ; // weighted cluster rms along eta and inside 5x5 (absolute eta)
362  float sigmaIetaIeta ; // weighted cluster rms along eta and inside 5x5 (new, Xtal eta)
363  float e1x5 ; // energy inside 1x5 in etaxphi around the seed Xtal
364  float e2x5Max ; // energy inside 2x5 in etaxphi around the seed Xtal (max bwt the 2 possible sums)
365  float e5x5 ; // energy inside 5x5 in etaxphi around the seed Xtal
366  float hcalDepth1OverEcal ; // hcal over ecal seed cluster energy using first hcal depth (hcal is energy of towers within dR=015)
367  float hcalDepth2OverEcal ; // hcal over ecal seed cluster energy using 2nd hcal depth (hcal is energy of towers within dR=015)
369  : sigmaEtaEta(std::numeric_limits<float>::infinity()),
370  sigmaIetaIeta(std::numeric_limits<float>::infinity()),
371  e1x5(0.), e2x5Max(0.), e5x5(0.),
373  {}
374  } ;
375 
376  // accessors
377  float sigmaEtaEta() const { return showerShape_.sigmaEtaEta ; }
378  float sigmaIetaIeta() const { return showerShape_.sigmaIetaIeta ; }
379  float e1x5() const { return showerShape_.e1x5 ; }
380  float e2x5Max() const { return showerShape_.e2x5Max ; }
381  float e5x5() const { return showerShape_.e5x5 ; }
384  float hcalOverEcal() const { return hcalDepth1OverEcal() + hcalDepth2OverEcal() ; }
385  const ShowerShape & showerShape() const { return showerShape_ ; }
386 
387  // for backward compatibility
388  float scSigmaEtaEta() const { return sigmaEtaEta() ; }
389  float scSigmaIEtaIEta() const { return sigmaIetaIeta() ; }
390  float scE1x5() const { return e1x5() ; }
391  float scE2x5Max() const { return e2x5Max() ; }
392  float scE5x5() const { return e5x5() ; }
393  float hadronicOverEm() const {return hcalOverEcal();}
394  float hadronicOverEm1() const {return hcalDepth1OverEcal();}
395  float hadronicOverEm2() const {return hcalDepth2OverEcal();}
396 
397 
398  private:
399 
400  // attributes
402 
403 
404  //=======================================================
405  // Isolation Variables
406  //=======================================================
407 
408  public :
409 
411  {
412  float tkSumPt ; // track iso deposit with electron footprint removed
413  float ecalRecHitSumEt ; // ecal iso deposit with electron footprint removed
414  float hcalDepth1TowerSumEt ; // hcal depht 1 iso deposit with electron footprint removed
415  float hcalDepth2TowerSumEt ; // hcal depht 2 iso deposit with electron footprint removed
418  {}
419  } ;
420 
421  // 03 accessors
422  float dr03TkSumPt() const { return dr03_.tkSumPt ; }
423  float dr03EcalRecHitSumEt() const { return dr03_.ecalRecHitSumEt ; }
427  const IsolationVariables & dr03IsolationVariables() const { return dr03_ ; }
428 
429  // 04 accessors
430  float dr04TkSumPt() const { return dr04_.tkSumPt ; }
431  float dr04EcalRecHitSumEt() const { return dr04_.ecalRecHitSumEt ; }
435  const IsolationVariables & dr04IsolationVariables() const { return dr04_ ; }
436 
437  // setters ?!?
438  void setDr03Isolation( const IsolationVariables & dr03 ) { dr03_ = dr03 ; }
439  void setDr04Isolation( const IsolationVariables & dr04 ) { dr04_ = dr04 ; }
440 
441  // for backward compatibility
442  void setIsolation03( const IsolationVariables & dr03 ) { dr03_ = dr03 ; }
443  void setIsolation04( const IsolationVariables & dr04 ) { dr04_ = dr04 ; }
444  const IsolationVariables & isolationVariables03() const { return dr03_ ; }
445  const IsolationVariables & isolationVariables04() const { return dr04_ ; }
446 
447  private:
448 
449  // attributes
452 
453 
454  //=======================================================
455  // Conversion Rejection Information
456  //=======================================================
457 
458  public :
459 
461  {
462  int flags ; // -infinity:not-computed, other: as computed by Puneeth conversion code
463  TrackBaseRef partner ; // conversion partner
464  float dist ; // distance to the conversion partner
465  float dcot ; // difference of cot(angle) with the conversion partner track
466  float radius ; // signed conversion radius
468  : flags(-std::numeric_limits<float>::infinity()),
469  dist(std::numeric_limits<float>::infinity()),
470  dcot(std::numeric_limits<float>::infinity()),
471  radius(std::numeric_limits<float>::infinity())
472  {}
473  } ;
474 
475  // accessors
476  int convFlags() const { return conversionRejection_.flags ; }
478  float convDist() const { return conversionRejection_.dist ; }
479  float convDcot() const { return conversionRejection_.dcot ; }
480  float convRadius() const { return conversionRejection_.radius ; }
482 
483  private:
484 
485  // attributes
487 
488 
489  //=======================================================
490  // Preselection, Ambiguity and Pflow Information
491  //=======================================================
492 
493  public :
494 
495  // accessors
496  bool ecalDriven() const ; // return true if ecalDrivenSeed() and passingCutBasedPreselection()
498  bool passingMvaPreselection() const { return passMvaPreslection_ ; }
499  bool ambiguous() const { return ambiguous_ ; }
500  float mva() const { return mva_ ; }
501 
502  // setters
505  void setAmbiguous( bool flag ) { ambiguous_ = flag ; }
506  void setMva( float mva ) { mva_ = mva ; }
507 
508  private:
509 
510  // attributes
513  bool ambiguous_ ;
514  float mva_ ; // electron ID variable from mva (tracker driven electrons)
515 
516 
517  //=======================================================
518  // Brem Fraction and Classification
519  // * fbrem given to the GsfElectron constructor
520  // * classification computed later
521  //=======================================================
522 
523  public :
524 
526 
527  // accessors
528  float fbrem() const { return fbrem_ ; }
529  int numberOfBrems() const { return basicClustersSize()-1 ; }
530  Classification classification() const { return class_ ; }
531 
532  // setters
533  void classifyElectron( Classification myclass ) { class_ = myclass ; }
534 
535  private:
536 
537  // attributes
538  float fbrem_ ; // the brem fraction from gsf fit: (track momentum in - track momentum out) / track momentum in
539  Classification class_ ; // fbrem and number of clusters based electron classification
540 
541 
542  //=======================================================
543  // Corrections
544  //
545  // The only methods, with classification, which modify
546  // the electrons after they have been constructed.
547  // They change a given characteristic, such as the super-cluster
548  // energy, and propagate the change consistently
549  // to all the depending attributes.
550  // We expect the methods to be called in a given order
551  // and so to store specific kind of corrections
552  // 1) classify()
553  // 2) correctEcalEnergy() : depending on classification and eta
554  // 3) correctMomemtum() : depending on classification and acal energy and tracker momentum errors
555  //
556  // Beware that correctEcalEnergy() is modifying few attributes which
557  // were potentially used for preselection, whose value used in
558  // preselection will not be available any more :
559  // hcalDepth1OverEcal, hcalDepth2OverEcal, eSuperClusterOverP,
560  // eSeedClusterOverP, eEleClusterOverPout.
561  //=======================================================
562 
563  public :
564 
565  struct Corrections
566  {
567  bool isEcalEnergyCorrected ; // true if ecal energy has been corrected
568  float ecalEnergy ; // ecal corrected energy (if !isEcalEnergyCorrected this value is identical to the supercluster energy)
569  float ecalEnergyError ; // error on correctedCaloEnergy
570  bool isMomentumCorrected ; // true if E-p combination has been applied (if not the electron momentum is the ecal corrected energy)
571  float trackMomentumError ; // track momentum error from gsf fit
572  float electronMomentumError ; // the final electron momentum error
576  {}
577  } ;
578 
579  // correctors
580  void correctEcalEnergy( float newEnergy, float newEnergyError ) ;
581  void correctMomentum
582  ( const LorentzVector & momentum,
584 
585  // accessors
587  float ecalEnergy() const { return corrections_.ecalEnergy ; }
588  float ecalEnergyError() const { return corrections_.ecalEnergyError ; }
592  const Corrections & corrections() const { return corrections_ ; }
593 
594  // for backward compatibility
595  float caloEnergy() const { return ecalEnergy() ; }
596  //void correctElectronEnergyScale( const float newEnergy )
597  // { correctEcalEnergy(newEnergy) ; }
598  //void correctElectronFourMomentum
599  // ( const LorentzVector & m,
600  // float & enErr, float & tMerr)
601  // { correctMomentum(m,enErr,tMerr,0) ; }
602  bool isEnergyScaleCorrected() const { return isEcalEnergyCorrected() ; }
603 
604  private:
605 
606  // attributes
608 
609  } ;
610 
611  //typedef GsfElectron PixelMatchGsfElectron ;
612 
613  }
614 
615 #endif
CaloCluster_iterator basicClustersEnd() const
Definition: GsfElectron.h:272
CaloClusterPtr electronCluster() const
Definition: GsfElectron.h:200
bool isEEGap() const
Definition: GsfElectron.h:341
void setDr04Isolation(const IsolationVariables &dr04)
Definition: GsfElectron.h:439
const ShowerShape & showerShape() const
Definition: GsfElectron.h:385
float dr04HcalTowerSumEt() const
Definition: GsfElectron.h:434
float electronMomentumError() const
Definition: GsfElectron.h:591
math::XYZVector trackMomentumAtEleClus() const
Definition: GsfElectron.h:247
math::XYZPoint TrackPositionAtVtx() const
Definition: GsfElectron.h:252
long int flag
Definition: mlp_lapack.h:47
void setPassCutBasedPreselection(bool flag)
Definition: GsfElectron.h:503
float trackMomentumError() const
Definition: GsfElectron.h:590
GsfTrackRefVector::const_iterator ambiguousGsfTracksBegin() const
Definition: GsfElectron.h:296
float scSigmaEtaEta() const
Definition: GsfElectron.h:388
const Corrections & corrections() const
Definition: GsfElectron.h:592
math::XYZPoint trackPositionAtVtx() const
Definition: GsfElectron.h:242
void classifyElectron(Classification myclass)
Definition: GsfElectron.h:533
bool isEBEtaGap() const
Definition: GsfElectron.h:339
float eSuperClusterOverP() const
Definition: GsfElectron.h:201
const TrackExtrapolations & trackExtrapolations() const
Definition: GsfElectron.h:249
const IsolationVariables & isolationVariables03() const
Definition: GsfElectron.h:444
bool isEBEEGap() const
Definition: GsfElectron.h:337
float dr04HcalDepth1TowerSumEt() const
Definition: GsfElectron.h:432
float hcalDepth2OverEcal() const
Definition: GsfElectron.h:383
float hadronicOverEm1() const
Definition: GsfElectron.h:394
math::XYZVector trackMomentumAtVtxWithConstraint() const
Definition: GsfElectron.h:248
Classification class_
Definition: GsfElectron.h:539
ConversionRejection conversionRejection_
Definition: GsfElectron.h:486
virtual Vector momentum() const
spatial momentum vector
const ClosestCtfTrack & closestCtfTrack() const
Definition: GsfElectron.h:294
float dr04TkSumPt() const
Definition: GsfElectron.h:430
Corrections corrections_
Definition: GsfElectron.h:607
bool isEERingGap() const
Definition: GsfElectron.h:343
bool passingCutBasedPreselection() const
Definition: GsfElectron.h:497
bool passingMvaPreselection() const
Definition: GsfElectron.h:498
float dr03HcalDepth2TowerSumEt() const
Definition: GsfElectron.h:425
float fbrem() const
Definition: GsfElectron.h:528
void setAmbiguous(bool flag)
Definition: GsfElectron.h:505
SuperClusterRef superCluster() const
reference to a SuperCluster
Definition: GsfElectron.h:166
GsfTrackRefVector ambiguousGsfTracks_
Definition: GsfElectron.h:308
float scE2x5Max() const
Definition: GsfElectron.h:391
float e2x5Max() const
Definition: GsfElectron.h:380
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:242
int basicClustersSize() const
Definition: GsfElectron.h:270
float convDist() const
Definition: GsfElectron.h:478
ChargeInfo chargeInfo_
Definition: GsfElectron.h:149
float convRadius() const
Definition: GsfElectron.h:480
void setDr03Isolation(const IsolationVariables &dr03)
Definition: GsfElectron.h:438
bool isEEDeeGap() const
Definition: GsfElectron.h:342
bool ambiguous() const
Definition: GsfElectron.h:499
const IsolationVariables & dr04IsolationVariables() const
Definition: GsfElectron.h:435
bool isEcalEnergyCorrected() const
Definition: GsfElectron.h:586
math::XYZTLorentzVector LorentzVector
Definition: HLTMuonBPAG.h:55
bool isEE() const
Definition: GsfElectron.h:335
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:237
bool isEB() const
Definition: GsfElectron.h:334
TrackRef closestCtfTrackRef() const
Definition: GsfElectron.h:292
GsfTrackRefVector::const_iterator ambiguousGsfTracksEnd() const
Definition: GsfElectron.h:297
float convDcot() const
Definition: GsfElectron.h:479
void clearAmbiguousGsfTracks()
Definition: GsfElectron.h:300
bool isGsfScPixChargeConsistent() const
Definition: GsfElectron.h:138
const IsolationVariables & isolationVariables04() const
Definition: GsfElectron.h:445
bool isGap() const
Definition: GsfElectron.h:336
float dr04HcalDepth2TowerSumEt() const
Definition: GsfElectron.h:433
bool isMomentumCorrected() const
Definition: GsfElectron.h:589
float mva() const
Definition: GsfElectron.h:500
bool isGsfCtfChargeConsistent() const
Definition: GsfElectron.h:139
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:205
virtual bool isElectron() const
Definition: GsfElectron.h:143
float sigmaIetaIeta() const
Definition: GsfElectron.h:378
float hadronicOverEm() const
Definition: GsfElectron.h:393
float eSeedClusterOverP() const
Definition: GsfElectron.h:202
ClosestCtfTrack closestCtfTrack_
Definition: GsfElectron.h:307
float dr04EcalRecHitSumEt() const
Definition: GsfElectron.h:431
math::XYZVector trackMomentumOut() const
Definition: GsfElectron.h:246
math::XYZVector trackMomentumAtVtx() const
Definition: GsfElectron.h:244
FiducialFlags fiducialFlags_
Definition: GsfElectron.h:350
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:209
ShowerShape showerShape_
Definition: GsfElectron.h:401
void correctMomentum(const LorentzVector &momentum, float trackMomentumError, float electronMomentumError)
Definition: GsfElectron.cc:153
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:208
int numberOfBrems() const
Definition: GsfElectron.h:529
virtual int charge() const
electric charge
float hcalOverEcal() const
Definition: GsfElectron.h:384
void setPassMvaPreselection(bool flag)
Definition: GsfElectron.h:504
const double infinity
float dr03TkSumPt() const
Definition: GsfElectron.h:422
float dr03HcalDepth1TowerSumEt() const
Definition: GsfElectron.h:424
float eEleClusterOverPout() const
Definition: GsfElectron.h:204
float eSeedClusterOverPout() const
Definition: GsfElectron.h:203
float hadronicOverEm2() const
Definition: GsfElectron.h:395
int scPixCharge() const
Definition: GsfElectron.h:136
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:389
void setIsolation04(const IsolationVariables &dr04)
Definition: GsfElectron.h:443
IsolationVariables dr04_
Definition: GsfElectron.h:451
float ecalEnergyError() const
Definition: GsfElectron.h:588
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:210
void setDeltaPhiSuperClusterAtVtx(float dphi)
Definition: GsfElectron.h:215
virtual GsfElectronCoreRef core() const
Definition: GsfElectron.h:163
bool isEnergyScaleCorrected() const
Definition: GsfElectron.h:602
math::XYZPoint superClusterPosition() const
Definition: GsfElectron.h:269
float hcalDepth1OverEcal() const
Definition: GsfElectron.h:382
math::XYZVector trackMomentumAtCalo() const
Definition: GsfElectron.h:245
float shFracInnerHits() const
Definition: GsfElectron.h:293
bool isEBGap() const
Definition: GsfElectron.h:338
GsfTrackRef gsfTrack() const
reference to a GsfTrack
Definition: GsfElectron.h:167
GsfElectronCoreRef core_
Definition: GsfElectron.h:175
virtual ~GsfElectron()
Definition: GsfElectron.h:101
TrackBaseRef convPartner() const
Definition: GsfElectron.h:477
const ChargeInfo & chargeInfo() const
Definition: GsfElectron.h:140
CaloCluster_iterator basicClustersBegin() const
Definition: GsfElectron.h:271
void clear()
Clear the vector.
Definition: RefVector.h:129
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:207
void setMva(float mva)
Definition: GsfElectron.h:506
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
void correctEcalEnergy(float newEnergy, float newEnergyError)
Definition: GsfElectron.cc:137
float e1x5() const
Definition: GsfElectron.h:379
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
Classification classification() const
Definition: GsfElectron.h:530
RefItemVec::size_type size_type
Definition: RefVector.h:52
virtual bool overlap(const Candidate &) const
check overlap with another candidate
Definition: GsfElectron.cc:104
math::XYZPoint caloPosition() const
Definition: GsfElectron.h:275
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:295
float ecalEnergy() const
Definition: GsfElectron.h:587
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:39
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:423
float e5x5() const
Definition: GsfElectron.h:381
void setIsolation03(const IsolationVariables &dr03)
Definition: GsfElectron.h:442
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:206
const IsolationVariables & dr03IsolationVariables() const
Definition: GsfElectron.h:427
int convFlags() const
Definition: GsfElectron.h:476
math::XYZPoint trackPositionAtCalo() const
Definition: GsfElectron.h:243
bool isEBPhiGap() const
Definition: GsfElectron.h:340
bool isGsfCtfScPixChargeConsistent() const
Definition: GsfElectron.h:137
const TrackClusterMatching & trackClusterMatching() const
Definition: GsfElectron.h:211
bool trackerDrivenSeed() const
Definition: GsfElectron.h:169
GsfElectron * clone() const
returns a clone of the Candidate object
Definition: GsfElectron.cc:113
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:61
size_type size() const
Size of the RefVector.
Definition: RefVector.h:85
float dr03HcalTowerSumEt() const
Definition: GsfElectron.h:426
const ConversionRejection & conversionRejectionVariables() const
Definition: GsfElectron.h:481
void setDeltaEtaSuperClusterAtVtx(float de)
Definition: GsfElectron.h:214
float scE5x5() const
Definition: GsfElectron.h:392
TrackClusterMatching trackClusterMatching_
Definition: GsfElectron.h:221
bool passCutBasedPreselection_
Definition: GsfElectron.h:511
IsolationVariables dr03_
Definition: GsfElectron.h:450
void addAmbiguousGsfTrack(const reco::GsfTrackRef &t)
Definition: GsfElectron.h:301
TrackExtrapolations trackExtrapolations_
Definition: GsfElectron.h:259
float caloEnergy() const
Definition: GsfElectron.h:595
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
bool ecalDriven() const
Definition: GsfElectron.cc:126
SuperClusterRef pflowSuperCluster() const
Definition: GsfElectron.h:170
const FiducialFlags & fiducialFlags() const
Definition: GsfElectron.h:344
float sigmaEtaEta() const
Definition: GsfElectron.h:377
float scE1x5() const
Definition: GsfElectron.h:390
bool ecalDrivenSeed() const
Definition: GsfElectron.h:168
math::XYZPoint TrackPositionAtCalo() const
Definition: GsfElectron.h:253