31 : chargeInfo_(chargeInfo),
33 trackClusterMatching_(tcm),
34 trackExtrapolations_(te),
38 conversionRejection_(crv) {
59 : chargeInfo_(chargeInfo),
61 trackClusterMatching_(tcm),
62 trackExtrapolations_(te),
65 full5x5_showerShape_(full5x5_ss),
67 conversionRejection_(crv) {
77 chargeInfo_(electron.chargeInfo_),
79 trackClusterMatching_(electron.trackClusterMatching_),
80 trackExtrapolations_(electron.trackExtrapolations_),
82 fiducialFlags_(electron.fiducialFlags_),
83 showerShape_(electron.showerShape_),
84 full5x5_showerShape_(electron.full5x5_showerShape_),
85 saturationInfo_(electron.saturationInfo_),
86 dr03_(electron.dr03_),
87 dr04_(electron.dr04_),
88 conversionRejection_(electron.conversionRejection_),
89 pfIso_(electron.pfIso_),
90 mvaInput_(electron.mvaInput_),
91 mvaOutput_(electron.mvaOutput_),
92 passCutBasedPreselection_(electron.passCutBasedPreselection_),
93 passPflowPreselection_(electron.passPflowPreselection_),
94 passMvaPreslection_(electron.passMvaPreslection_),
95 ambiguous_(electron.ambiguous_),
96 ambiguousGsfTracks_(electron.ambiguousGsfTracks_),
97 classVariables_(electron.classVariables_),
98 class_(electron.class_),
99 corrections_(electron.corrections_),
100 pixelMatchVariables_(electron.pixelMatchVariables_) {
112 chargeInfo_(electron.chargeInfo_),
114 trackClusterMatching_(electron.trackClusterMatching_),
115 trackExtrapolations_(electron.trackExtrapolations_),
117 fiducialFlags_(electron.fiducialFlags_),
118 showerShape_(electron.showerShape_),
119 full5x5_showerShape_(electron.full5x5_showerShape_),
120 saturationInfo_(electron.saturationInfo_),
121 dr03_(electron.dr03_),
122 dr04_(electron.dr04_),
123 conversionRejection_(electron.conversionRejection_),
124 pfIso_(electron.pfIso_),
125 mvaInput_(electron.mvaInput_),
126 mvaOutput_(electron.mvaOutput_),
127 passCutBasedPreselection_(electron.passCutBasedPreselection_),
128 passPflowPreselection_(electron.passPflowPreselection_),
129 passMvaPreslection_(electron.passMvaPreslection_),
130 ambiguous_(electron.ambiguous_),
131 ambiguousGsfTracks_(ambiguousTracks),
133 classVariables_(electron.classVariables_),
134 class_(electron.class_),
135 corrections_(electron.corrections_),
136 pixelMatchVariables_(electron.pixelMatchVariables_) {
165 return new GsfElectron(*
this, core, electronCluster, closestCtfTrack, conversionPartner, ambiguousTracks);
178 momentum *= newEnergy / momentum.e();
249 for (
uint id = 2u;
id < ss1.hcalOverEcal.size(); ++
id) {
250 ss1.hcalOverEcal[1] += ss1.hcalOverEcal[
id];
251 ss1.hcalOverEcalBc[1] += ss1.hcalOverEcalBc[
id];
253 ss1.hcalOverEcal[
id] = 0.f;
254 ss1.hcalOverEcalBc[
id] = 0.f;
256 ss2.hcalOverEcal[1] += ss2.hcalOverEcal[
id];
257 ss2.hcalOverEcalBc[1] += ss2.hcalOverEcalBc[
id];
259 ss2.hcalOverEcal[
id] = 0.f;
260 ss2.hcalOverEcalBc[
id] = 0.f;
263 iv1.hcalRecHitSumEtBc[1] += iv1.hcalRecHitSumEtBc[
id];
265 iv1.hcalRecHitSumEt[
id] = 0.f;
266 iv1.hcalRecHitSumEtBc[
id] = 0.f;
268 iv2.hcalRecHitSumEt[1] += iv2.hcalRecHitSumEt[
id];
269 iv2.hcalRecHitSumEtBc[1] += iv2.hcalRecHitSumEtBc[
id];
271 iv2.hcalRecHitSumEt[
id] = 0.f;
272 iv2.hcalRecHitSumEtBc[
id] = 0.f;
CaloClusterPtr electronCluster() const
virtual reco::GsfTrackRef gsfTrack() const
reference to a GsfTrack
std::array< float, 7 > hcalRecHitSumEt
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)
const edm::EventSetup & c
Vector momentum() const final
spatial momentum vector
bool isEcalEnergyCorrected
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
uint16_t *__restrict__ id
float correctedEcalEnergy
float correctedEcalEnergyError
ConversionRejection conversionRejection_
float fromSuperClusterP4Error
float p4Error(P4Kind kind) const
bool overlap(const Candidate &) const override
check overlap with another candidate
bool passingCutBasedPreselection() const
GsfElectron * clone() const override
returns a clone of the Candidate object
const LorentzVector & p4() const final
four-momentum Lorentz vector
void setVertex(const Point &vertex) override
set vertex
CaloClusterPtr electronCluster
void setCharge(Charge q) final
set electric charge
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
std::array< float, 7 > hcalOverEcal
void setCorrectedEcalEnergyError(float newEnergyError)
void setTrackMomentumError(float trackMomentumError)
ShowerShape full5x5_showerShape_
XYZPointD XYZPoint
point in space with cartesian internal representation
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual GsfElectronCoreRef core() const
std::array< float, 7 > hcalOverEcalBc
void setCorrectedEcalEnergy(float newEnergy)
TrackClusterMatching trackClusterMatching_
bool passCutBasedPreselection_
void setPdgId(int pdgId) final
bool passPflowPreselection_
LorentzVector fromSuperClusterP4
SuperClusterRef superCluster() const override
reference to a SuperCluster
virtual reco::SuperClusterRef superCluster() const
reference to a SuperCluster
bool ecalDrivenSeed() const
void hcalToRun2EffDepth()