CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GsfElectronCore.h
Go to the documentation of this file.
1 #ifndef GsfElectronCore_h
2 #define GsfElectronCore_h
3 
11 
12 #include <vector>
13 
14 
15 /****************************************************************************
16  * \class reco::GsfElectronCore
17  *
18  * Core description of an electron, including a a GsfTrack seeded from an
19  * ElectronSeed. The seed was either calo driven, or tracker driven
20  * (particle flow). In the latter case, the GsfElectronCore also
21  * contains a reference to the pflow supercluster.
22  *
23  ****************************************************************************/
24 
25 
26 namespace reco
27  {
28 
30  {
31 
32  public :
33 
34  // construction
35  GsfElectronCore() ;
36  GsfElectronCore( const GsfTrackRef & ) ;
37  GsfElectronCore * clone() const ;
39 
40  // accessors
41  const GsfTrackRef & gsfTrack() const { return gsfTrack_ ; }
42  const SuperClusterRef & superCluster() const
44  TrackRef ctfTrack() const { return closestCtfTrack_ ; } // get the CTF track best matching the GTF associated to this electron
45  float ctfGsfOverlap() const { return ctfGsfOverlap_ ; } // measure the fraction of common hits between the GSF and CTF tracks
46  bool ecalDrivenSeed() const { return isEcalDrivenSeed_ ; }
47  bool trackerDrivenSeed() const { return isTrackerDrivenSeed_ ; }
48 
53 
54  // setters
56  void setSuperCluster( const SuperClusterRef & scl ) { superCluster_ = scl ; }
57  void setCtfTrack( const TrackRef & closestCtfTrack, float ctfGsfOverlap )
58  { closestCtfTrack_ = closestCtfTrack ; ctfGsfOverlap_ = ctfGsfOverlap ; }
59 
64 
65  // pflow eventual additionnal info
68 
69  private :
70 
74  TrackRef closestCtfTrack_ ; // best matching ctf track
75  // vector of references to Conversions
77  //vector of references for 1-leg
79  float ctfGsfOverlap_ ; // fraction of common hits between the ctf and gsf tracks
82 
83  } ;
84 
85  }
86 
87 //*****************************************************************************
88 //
89 // \author David Chamont - Laboratoire Leprince-Ringuet - École polytechnique, CNRS/IN2P3
90 // \author Claude Charlot - Laboratoire Leprince-Ringuet - École polytechnique, CNRS/IN2P3
91 //
92 //
93 // Revision 1.11.2.1 2011/03/04 18:22:31 chamont
94 // backward incompatible cleaning
95 //
96 // Revision 1.11 2011/02/18 15:26:05 chamont
97 // remove the ref to pflow candidate
98 //
99 // Revision 1.10 2011/02/16 17:42:53 chamont
100 // Extend GsfElectron(Core) with new pflow attributes, backward compatible.
101 //
102 // Revision 1.9 2011/01/10 17:18:09 chamont
103 // so to ease the independant production of ecal-driven and tracker-driven gsf electrons
104 //
105 // Revision 1.8.6.1 2011/01/10 17:15:35 chamont
106 // so to ease the independant production of ecal-driven and tracker-driven gsf electrons
107 //
108 // Revision 1.8 2010/02/25 15:32:20 chamont
109 // make GsfElectronFwd.h a real forward header
110 //
111 // Revision 1.7 2009/12/11 09:09:41 chamont
112 // tranform NARROW into OLDNARROW, and add closestCtfTrack to GsfElectronCore
113 //
114 // Revision 1.6 2009/10/20 20:57:54 chamont
115 // restore previous attribute names, so to preserve backward data compatibility
116 //
117 // Revision 1.5 2009/10/10 20:07:35 chamont
118 // remove is*Driven() lethods
119 //
120 // Revision 1.4 2009/10/10 09:00:36 chamont
121 // Add ecalDrivenSeed() to isEcalDriven(), Add trackerDrivenSeed() to isTrackerDriven(), for classes GsfElectron and GsfElectronCore
122 //
123 // Revision 1.3 2009/04/06 11:18:05 chamont
124 // few changes, should not affect users
125 //
126 // Revision 1.2 2009/03/24 17:26:27 charlot
127 // updated provenance and added comments in headers
128 //
129 // Revision 1.1 2009/03/20 22:59:16 chamont
130 // new class GsfElectronCore and new interface for GsfElectron
131 //
132 // Revision 1.20 2009/02/14 11:00:26 charlot
133 // new interface for fiducial regions
134 //
135 //*****************************************************************************
136 
137 #endif
reco::ConversionRefVector conversions() const
get vector of references to Conversion&#39;s
void setCtfTrack(const TrackRef &closestCtfTrack, float ctfGsfOverlap)
bool trackerDrivenSeed() const
bool ecalDrivenSeed() const
void setGsfTrack(const GsfTrackRef &gsfTrack)
float ctfGsfOverlap() const
void addOneLegConversion(const reco::ConversionRef &r)
add single ConversionRef to the vector of Refs
const GsfTrackRef & gsfTrack() const
const SuperClusterRef & parentSuperCluster() const
reco::ConversionRefVector conversionsOneLeg() const
get vector of references to one leg Conversion&#39;s
void setSuperCluster(const SuperClusterRef &scl)
void setParentSuperCluster(const SuperClusterRef &scl)
bool isNull() const
Checks for null.
Definition: Ref.h:249
const SuperClusterRef & superCluster() const
SuperClusterRef superCluster_
GsfElectronCore * clone() const
reco::ConversionRefVector conversions_
TrackRef ctfTrack() const
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:62
void addConversion(const reco::ConversionRef &r)
add single ConversionRef to the vector of Refs
reco::ConversionRefVector conversionsOneLeg_
SuperClusterRef parentSuperCluster_