8 caloPosition_(caloPos),
11 haloTaggerMVAVal_(99) {}
15 caloPosition_(rhs.caloPosition_),
16 photonCore_(rhs.photonCore_),
17 pixelSeed_(rhs.pixelSeed_),
18 fiducialFlagBlock_(rhs.fiducialFlagBlock_),
19 isolationR04_(rhs.isolationR04_),
20 isolationR03_(rhs.isolationR03_),
21 showerShapeBlock_(rhs.showerShapeBlock_),
22 full5x5_showerShapeBlock_(rhs.full5x5_showerShapeBlock_),
23 saturationInfo_(rhs.saturationInfo_),
24 eCorrections_(rhs.eCorrections_),
25 mipVariableBlock_(rhs.mipVariableBlock_),
26 pfIsolation_(rhs.pfIsolation_),
28 haloTaggerMVAVal_(rhs.haloTaggerMVAVal_) {}
56 bool isEg =
false, isPf =
false;
58 for (
unsigned iConv = 0; iConv < conv2leg.
size(); iConv++) {
59 std::vector<edm::RefToBase<reco::Track> > convtracks = conv2leg[iConv]->tracks();
60 for (
unsigned itk = 0; itk < convtracks.size(); itk++) {
61 if (convTrack == convtracks[itk])
66 for (
unsigned iConv = 0; iConv < conv1leg.
size(); iConv++) {
67 std::vector<edm::RefToBase<reco::Track> > convtracks = conv1leg[iConv]->tracks();
68 for (
unsigned itk = 0; itk < convtracks.size(); itk++) {
69 if (convTrack == convtracks[itk])
86 newP4 *= newEnergy / newP4.e();
107 setP4(
type, newP4, delta_e, setToRecoCandidate);
124 throw cms::Exception(
"reco::Photon") <<
"unexpected p4 type " <<
type <<
" cannot return the energy value: ";
143 <<
"unexpected p4 type " <<
type <<
" cannot return the uncertainty on the energy: ";
168 if (setToRecoCandidate) {
185 throw cms::Exception(
"reco::Photon") <<
"unexpected p4 type: " <<
type <<
" cannot return p4 ";
195 for (
uint id = 2u;
id < ss1.hcalOverEcal.size(); ++
id) {
196 ss1.hcalOverEcal[1] += ss1.hcalOverEcal[
id];
197 ss1.hcalOverEcalBc[1] += ss1.hcalOverEcalBc[
id];
199 ss1.hcalOverEcal[
id] = 0.f;
200 ss1.hcalOverEcalBc[
id] = 0.f;
202 ss2.hcalOverEcal[1] += ss2.hcalOverEcal[
id];
203 ss2.hcalOverEcalBc[1] += ss2.hcalOverEcalBc[
id];
205 ss2.hcalOverEcal[
id] = 0.f;
206 ss2.hcalOverEcalBc[
id] = 0.f;
209 iv1.hcalRecHitSumEtBc[1] += iv1.hcalRecHitSumEtBc[
id];
211 iv1.hcalRecHitSumEt[
id] = 0.f;
212 iv1.hcalRecHitSumEtBc[
id] = 0.f;
214 iv2.hcalRecHitSumEt[1] += iv2.hcalRecHitSumEt[
id];
215 iv2.hcalRecHitSumEtBc[1] += iv2.hcalRecHitSumEtBc[
id];
217 iv2.hcalRecHitSumEt[
id] = 0.f;
218 iv2.hcalRecHitSumEtBc[
id] = 0.f;
Photon * clone() const override
returns a clone of the candidate
float getCorrectedEnergy(P4type type) const
Vector momentum() const final
spatial momentum vector
ShowerShape full5x5_showerShapeBlock_
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
void setCorrectedEnergy(P4type type, float E, float dE, bool toCand=true)
int conversionTrackProvenance(const edm::RefToBase< reco::Track > &convTrack) const
bool overlap(const Candidate &) const override
check overlap with another candidate
const Point & vertex() const override
vertex position (overwritten by PF...)
float regression2EnergyError
IsolationVariables isolationR03_
const LorentzVector & p4() const final
four-momentum Lorentz vector
Photon()
default constructor
void setVertex(const Point &vertex) override
set vertex
void setVertex(const Point &vertex) override
set primary event vertex used to define photon direction
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
LorentzVector regression2P4
IsolationVariables isolationR04_
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
EnergyCorrections eCorrections_
float getCorrectedEnergyError(P4type type) const
void hcalToRun2EffDepth()
math::XYZTLorentzVector LorentzVector
math::XYZPointF caloPosition() const
position in ECAL: this is th SC position if r9<0.93. If r8>0.93 is position of seed BasicCluster taki...
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
~Photon() override
destructor
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
reco::PhotonCoreRef photonCore() const
returns a reference to the core photon object
LorentzVector regression1P4
float regression1EnergyError
size_type size() const
Size of the RefVector.
std::array< float, 7 > hcalRecHitSumEt
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Structure Point Contains parameters of Gaussian fits to DMRs.
ShowerShape showerShapeBlock_
void setP4(P4type type, const LorentzVector &p4, float p4Error, bool setToRecoCandidate)
double energy() const final
energy