CMS 3D CMS Logo

Photon.h
Go to the documentation of this file.
1 #ifndef EgammaCandidates_Photon_h
2 #define EgammaCandidates_Photon_h
3 
18 
19 namespace reco {
20 
21  class Photon : public RecoCandidate {
22  public:
24  struct FiducialFlags;
25  struct IsolationVariables;
26  struct ShowerShape;
27  struct MIPVariables;
28  struct SaturationInfo;
29 
31  Photon() : RecoCandidate() { pixelSeed_ = false; }
32 
34  Photon(const Photon&);
35 
37  Photon(const LorentzVector& p4, const Point& caloPos, const PhotonCoreRef& core, const Point& vtx = Point(0, 0, 0));
38 
40  ~Photon() override;
41 
43  Photon* clone() const override;
44 
48 
49  //
51  //
52  // retrieve provenance
53  bool isPFlowPhoton() const { return this->photonCore()->isPFlowPhoton(); }
54  bool isStandardPhoton() const { return this->photonCore()->isStandardPhoton(); }
56  reco::SuperClusterRef superCluster() const override;
58  reco::SuperClusterRef parentSuperCluster() const { return this->photonCore()->parentSuperCluster(); }
60  reco::ConversionRefVector conversions() const { return this->photonCore()->conversions(); }
61  enum ConversionProvenance { egamma = 0, pflow = 1, both = 2 };
62 
64  reco::ConversionRefVector conversionsOneLeg() const { return this->photonCore()->conversionsOneLeg(); }
66  bool hasConversionTracks() const {
67  if (!this->photonCore()->conversions().empty() || !this->photonCore()->conversionsOneLeg().empty())
68  return true;
69  else
70  return false;
71  }
73  reco::ElectronSeedRefVector electronPixelSeeds() const { return this->photonCore()->electronPixelSeeds(); }
75  bool hasPixelSeed() const {
76  if (!(this->photonCore()->electronPixelSeeds()).empty())
77  return true;
78  else
79  return false;
80  }
81  int conversionTrackProvenance(const edm::RefToBase<reco::Track>& convTrack) const;
82 
86  void setVertex(const Point& vertex) override;
88  bool isPhoton() const override { return true; }
89 
90  //=======================================================
91  // Fiducial Flags
92  //=======================================================
93  struct FiducialFlags {
94  //Fiducial flags
95  bool isEB; //Photon is in EB
96  bool isEE; //Photon is in EE
97  bool isEBEtaGap; //Photon is in supermodule/supercrystal eta gap in EB
98  bool isEBPhiGap; //Photon is in supermodule/supercrystal phi gap in EB
99  bool isEERingGap; //Photon is in crystal ring gap in EE
100  bool isEEDeeGap; //Photon is in crystal dee gap in EE
101  bool isEBEEGap; //Photon is in border between EB and EE.
102 
104  : isEB(false),
105  isEE(false),
106  isEBEtaGap(false),
107  isEBPhiGap(false),
108  isEERingGap(false),
109  isEEDeeGap(false),
110  isEBEEGap(false)
111 
112  {}
113  };
114 
119  bool isEB() const { return fiducialFlagBlock_.isEB; }
120  // true if photon is in ECAL endcap
121  bool isEE() const { return fiducialFlagBlock_.isEE; }
123  bool isEBGap() const { return (isEBEtaGap() || isEBPhiGap()); }
124  bool isEBEtaGap() const { return fiducialFlagBlock_.isEBEtaGap; }
125  bool isEBPhiGap() const { return fiducialFlagBlock_.isEBPhiGap; }
127  bool isEEGap() const { return (isEERingGap() || isEEDeeGap()); }
128  bool isEERingGap() const { return fiducialFlagBlock_.isEERingGap; }
129  bool isEEDeeGap() const { return fiducialFlagBlock_.isEEDeeGap; }
131  bool isEBEEGap() const { return fiducialFlagBlock_.isEBEEGap; }
132 
133  //=======================================================
134  // Shower Shape Variables
135  //=======================================================
136 
137  struct ShowerShape {
138  float sigmaEtaEta;
140  float e1x5;
141  float e2x5;
142  float e3x3;
143  float e5x5;
145  float hcalDepth1OverEcal; // hcal over ecal energy using first hcal depth
146  float hcalDepth2OverEcal; // hcal over ecal energy using 2nd hcal depth
149  std::vector<CaloTowerDetId> hcalTowersBehindClusters;
151  float effSigmaRR;
154  float e2nd;
155  float eTop;
156  float eLeft;
157  float eRight;
158  float eBottom;
159  float e1x3;
160  float e2x2;
161  float e2x5Max;
162  float e2x5Left;
163  float e2x5Right;
164  float e2x5Top;
165  float e2x5Bottom;
166  float smMajor;
167  float smMinor;
168  float smAlpha;
170  : sigmaEtaEta(std::numeric_limits<float>::max()),
171  sigmaIetaIeta(std::numeric_limits<float>::max()),
172  e1x5(0.f),
173  e2x5(0.f),
174  e3x3(0.f),
175  e5x5(0.f),
176  maxEnergyXtal(0.f),
177  hcalDepth1OverEcal(0),
178  hcalDepth2OverEcal(0),
179  hcalDepth1OverEcalBc(0),
180  hcalDepth2OverEcalBc(0),
181  invalidHcal(false),
182  effSigmaRR(std::numeric_limits<float>::max()),
183  sigmaIetaIphi(std::numeric_limits<float>::max()),
184  sigmaIphiIphi(std::numeric_limits<float>::max()),
185  e2nd(0.f),
186  eTop(0.f),
187  eLeft(0.f),
188  eRight(0.f),
189  eBottom(0.f),
190  e1x3(0.f),
191  e2x2(0.f),
192  e2x5Max(0.f),
193  e2x5Left(0.f),
194  e2x5Right(0.f),
195  e2x5Top(0.f),
196  e2x5Bottom(0.f),
197  smMajor(0.f),
198  smMinor(0.f),
199  smAlpha(0.f) {}
200  };
203 
206 
215 
217  float hadTowOverEm() const {
219  }
224  const std::vector<CaloTowerDetId>& hcalTowersBehindClusters() const {
226  }
229 
231  float e1x5() const { return showerShapeBlock_.e1x5; }
232  float e2x5() const { return showerShapeBlock_.e2x5; }
233  float e3x3() const { return showerShapeBlock_.e3x3; }
234  float e5x5() const { return showerShapeBlock_.e5x5; }
236  float sigmaEtaEta() const { return showerShapeBlock_.sigmaEtaEta; }
238  float r1x5() const { return showerShapeBlock_.e1x5 / showerShapeBlock_.e5x5; }
239  float r2x5() const { return showerShapeBlock_.e2x5 / showerShapeBlock_.e5x5; }
240  float r9() const { return showerShapeBlock_.e3x3 / this->superCluster()->rawEnergy(); }
241 
243  float full5x5_e1x5() const { return full5x5_showerShapeBlock_.e1x5; }
244  float full5x5_e2x5() const { return full5x5_showerShapeBlock_.e2x5; }
245  float full5x5_e3x3() const { return full5x5_showerShapeBlock_.e3x3; }
246  float full5x5_e5x5() const { return full5x5_showerShapeBlock_.e5x5; }
252  float full5x5_r9() const { return full5x5_showerShapeBlock_.e3x3 / this->superCluster()->rawEnergy(); }
253 
254  //=======================================================
255  // SaturationInfo
256  //=======================================================
257 
258  struct SaturationInfo {
261  SaturationInfo() : nSaturatedXtals(0), isSeedSaturated(false){};
262  };
263 
264  // accessors
267  const SaturationInfo& saturationInfo() const { return saturationInfo_; }
269 
270  //=======================================================
271  // Energy Determinations
272  //=======================================================
274 
290  : scEcalEnergy(0.),
291  scEcalEnergyError(999.),
292  scEcalP4(0., 0., 0., 0.),
293  phoEcalEnergy(0.),
294  phoEcalEnergyError(999.),
295  phoEcalP4(0., 0., 0., 0.),
296  regression1Energy(0.),
297  regression1EnergyError(999.),
298  regression1P4(0., 0., 0., 0.),
299  regression2Energy(0.),
300  regression2EnergyError(999.),
301  regression2P4(0., 0., 0., 0.),
302  candidateP4type(undefined) {}
303  };
304 
305  using RecoCandidate::p4;
306  using RecoCandidate::setP4;
307 
308  //sets both energy and its uncertainty
309  void setCorrectedEnergy(P4type type, float E, float dE, bool toCand = true);
310  void setP4(P4type type, const LorentzVector& p4, float p4Error, bool setToRecoCandidate);
313 
314  float getCorrectedEnergy(P4type type) const;
315  float getCorrectedEnergyError(P4type type) const;
317  const LorentzVector& p4(P4type type) const;
319 
320  //=======================================================
321  // MIP Variables
322  //=======================================================
323 
324  struct MIPVariables {
325  float mipChi2;
327  float mipSlope;
330  bool mipIsHalo;
331 
333  :
334 
335  mipChi2(0),
336  mipTotEnergy(0),
337  mipSlope(0),
338  mipIntercept(0),
339  mipNhitCone(0),
340  mipIsHalo(false) {}
341  };
342 
344  float mipChi2() const { return mipVariableBlock_.mipChi2; }
345  float mipTotEnergy() const { return mipVariableBlock_.mipTotEnergy; }
346  float mipSlope() const { return mipVariableBlock_.mipSlope; }
347  float mipIntercept() const { return mipVariableBlock_.mipIntercept; }
348  int mipNhitCone() const { return mipVariableBlock_.mipNhitCone; }
349  bool mipIsHalo() const { return mipVariableBlock_.mipIsHalo; }
350 
352  void setMIPVariables(const MIPVariables& mipVar) { mipVariableBlock_ = mipVar; }
353 
354  //=======================================================
355  // Isolation Variables
356  //=======================================================
357 
359  //These are analysis quantities calculated in the PhotonIDAlgo class
360 
361  //EcalRecHit isolation
363  //HcalTower isolation
365  //HcalDepth1Tower isolation
367  //HcalDepth2Tower isolation
369  //HcalTower isolation subtracting the hadronic energy in towers behind the BCs in the SC
371  //HcalDepth1Tower isolation subtracting the hadronic energy in towers behind the BCs in the SC
373  //HcalDepth2Tower isolation subtracting the hadronic energy in towers behind the BCs in the SC
375  //Sum of track pT in a cone of dR
377  //Sum of track pT in a hollow cone of outer radius, inner radius
379  //Number of tracks in a cone of dR
381  //Number of tracks in a hollow cone of outer radius, inner radius
383 
385  :
386 
387  ecalRecHitSumEt(0),
388  hcalTowerSumEt(0),
389  hcalDepth1TowerSumEt(0),
390  hcalDepth2TowerSumEt(0),
391  hcalTowerSumEtBc(0),
392  hcalDepth1TowerSumEtBc(0),
393  hcalDepth2TowerSumEtBc(0),
394  trkSumPtSolidCone(0),
395  trkSumPtHollowCone(0),
396  nTrkSolidCone(0),
397  nTrkHollowCone(0)
398 
399  {}
400  };
401 
403  void setIsolationVariables(const IsolationVariables& isolInDr04, const IsolationVariables& isolInDr03) {
404  isolationR04_ = isolInDr04;
405  isolationR03_ = isolInDr03;
406  }
407 
423  // Track pT sum
425  //As above, excluding the core at the center of the cone
427  //Returns number of tracks in a cone of dR
429  //As above, excluding the core at the center of the cone
431  //
446  // Track pT sum c
448  //As above, excluding the core at the center of the cone
450  //Returns number of tracks in a cone of dR
452  //As above, excluding the core at the center of the cone
454 
455  //=======================================================
456  // PFlow based Isolation Variables
457  //=======================================================
458 
460  float chargedHadronIso; //charged hadron isolation with dxy,dz match to pv
461  float chargedHadronWorstVtxIso; //max charged hadron isolation when dxy/dz matching to given vtx
462  float chargedHadronWorstVtxGeomVetoIso; //as chargedHadronWorstVtxIso but an additional geometry based veto cone
463  float chargedHadronPFPVIso; //only considers particles assigned to the primary vertex (PV) by particle flow, corresponds to <10_6 chargedHadronIso
465  float photonIso;
466  float sumEcalClusterEt; //sum pt of ecal clusters, vetoing clusters part of photon
467  float sumHcalClusterEt; //sum pt of hcal clusters, vetoing clusters part of photon
469  :
470 
471  chargedHadronIso(0.),
472  chargedHadronWorstVtxIso(0.),
473  chargedHadronWorstVtxGeomVetoIso(0.),
474  chargedHadronPFPVIso(0.),
475  neutralHadronIso(0.),
476  photonIso(0.),
477  sumEcalClusterEt(0.),
478  sumHcalClusterEt(0.) {}
479  };
480 
487  float photonIso() const { return pfIsolation_.photonIso; }
488 
489  //backwards compat functions for pat::Photon
490  float ecalPFClusterIso() const { return pfIsolation_.sumEcalClusterEt; };
491  float hcalPFClusterIso() const { return pfIsolation_.sumHcalClusterEt; };
492 
495 
498 
502  float mva;
503 
505  :
506 
507  nClusterOutsideMustache(-1),
508  etOutsideMustache(-999999999.),
509  mva(-999999999.)
510 
511  {}
512  };
513 
514  // getters
516  float etOutsideMustache() const { return pfID_.etOutsideMustache; }
517  float pfMVA() const { return pfID_.mva; }
518  // setters
519  void setPflowIDVariables(const PflowIDVariables& pfid) { pfID_ = pfid; }
520 
521  private:
523  bool overlap(const Candidate&) const override;
528  //
530  //
541  };
542 
543 } // namespace reco
544 
545 #endif
MIPVariables mipVariableBlock_
Definition: Photon.h:538
float chargedHadronPFPVIso() const
Definition: Photon.h:485
type
Definition: HCALResponse.h:21
void setPflowIsolationVariables(const PflowIsolationVariables &pfisol)
Set Particle Flow Isolation variables.
Definition: Photon.h:497
float hcalDepth1TowerSumEtBcConeDR03() const
Hcal-Depth1 isolation sum subtracting the hadronic energy in towers behind the BCs in the SC...
Definition: Photon.h:443
float hcalTowerSumEtConeDR04() const
Hcal isolation sum.
Definition: Photon.h:412
SaturationInfo saturationInfo_
Definition: Photon.h:536
void setMIPVariables(const MIPVariables &mipVar)
set mip Variables
Definition: Photon.h:352
float trkSumPtSolidConeDR03() const
Definition: Photon.h:447
float hcalDepth1TowerSumEtConeDR04() const
Hcal-Depth1 isolation sum.
Definition: Photon.h:414
ShowerShape full5x5_showerShapeBlock_
Definition: Photon.h:535
Definition: Photon.py:1
PflowIsolationVariables pfIsolation_
Definition: Photon.h:539
float hcalDepth1TowerSumEtConeDR03() const
Hcal-Depth1 isolation sum.
Definition: Photon.h:437
std::vector< CaloTowerDetId > hcalTowersBehindClusters
Definition: Photon.h:149
bool isEE() const
Definition: Photon.h:121
bool isEEDeeGap() const
Definition: Photon.h:129
void setCandidateP4type(const P4type type)
Definition: Photon.h:312
const EnergyCorrections & energyCorrections() const
Definition: Photon.h:318
float chargedHadronIso() const
Accessors for Particle Flow Isolation variables.
Definition: Photon.h:482
bool isEBGap() const
true if photon is in EB, and inside the boundaries in super crystals/modules
Definition: Photon.h:123
void setCorrectedEnergy(P4type type, float E, float dE, bool toCand=true)
float neutralHadronIso() const
Definition: Photon.h:486
float e5x5() const
Definition: Photon.h:234
float full5x5_r2x5() const
Definition: Photon.h:251
float hcalTowerSumEtConeDR03() const
Hcal isolation sum.
Definition: Photon.h:435
const SaturationInfo & saturationInfo() const
Definition: Photon.h:267
reco::ConversionRefVector conversionsOneLeg() const
vector of references to one leg Conversion&#39;s
Definition: Photon.h:64
float trkSumPtSolidConeDR04() const
Definition: Photon.h:424
Definition: __init__.py:1
int nTrkSolidConeDR03() const
Definition: Photon.h:451
float full5x5_e2x5() const
Definition: Photon.h:244
float e1x5() const
Shower shape variables.
Definition: Photon.h:231
bool overlap(const Candidate &) const override
check overlap with another candidate
bool isEBEEGap() const
true if photon is in boundary between EB and EE
Definition: Photon.h:131
float hadronicOverEmValid() const
returns false if hadronicOverEm is not reliably estimated (e.g. because hcal was off or masked) ...
Definition: Photon.h:214
float ecalRecHitSumEtConeDR04() const
Definition: Photon.h:410
Photon * clone() const override
returns a clone of the candidate
void setSaturationInfo(const SaturationInfo &s)
Definition: Photon.h:268
float full5x5_r1x5() const
Definition: Photon.h:250
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
float trkSumPtHollowConeDR03() const
Definition: Photon.h:449
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
float full5x5_maxEnergyXtal() const
Definition: Photon.h:247
float full5x5_sigmaEtaEta() const
Definition: Photon.h:248
bool isPhoton() const override
Implement Candidate method for particle species.
Definition: Photon.h:88
IsolationVariables isolationR03_
Definition: Photon.h:533
int conversionTrackProvenance(const edm::RefToBase< reco::Track > &convTrack) const
ConversionProvenance
Definition: Photon.h:61
float photonIso() const
Definition: Photon.h:487
Photon()
default constructor
Definition: Photon.h:31
float hadronicDepth2OverEm() const
the hadronic release in depth2 over electromagnetic fraction
Definition: Photon.h:212
void setVertex(const Point &vertex) override
set primary event vertex used to define photon direction
float mipIntercept() const
Definition: Photon.h:347
math::XYZPointF caloPosition_
position of seed BasicCluster for shower depth of unconverted photon
Definition: Photon.h:525
float full5x5_e1x5() const
full5x5 Shower shape variables
Definition: Photon.h:243
float full5x5_e3x3() const
Definition: Photon.h:245
float hadTowDepth1OverEm() const
the ration of hadronic energy in towers depth1 behind the BCs in the SC and the SC energy ...
Definition: Photon.h:221
float hcalPFClusterIso() const
Definition: Photon.h:491
float full5x5_r9() const
Definition: Photon.h:252
float ecalPFClusterIso() const
Definition: Photon.h:490
LorentzVector regression2P4
Definition: Photon.h:287
reco::PhotonCoreRef photonCore() const
returns a reference to the core photon object
Definition: Photon.h:46
bool mipIsHalo() const
Definition: Photon.h:349
IsolationVariables isolationR04_
Definition: Photon.h:532
void setPhotonCore(const reco::PhotonCoreRef &photonCore)
Definition: Photon.h:47
float full5x5_sigmaIetaIeta() const
Definition: Photon.h:249
float hcalDepth2TowerSumEtBcConeDR04() const
Hcal-Depth2 isolation sum subtracting the hadronic energy in towers behind the BCs in the SC...
Definition: Photon.h:422
reco::ConversionRefVector conversions() const
vector of references to Conversion&#39;s
Definition: Photon.h:60
float hcalTowerSumEtBcConeDR04() const
Hcal isolation sum subtracting the hadronic energy in towers behind the BCs in the SC...
Definition: Photon.h:418
void setEnergyCorrections(const EnergyCorrections &e)
Definition: Photon.h:311
bool isStandardPhoton() const
Definition: Photon.h:54
bool isEBPhiGap() const
Definition: Photon.h:125
void setPflowIDVariables(const PflowIDVariables &pfid)
Definition: Photon.h:519
float sigmaIetaIeta() const
Definition: Photon.h:237
const Point & vertex() const override
vertex position (overwritten by PF...)
EnergyCorrections eCorrections_
Definition: Photon.h:537
float hadTowOverEmValid() const
returns false if hadTowOverEm is not reliably estimated (e.g. because hcal was off or masked) ...
Definition: Photon.h:228
float hadTowDepth2OverEm() const
the ration of hadronic energy in towers depth2 behind the BCs in the SC and the SC energy ...
Definition: Photon.h:223
void setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:204
float e2x5() const
Definition: Photon.h:232
double f[11][100]
float sigmaEtaEta() const
Definition: Photon.h:236
const LorentzVector & p4() const final
four-momentum Lorentz vector
float hadTowOverEm() const
the ration of hadronic energy in towers behind the BCs in the SC and the SC energy ...
Definition: Photon.h:217
int nTrkHollowConeDR04() const
Definition: Photon.h:430
float hcalDepth2TowerSumEtConeDR03() const
Hcal-Depth2 isolation sum.
Definition: Photon.h:439
int nTrkHollowConeDR03() const
Definition: Photon.h:453
bool isPFlowPhoton() const
Retrieve photonCore attributes.
Definition: Photon.h:53
float hadronicOverEm() const
the total hadronic over electromagnetic fraction
Definition: Photon.h:208
~Photon() override
destructor
float mipTotEnergy() const
Definition: Photon.h:345
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...
Definition: Photon.h:84
float r1x5() const
Definition: Photon.h:238
float hcalTowerSumEtBcConeDR03() const
Hcal isolation sum subtracting the hadronic energy in towers behind the BCs in the SC...
Definition: Photon.h:441
FiducialFlags fiducialFlagBlock_
Definition: Photon.h:531
float getCorrectedEnergyError(P4type type) const
P4type getCandidateP4type() const
Definition: Photon.h:316
float etOutsideMustache() const
Definition: Photon.h:516
float hadronicDepth1OverEm() const
the hadronic release in depth1 over electromagnetic fraction
Definition: Photon.h:210
bool hasConversionTracks() const
Bool flagging photons with a vector of refereces to conversions with size >0.
Definition: Photon.h:66
bool pixelSeed_
Definition: Photon.h:529
LorentzVector regression1P4
Definition: Photon.h:284
float hcalDepth2TowerSumEtConeDR04() const
Hcal-Depth2 isolation sum.
Definition: Photon.h:416
bool isEEGap() const
true if photon is in EE, and inside the boundaries in supercrystal/D
Definition: Photon.h:127
float e3x3() const
Definition: Photon.h:233
bool hasPixelSeed() const
Bool flagging photons having a non-zero size vector of Ref to electornPixel seeds.
Definition: Photon.h:75
float hcalDepth1TowerSumEtBcConeDR04() const
Hcal-Depth1 isolation sum subtracting the hadronic energy in towers behind the BCs in the SC...
Definition: Photon.h:420
void setFiducialVolumeFlags(const FiducialFlags &a)
set flags for photons in the ECAL fiducial volume
Definition: Photon.h:116
int nTrkSolidConeDR04() const
Definition: Photon.h:428
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
bool isEERingGap() const
Definition: Photon.h:128
PflowIDVariables pfID_
Definition: Photon.h:540
float getCorrectedEnergy(P4type type) const
bool isEB() const
Definition: Photon.h:119
float trkSumPtHollowConeDR04() const
Definition: Photon.h:426
float r2x5() const
Definition: Photon.h:239
void full5x5_setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:205
float ecalRecHitSumEtConeDR03() const
Isolation variables in cone dR=0.3.
Definition: Photon.h:433
fixed size matrix
const ShowerShape & full5x5_showerShapeVariables() const
Definition: Photon.h:202
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
double a
Definition: hdecay.h:119
int nClusterOutsideMustache() const
Definition: Photon.h:515
float r9() const
Definition: Photon.h:240
reco::ElectronSeedRefVector electronPixelSeeds() const
reference to electron Pixel seed
Definition: Photon.h:73
float hcalDepth2TowerSumEtBcConeDR03() const
Hcal-Depth2 isolation sum subtracting the hadronic energy in towers behind the BCs in the SC...
Definition: Photon.h:445
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
Definition: Photon.h:224
float mipSlope() const
Definition: Photon.h:346
float chargedHadronWorstVtxIso() const
Definition: Photon.h:483
float isSeedSaturated() const
Definition: Photon.h:266
int mipNhitCone() const
Definition: Photon.h:348
float chargedHadronWorstVtxGeomVetoIso() const
Definition: Photon.h:484
reco::SuperClusterRef parentSuperCluster() const
Ref to PFlow SuperCluster.
Definition: Photon.h:58
float pfMVA() const
Definition: Photon.h:517
ShowerShape showerShapeBlock_
Definition: Photon.h:534
const PflowIsolationVariables & getPflowIsolationVariables() const
Get Particle Flow Isolation variables block.
Definition: Photon.h:494
float mipChi2() const
MIP variables.
Definition: Photon.h:344
const ShowerShape & showerShapeVariables() const
Definition: Photon.h:201
reco::PhotonCoreRef photonCore_
reference to the PhotonCore
Definition: Photon.h:527
float full5x5_e5x5() const
Definition: Photon.h:246
void setP4(const LorentzVector &p4) final
set 4-momentum
float nSaturatedXtals() const
Definition: Photon.h:265
void setIsolationVariables(const IsolationVariables &isolInDr04, const IsolationVariables &isolInDr03)
set relevant isolation variables
Definition: Photon.h:403
void setP4(P4type type, const LorentzVector &p4, float p4Error, bool setToRecoCandidate)
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
bool isEBEtaGap() const
Definition: Photon.h:124
float maxEnergyXtal() const
Definition: Photon.h:235