34 : chargeInfo_(chargeInfo),
36 trackClusterMatching_(tcm), trackExtrapolations_(te),
38 fiducialFlags_(ff), showerShape_(ss), conversionRejection_(crv)
43 setPdgId(-11*charge) ;
44 corrections_.correctedEcalEnergy = superCluster()->energy() ;
75 assert(electron.
core()->ctfTrack()==core->ctfTrack()) ;
76 assert(electron.
core()->ctfGsfOverlap()==core->ctfGsfOverlap()) ;
104 ambiguousGsfTracks_(ambiguousTracks),
110 trackClusterMatching_.electronCluster = electronCluster ;
112 conversionRejection_.partner = conversionPartner ;
113 assert(closestCtfTrack==core->ctfTrack()) ;
114 assert(electron.
core()->ctfGsfOverlap()==core->ctfGsfOverlap()) ;
145 {
return new GsfElectron(*
this,core,electronCluster,closestCtfTrack,conversionPartner,ambiguousTracks) ; }
152 <<
"All preselection flags are false,"
153 <<
" either the data is too old or electrons were not preselected." ;
164 momentum *= newEnergy/momentum.e() ;
182 case P4_FROM_SUPER_CLUSTER:
183 corrections_.fromSuperClusterP4 =
p4 ;
184 corrections_.fromSuperClusterP4Error =
error ;
187 corrections_.combinedP4 =
p4 ;
188 corrections_.combinedP4Error =
error ;
190 case P4_PFLOW_COMBINATION:
191 corrections_.pflowP4 =
p4 ;
192 corrections_.pflowP4Error =
error ;
195 throw cms::Exception(
"GsfElectron")<<
"unexpected p4 kind: "<<kind ;
200 corrections_.candidateP4Kind = kind ;
211 default:
throw cms::Exception(
"GsfElectron")<<
"unexpected p4 kind: "<<kind ;
223 default:
throw cms::Exception(
"GsfElectron")<<
"unexpected p4 kind: "<<kind ;
virtual reco::GsfTrackRef gsfTrack() const
reference to a GsfTrack
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
void setP4(P4Kind kind, const LorentzVector &p4, float p4Error, bool setCandidate)
bool isEcalEnergyCorrected
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
float correctedEcalEnergy
float correctedEcalEnergyError
ShowerShape pfShowerShape_
ConversionRejection conversionRejection_
float fromSuperClusterP4Error
virtual Vector momentum() const
spatial momentum vector
float p4Error(P4Kind kind) const
bool passingCutBasedPreselection() const
bool passingMvaPreselection() const
GsfTrackRefVector ambiguousGsfTracks_
PflowIsolationVariables pfIso_
void setCorrectedEcalEnergyError(float newEnergyError)
FiducialFlags fiducialFlags_
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
void setTrackMomentumError(float trackMomentumError)
ClassificationVariables classVariables_
XYZPointD XYZPoint
point in space with cartesian internal representation
virtual bool overlap(const Candidate &) const
check overlap with another candidate
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual GsfElectronCoreRef core() const
void setCorrectedEcalEnergy(float newEnergy)
GsfElectron * clone() const
returns a clone of the Candidate object
TrackClusterMatching trackClusterMatching_
bool passCutBasedPreselection_
TrackExtrapolations trackExtrapolations_
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
bool passPflowPreselection_
LorentzVector fromSuperClusterP4
virtual reco::SuperClusterRef superCluster() const
reference to a SuperCluster
float energyError(float E, float *par)
virtual GsfTrackRef gsfTrack() const
reference to a GsfTrack
bool ecalDrivenSeed() const