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 #include <numeric>
19 
20 namespace reco {
21 
22  class Photon : public RecoCandidate {
23  public:
25  struct FiducialFlags;
26  struct IsolationVariables;
27  struct ShowerShape;
28  struct MIPVariables;
29  struct SaturationInfo;
30 
32  Photon() : RecoCandidate() { pixelSeed_ = false; }
33 
35  Photon(const Photon&);
36 
38  Photon(const LorentzVector& p4, const Point& caloPos, const PhotonCoreRef& core, const Point& vtx = Point(0, 0, 0));
39 
41  ~Photon() override;
42 
44  Photon* clone() const override;
45 
49 
50  //
52  //
53  // retrieve provenance
54  bool isPFlowPhoton() const { return this->photonCore()->isPFlowPhoton(); }
55  bool isStandardPhoton() const { return this->photonCore()->isStandardPhoton(); }
57  reco::SuperClusterRef superCluster() const override;
59  reco::SuperClusterRef parentSuperCluster() const { return this->photonCore()->parentSuperCluster(); }
61  reco::ConversionRefVector conversions() const { return this->photonCore()->conversions(); }
62  enum ConversionProvenance { egamma = 0, pflow = 1, both = 2 };
63 
65  reco::ConversionRefVector conversionsOneLeg() const { return this->photonCore()->conversionsOneLeg(); }
67  bool hasConversionTracks() const {
68  if (!this->photonCore()->conversions().empty() || !this->photonCore()->conversionsOneLeg().empty())
69  return true;
70  else
71  return false;
72  }
74  reco::ElectronSeedRefVector electronPixelSeeds() const { return this->photonCore()->electronPixelSeeds(); }
76  bool hasPixelSeed() const {
77  if (!(this->photonCore()->electronPixelSeeds()).empty())
78  return true;
79  else
80  return false;
81  }
82  int conversionTrackProvenance(const edm::RefToBase<reco::Track>& convTrack) const;
83 
87  void setVertex(const Point& vertex) override;
89  bool isPhoton() const override { return true; }
90 
91  //=======================================================
92  // Fiducial Flags
93  //=======================================================
94  struct FiducialFlags {
95  //Fiducial flags
96  bool isEB; //Photon is in EB
97  bool isEE; //Photon is in EE
98  bool isEBEtaGap; //Photon is in supermodule/supercrystal eta gap in EB
99  bool isEBPhiGap; //Photon is in supermodule/supercrystal phi gap in EB
100  bool isEERingGap; //Photon is in crystal ring gap in EE
101  bool isEEDeeGap; //Photon is in crystal dee gap in EE
102  bool isEBEEGap; //Photon is in border between EB and EE.
103 
105  : isEB(false),
106  isEE(false),
107  isEBEtaGap(false),
108  isEBPhiGap(false),
110  isEEDeeGap(false),
112 
113  {}
114  };
115 
120  bool isEB() const { return fiducialFlagBlock_.isEB; }
121  // true if photon is in ECAL endcap
122  bool isEE() const { return fiducialFlagBlock_.isEE; }
124  bool isEBGap() const { return (isEBEtaGap() || isEBPhiGap()); }
125  bool isEBEtaGap() const { return fiducialFlagBlock_.isEBEtaGap; }
126  bool isEBPhiGap() const { return fiducialFlagBlock_.isEBPhiGap; }
128  bool isEEGap() const { return (isEERingGap() || isEEDeeGap()); }
129  bool isEERingGap() const { return fiducialFlagBlock_.isEERingGap; }
130  bool isEEDeeGap() const { return fiducialFlagBlock_.isEEDeeGap; }
132  bool isEBEEGap() const { return fiducialFlagBlock_.isEBEEGap; }
133 
134  //=======================================================
135  // Shower Shape Variables
136  //=======================================================
137 
138  struct ShowerShape {
139  float sigmaEtaEta;
141  float e1x5;
142  float e2x5;
143  float e3x3;
144  float e5x5;
146  float hcalDepth1OverEcal; // hcal over ecal energy using first hcal depth
147  float hcalDepth2OverEcal; // hcal over ecal energy using 2nd hcal depth
150  std::array<float, 7> hcalOverEcal; // hcal over ecal seed cluster energy per depth (using rechits within a cone)
151  std::array<float, 7>
152  hcalOverEcalBc; // hcal over ecal seed cluster energy per depth (using rechits behind clusters)
153  std::vector<CaloTowerDetId> hcalTowersBehindClusters;
155  bool pre7DepthHcal; // to work around an ioread rule issue on legacy RECO files
156  float effSigmaRR;
159  float e2nd;
160  float eTop;
161  float eLeft;
162  float eRight;
163  float eBottom;
164  float e1x3;
165  float e2x2;
166  float e2x5Max;
167  float e2x5Left;
168  float e2x5Right;
169  float e2x5Top;
170  float e2x5Bottom;
171  float smMajor;
172  float smMinor;
173  float smAlpha;
175  : sigmaEtaEta(std::numeric_limits<float>::max()),
176  sigmaIetaIeta(std::numeric_limits<float>::max()),
177  e1x5(0.f),
178  e2x5(0.f),
179  e3x3(0.f),
180  e5x5(0.f),
181  maxEnergyXtal(0.f),
186  hcalOverEcal{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
187  hcalOverEcalBc{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
188  invalidHcal(false),
189  pre7DepthHcal(true),
193  e2nd(0.f),
194  eTop(0.f),
195  eLeft(0.f),
196  eRight(0.f),
197  eBottom(0.f),
198  e1x3(0.f),
199  e2x2(0.f),
200  e2x5Max(0.f),
201  e2x5Left(0.f),
202  e2x5Right(0.f),
203  e2x5Top(0.f),
204  e2x5Bottom(0.f),
205  smMajor(0.f),
206  smMinor(0.f),
207  smAlpha(0.f) {}
208  };
211 
214 
216  float hcalOverEcal(const ShowerShape& ss, int depth) const {
217  if (ss.pre7DepthHcal) {
218  if (depth == 0)
219  return ss.hcalDepth1OverEcal + ss.hcalDepth2OverEcal;
220  else if (depth == 1)
221  return ss.hcalDepth1OverEcal;
222  else if (depth == 2)
223  return ss.hcalDepth2OverEcal;
224 
225  return 0.f;
226  } else {
227  const auto& hovere = ss.hcalOverEcal;
228  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hovere), std::end(hovere), 0.f)
229  : hovere[depth - 1];
230  }
231  }
232  float hcalOverEcal(int depth = 0) const { return hcalOverEcal(showerShapeBlock_, depth); }
233  float hadronicOverEm(int depth = 0) const { return hcalOverEcal(depth); }
234 
236  float hcalOverEcalBc(const ShowerShape& ss, int depth) const {
237  if (ss.pre7DepthHcal) {
238  if (depth == 0)
239  return ss.hcalDepth1OverEcalBc + ss.hcalDepth2OverEcalBc;
240  else if (depth == 1)
241  return ss.hcalDepth1OverEcalBc;
242  else if (depth == 2)
243  return ss.hcalDepth2OverEcalBc;
244 
245  return 0.f;
246  } else {
247  const auto& hovere = ss.hcalOverEcalBc;
248  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hovere), std::end(hovere), 0.f)
249  : hovere[depth - 1];
250  }
251  }
252  float hcalOverEcalBc(int depth = 0) const { return hcalOverEcalBc(showerShapeBlock_, depth); }
253  float hadTowOverEm(int depth = 0) const { return hcalOverEcalBc(depth); }
254 
255  const std::vector<CaloTowerDetId>& hcalTowersBehindClusters() const {
257  }
258 
262 
264  float e1x5() const { return showerShapeBlock_.e1x5; }
265  float e2x5() const { return showerShapeBlock_.e2x5; }
266  float e3x3() const { return showerShapeBlock_.e3x3; }
267  float e5x5() const { return showerShapeBlock_.e5x5; }
269  float sigmaEtaEta() const { return showerShapeBlock_.sigmaEtaEta; }
271  float r1x5() const { return showerShapeBlock_.e1x5 / showerShapeBlock_.e5x5; }
272  float r2x5() const { return showerShapeBlock_.e2x5 / showerShapeBlock_.e5x5; }
273  float r9() const { return showerShapeBlock_.e3x3 / this->superCluster()->rawEnergy(); }
274 
276  float full5x5_e1x5() const { return full5x5_showerShapeBlock_.e1x5; }
277  float full5x5_e2x5() const { return full5x5_showerShapeBlock_.e2x5; }
278  float full5x5_e3x3() const { return full5x5_showerShapeBlock_.e3x3; }
279  float full5x5_e5x5() const { return full5x5_showerShapeBlock_.e5x5; }
285  float full5x5_r9() const { return full5x5_showerShapeBlock_.e3x3 / this->superCluster()->rawEnergy(); }
286 
289  float full5x5_hadronicOverEm(int depth = 0) const { return full5x5_hcalOverEcal(depth); }
290 
293  float full5x5_hadTowOverEm(int depth = 0) const { return full5x5_hcalOverEcalBc(depth); }
294 
295  //=======================================================
296  // SaturationInfo
297  //=======================================================
298 
299  struct SaturationInfo {
303  };
304 
305  // accessors
308  const SaturationInfo& saturationInfo() const { return saturationInfo_; }
310 
311  //=======================================================
312  // Energy Determinations
313  //=======================================================
315 
331  : scEcalEnergy(0.),
332  scEcalEnergyError(999.),
333  scEcalP4(0., 0., 0., 0.),
334  phoEcalEnergy(0.),
335  phoEcalEnergyError(999.),
336  phoEcalP4(0., 0., 0., 0.),
337  regression1Energy(0.),
339  regression1P4(0., 0., 0., 0.),
340  regression2Energy(0.),
342  regression2P4(0., 0., 0., 0.),
344  };
345 
346  using RecoCandidate::p4;
347  using RecoCandidate::setP4;
348 
349  //sets both energy and its uncertainty
350  void setCorrectedEnergy(P4type type, float E, float dE, bool toCand = true);
351  void setP4(P4type type, const LorentzVector& p4, float p4Error, bool setToRecoCandidate);
354 
355  float getCorrectedEnergy(P4type type) const;
356  float getCorrectedEnergyError(P4type type) const;
358  const LorentzVector& p4(P4type type) const;
360 
361  //=======================================================
362  // MIP Variables
363  //=======================================================
364 
365  struct MIPVariables {
366  float mipChi2;
368  float mipSlope;
371  bool mipIsHalo;
372 
374  :
375 
376  mipChi2(0),
377  mipTotEnergy(0),
378  mipSlope(0),
379  mipIntercept(0),
380  mipNhitCone(0),
381  mipIsHalo(false) {}
382  };
383 
385  float mipChi2() const { return mipVariableBlock_.mipChi2; }
386  float mipTotEnergy() const { return mipVariableBlock_.mipTotEnergy; }
387  float mipSlope() const { return mipVariableBlock_.mipSlope; }
388  float mipIntercept() const { return mipVariableBlock_.mipIntercept; }
389  int mipNhitCone() const { return mipVariableBlock_.mipNhitCone; }
390  bool mipIsHalo() const { return mipVariableBlock_.mipIsHalo; }
391 
393  void setMIPVariables(const MIPVariables& mipVar) { mipVariableBlock_ = mipVar; }
394 
395  //=======================================================
396  // Isolation Variables
397  //=======================================================
398 
400  //These are analysis quantities calculated in the PhotonIDAlgo class
401 
402  //EcalRecHit isolation
404  //HcalTower isolation
406  //HcalDepth1Tower isolation
408  //HcalDepth2Tower isolation
410  //HcalTower isolation subtracting the hadronic energy in towers behind the BCs in the SC
412  //HcalDepth1Tower isolation subtracting the hadronic energy in towers behind the BCs in the SC
414  //HcalDepth2Tower isolation subtracting the hadronic energy in towers behind the BCs in the SC
416  std::array<float, 7> hcalRecHitSumEt; // ...per depth, with photon footprint within a cone removed
417  std::array<float, 7> hcalRecHitSumEtBc; // ...per depth, with hcal rechits behind cluster removed
418  bool pre7DepthHcal; // to work around an ioread rule issue on legacy RECO files
419  //Sum of track pT in a cone of dR
421  //Sum of track pT in a hollow cone of outer radius, inner radius
423  //Number of tracks in a cone of dR
425  //Number of tracks in a hollow cone of outer radius, inner radius
428  :
429 
430  ecalRecHitSumEt(0.f),
431  hcalTowerSumEt(0.f),
434  hcalTowerSumEtBc(0.f),
437  hcalRecHitSumEt{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
438  hcalRecHitSumEtBc{{0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}},
439  pre7DepthHcal(true),
440  trkSumPtSolidCone(0.f),
442  nTrkSolidCone(0),
443  nTrkHollowCone(0) {}
444  };
445 
447  void setIsolationVariables(const IsolationVariables& isolInDr04, const IsolationVariables& isolInDr03) {
448  isolationR04_ = isolInDr04;
449  isolationR03_ = isolInDr03;
450  }
451 
456  float hcalTowerSumEt(const IsolationVariables& iv, int depth) const {
457  if (iv.pre7DepthHcal) {
458  if (depth == 0)
459  return iv.hcalTowerSumEt;
460  else if (depth == 1)
461  return iv.hcalDepth1TowerSumEt;
462  else if (depth == 2)
463  return iv.hcalDepth2TowerSumEt;
464 
465  return 0.f;
466  } else {
467  const auto& hcaliso = iv.hcalRecHitSumEt;
468  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hcaliso), std::end(hcaliso), 0.f)
469  : hcaliso[depth - 1];
470  }
471  }
472  float hcalTowerSumEtConeDR04(int depth = 0) const { return hcalTowerSumEt(isolationR04_, depth); }
474  float hcalTowerSumEtBc(const IsolationVariables& iv, int depth) const {
475  if (iv.pre7DepthHcal) {
476  if (depth == 0)
477  return iv.hcalTowerSumEtBc;
478  else if (depth == 1)
479  return iv.hcalDepth1TowerSumEtBc;
480  else if (depth == 2)
481  return iv.hcalDepth2TowerSumEtBc;
482 
483  return 0.f;
484  } else {
485  const auto& hcaliso = iv.hcalRecHitSumEtBc;
486  return (!(depth > 0 and depth < 8)) ? std::accumulate(std::begin(hcaliso), std::end(hcaliso), 0.f)
487  : hcaliso[depth - 1];
488  }
489  }
491  // Track pT sum
493  //As above, excluding the core at the center of the cone
495  //Returns number of tracks in a cone of dR
497  //As above, excluding the core at the center of the cone
499  //
503  float hcalTowerSumEtConeDR03(int depth = 0) const { return hcalTowerSumEt(isolationR03_, depth); }
506  // Track pT sum c
508  //As above, excluding the core at the center of the cone
510  //Returns number of tracks in a cone of dR
512  //As above, excluding the core at the center of the cone
514 
515  //=======================================================
516  // PFlow based Isolation Variables
517  //=======================================================
518 
520  float chargedHadronIso; //charged hadron isolation with dxy,dz match to pv
521  float chargedHadronWorstVtxIso; //max charged hadron isolation when dxy/dz matching to given vtx
522  float chargedHadronWorstVtxGeomVetoIso; //as chargedHadronWorstVtxIso but an additional geometry based veto cone
523  float chargedHadronPFPVIso; //only considers particles assigned to the primary vertex (PV) by particle flow, corresponds to <10_6 chargedHadronIso
525  float photonIso;
526  float sumEcalClusterEt; //sum pt of ecal clusters, vetoing clusters part of photon
527  float sumHcalClusterEt; //sum pt of hcal clusters, vetoing clusters part of photon
529  :
530 
531  chargedHadronIso(0.),
535  neutralHadronIso(0.),
536  photonIso(0.),
537  sumEcalClusterEt(0.),
538  sumHcalClusterEt(0.) {}
539  };
540 
547  float photonIso() const { return pfIsolation_.photonIso; }
548 
549  //backwards compat functions for pat::Photon
550  float ecalPFClusterIso() const { return pfIsolation_.sumEcalClusterEt; };
551  float hcalPFClusterIso() const { return pfIsolation_.sumHcalClusterEt; };
552 
555 
558 
562  float mva;
563 
565  :
566 
568  etOutsideMustache(-999999999.),
569  mva(-999999999.)
570 
571  {}
572  };
573 
574  // getters
576  float etOutsideMustache() const { return pfID_.etOutsideMustache; }
577  float pfMVA() const { return pfID_.mva; }
578  // setters
579  void setPflowIDVariables(const PflowIDVariables& pfid) { pfID_ = pfid; }
580 
581  // go back to run2-like 2 effective depths if desired - depth 1 is the normal depth 1, depth 2 is the sum over the rest
582  void hcalToRun2EffDepth();
583 
584  private:
586  bool overlap(const Candidate&) const override;
591  //
593  //
604  };
605 
606 } // namespace reco
607 
608 #endif
reco::Photon::ShowerShape::eTop
float eTop
Definition: Photon.h:160
reco::Photon::ShowerShape::sigmaIphiIphi
float sigmaIphiIphi
Definition: Photon.h:158
reco::Photon::hadronicOverEm
float hadronicOverEm(int depth=0) const
Definition: Photon.h:233
reco::Photon::ShowerShape::maxEnergyXtal
float maxEnergyXtal
Definition: Photon.h:145
reco::Photon::isEBPhiGap
bool isEBPhiGap() const
Definition: Photon.h:126
reco::Photon::ShowerShape::hcalDepth2OverEcalBc
float hcalDepth2OverEcalBc
Definition: Photon.h:149
reco::Photon::ShowerShape::eRight
float eRight
Definition: Photon.h:162
reco::Photon::MIPVariables::mipSlope
float mipSlope
Definition: Photon.h:368
reco::Photon::setIsolationVariables
void setIsolationVariables(const IsolationVariables &isolInDr04, const IsolationVariables &isolInDr03)
set relevant isolation variables
Definition: Photon.h:447
reco::Photon::EnergyCorrections::regression2Energy
float regression2Energy
Definition: Photon.h:326
reco::Photon::IsolationVariables::hcalTowerSumEtBc
float hcalTowerSumEtBc
Definition: Photon.h:411
reco::Photon::EnergyCorrections::scEcalEnergy
float scEcalEnergy
Definition: Photon.h:317
reco::Photon::ShowerShape::e2x5Left
float e2x5Left
Definition: Photon.h:167
reco::Photon::IsolationVariables::pre7DepthHcal
bool pre7DepthHcal
Definition: Photon.h:418
reco::Photon::full5x5_hadTowOverEm
float full5x5_hadTowOverEm(int depth=0) const
Definition: Photon.h:293
reco::Photon::showerShapeVariables
const ShowerShape & showerShapeVariables() const
Definition: Photon.h:209
reco::Photon::superCluster
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
reco::Photon::ShowerShape::sigmaEtaEta
float sigmaEtaEta
Definition: Photon.h:139
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
funct::false
false
Definition: Factorize.h:29
reco::Photon::full5x5_maxEnergyXtal
float full5x5_maxEnergyXtal() const
Definition: Photon.h:280
reco::Photon::SaturationInfo::nSaturatedXtals
int nSaturatedXtals
Definition: Photon.h:300
reco::Photon::clone
Photon * clone() const override
returns a clone of the candidate
reco::LeafCandidate::Point
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
reco::Photon::sigmaIetaIeta
float sigmaIetaIeta() const
Definition: Photon.h:270
reco::Photon::ShowerShape::e1x5
float e1x5
Definition: Photon.h:141
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
reco::Photon::chargedHadronWorstVtxGeomVetoIso
float chargedHadronWorstVtxGeomVetoIso() const
Definition: Photon.h:544
reco::Photon::FiducialFlags::FiducialFlags
FiducialFlags()
Definition: Photon.h:104
reco::Photon::ShowerShape::e1x3
float e1x3
Definition: Photon.h:164
reco::Photon::FiducialFlags::isEE
bool isEE
Definition: Photon.h:97
reco::Photon::ShowerShape::pre7DepthHcal
bool pre7DepthHcal
Definition: Photon.h:155
reco::Photon::IsolationVariables::hcalRecHitSumEtBc
std::array< float, 7 > hcalRecHitSumEtBc
Definition: Photon.h:417
reco::Photon::ShowerShape::e2nd
float e2nd
Definition: Photon.h:159
reco::Photon::full5x5_r1x5
float full5x5_r1x5() const
Definition: Photon.h:283
gpuVertexFinder::iv
int32_t *__restrict__ iv
Definition: gpuClusterTracksDBSCAN.h:42
reco::Photon::isEERingGap
bool isEERingGap() const
Definition: Photon.h:129
reco::Photon::chargedHadronWorstVtxIso
float chargedHadronWorstVtxIso() const
Definition: Photon.h:543
reco::Photon::MIPVariables::mipChi2
float mipChi2
Definition: Photon.h:366
reco::Photon::etOutsideMustache
float etOutsideMustache() const
Definition: Photon.h:576
reco::Photon::PflowIDVariables::etOutsideMustache
float etOutsideMustache
Definition: Photon.h:561
reco::Photon::IsolationVariables::ecalRecHitSumEt
float ecalRecHitSumEt
Definition: Photon.h:403
reco::Photon::ShowerShape::e2x2
float e2x2
Definition: Photon.h:165
reco::Photon::IsolationVariables::hcalRecHitSumEt
std::array< float, 7 > hcalRecHitSumEt
Definition: Photon.h:416
reco::Photon::ShowerShape::invalidHcal
bool invalidHcal
Definition: Photon.h:154
reco::Photon::SaturationInfo
Definition: Photon.h:299
reco::Photon::PflowIsolationVariables::chargedHadronPFPVIso
float chargedHadronPFPVIso
Definition: Photon.h:523
reco::Photon::P4type
P4type
Definition: Photon.h:314
reco::Photon::full5x5_e5x5
float full5x5_e5x5() const
Definition: Photon.h:279
reco::Photon::hadTowOverEmValid
bool hadTowOverEmValid() const
Definition: Photon.h:261
reco::Photon::PflowIsolationVariables::chargedHadronIso
float chargedHadronIso
Definition: Photon.h:520
edm::RefVector< ConversionCollection >
reco::Photon::hcalTowerSumEtConeDR04
float hcalTowerSumEtConeDR04(int depth=0) const
Definition: Photon.h:472
PhotonCore.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:46
reco::Photon::ShowerShape::eBottom
float eBottom
Definition: Photon.h:163
reco::Photon::nTrkHollowConeDR03
int nTrkHollowConeDR03() const
Definition: Photon.h:513
reco::Photon::full5x5_hadronicOverEm
float full5x5_hadronicOverEm(int depth=0) const
Definition: Photon.h:289
ConversionFwd.h
reco::Photon::ConversionProvenance
ConversionProvenance
Definition: Photon.h:62
reco::Photon::pfID_
PflowIDVariables pfID_
Definition: Photon.h:603
reco::Photon::trkSumPtHollowConeDR04
float trkSumPtHollowConeDR04() const
Definition: Photon.h:494
reco::Photon::EnergyCorrections::EnergyCorrections
EnergyCorrections()
Definition: Photon.h:330
RecoCandidate.h
reco::Photon::neutralHadronIso
float neutralHadronIso() const
Definition: Photon.h:546
reco::Photon::PflowIsolationVariables::neutralHadronIso
float neutralHadronIso
Definition: Photon.h:524
reco::Photon::hcalTowersBehindClusters
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
Definition: Photon.h:255
reco::Photon::mipIntercept
float mipIntercept() const
Definition: Photon.h:388
edm::Ref< PhotonCoreCollection >
reco::Photon::e2x5
float e2x5() const
Definition: Photon.h:265
reco::Photon::pfIsolation_
PflowIsolationVariables pfIsolation_
Definition: Photon.h:602
reco::Photon::ShowerShape::e2x5Bottom
float e2x5Bottom
Definition: Photon.h:170
reco::Photon::caloPosition_
math::XYZPointF caloPosition_
position of seed BasicCluster for shower depth of unconverted photon
Definition: Photon.h:588
reco::Photon::isPhoton
bool isPhoton() const override
Implement Candidate method for particle species.
Definition: Photon.h:89
reco::Photon::PflowIsolationVariables::chargedHadronWorstVtxGeomVetoIso
float chargedHadronWorstVtxGeomVetoIso
Definition: Photon.h:522
reco::Photon::full5x5_e3x3
float full5x5_e3x3() const
Definition: Photon.h:278
reco::Photon::hcalToRun2EffDepth
void hcalToRun2EffDepth()
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
reco::Photon::hasConversionTracks
bool hasConversionTracks() const
Bool flagging photons with a vector of refereces to conversions with size >0.
Definition: Photon.h:67
reco::Photon::trkSumPtSolidConeDR03
float trkSumPtSolidConeDR03() const
Definition: Photon.h:507
reco::Photon::hcalTowerSumEt
float hcalTowerSumEt(const IsolationVariables &iv, int depth) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()
Definition: Photon.h:456
alignCSCRings.s
s
Definition: alignCSCRings.py:92
reco::Photon::PflowIsolationVariables
Definition: Photon.h:519
reco::Photon::ecalRecHitSumEtConeDR03
float ecalRecHitSumEtConeDR03() const
Isolation variables in cone dR=0.3.
Definition: Photon.h:501
reco::Photon::ShowerShape::sigmaIetaIphi
float sigmaIetaIphi
Definition: Photon.h:157
reco::Photon::SaturationInfo::SaturationInfo
SaturationInfo()
Definition: Photon.h:302
reco::Photon::ecal_photons
Definition: Photon.h:314
reco::Photon::chargedHadronPFPVIso
float chargedHadronPFPVIso() const
Definition: Photon.h:545
reco::Photon::hcalOverEcalBc
float hcalOverEcalBc(int depth=0) const
Definition: Photon.h:252
reco::Photon::IsolationVariables::hcalDepth1TowerSumEtBc
float hcalDepth1TowerSumEtBc
Definition: Photon.h:413
reco::Photon::photonIso
float photonIso() const
Definition: Photon.h:547
reco::Photon::mipIsHalo
bool mipIsHalo() const
Definition: Photon.h:390
reco::Photon::FiducialFlags::isEBEEGap
bool isEBEEGap
Definition: Photon.h:102
reco::Photon::ShowerShape::eLeft
float eLeft
Definition: Photon.h:161
reco::Photon::IsolationVariables::hcalTowerSumEt
float hcalTowerSumEt
Definition: Photon.h:405
reco::Photon::FiducialFlags::isEB
bool isEB
Definition: Photon.h:96
reco::Photon::setPflowIsolationVariables
void setPflowIsolationVariables(const PflowIsolationVariables &pfisol)
Set Particle Flow Isolation variables.
Definition: Photon.h:557
reco::Photon::ShowerShape::smAlpha
float smAlpha
Definition: Photon.h:173
reco::Photon::FiducialFlags::isEEDeeGap
bool isEEDeeGap
Definition: Photon.h:101
reco::Photon::isEE
bool isEE() const
Definition: Photon.h:122
mps_fire.end
end
Definition: mps_fire.py:242
reco::Photon::nTrkSolidConeDR04
int nTrkSolidConeDR04() const
Definition: Photon.h:496
reco::Photon::EnergyCorrections::regression1EnergyError
float regression1EnergyError
Definition: Photon.h:324
reco::Photon::hadTowOverEm
float hadTowOverEm(int depth=0) const
Definition: Photon.h:253
reco::Photon::isPFlowPhoton
bool isPFlowPhoton() const
Retrieve photonCore attributes.
Definition: Photon.h:54
reco::Photon::IsolationVariables::IsolationVariables
IsolationVariables()
Definition: Photon.h:427
reco::Photon::ShowerShape::hcalOverEcal
std::array< float, 7 > hcalOverEcal
Definition: Photon.h:150
reco::Photon::PflowIDVariables::mva
float mva
Definition: Photon.h:562
reco::Photon::nTrkHollowConeDR04
int nTrkHollowConeDR04() const
Definition: Photon.h:498
reco::Photon::undefined
Definition: Photon.h:314
reco::Photon::chargedHadronIso
float chargedHadronIso() const
Accessors for Particle Flow Isolation variables.
Definition: Photon.h:542
reco::Photon::ShowerShape::smMajor
float smMajor
Definition: Photon.h:171
reco::Photon::trkSumPtHollowConeDR03
float trkSumPtHollowConeDR03() const
Definition: Photon.h:509
reco::Photon::ShowerShape::hcalDepth1OverEcalBc
float hcalDepth1OverEcalBc
Definition: Photon.h:148
reco::Photon::isEBEtaGap
bool isEBEtaGap() const
Definition: Photon.h:125
reco::Photon::nTrkSolidConeDR03
int nTrkSolidConeDR03() const
Definition: Photon.h:511
reco::Photon::e3x3
float e3x3() const
Definition: Photon.h:266
reco::Photon::FiducialFlags::isEERingGap
bool isEERingGap
Definition: Photon.h:100
reco::Photon::EnergyCorrections::phoEcalEnergy
float phoEcalEnergy
Definition: Photon.h:320
reco::Photon::EnergyCorrections::regression1P4
LorentzVector regression1P4
Definition: Photon.h:325
reco::Photon::ShowerShape::e2x5Right
float e2x5Right
Definition: Photon.h:168
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
reco::Photon::caloPosition
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:85
reco::Photon::EnergyCorrections
Definition: Photon.h:316
reco::Photon::IsolationVariables::trkSumPtSolidCone
float trkSumPtSolidCone
Definition: Photon.h:420
reco::Photon::sigmaEtaEta
float sigmaEtaEta() const
Definition: Photon.h:269
reco::Photon::full5x5_r9
float full5x5_r9() const
Definition: Photon.h:285
reco::Photon::isolationR04_
IsolationVariables isolationR04_
Definition: Photon.h:595
reco::Photon::IsolationVariables::hcalDepth2TowerSumEtBc
float hcalDepth2TowerSumEtBc
Definition: Photon.h:415
reco::Photon::ShowerShape::effSigmaRR
float effSigmaRR
Definition: Photon.h:156
reco::Photon::isStandardPhoton
bool isStandardPhoton() const
Definition: Photon.h:55
reco::Photon::hasPixelSeed
bool hasPixelSeed() const
Bool flagging photons having a non-zero size vector of Ref to electornPixel seeds.
Definition: Photon.h:76
reco::Photon::full5x5_e2x5
float full5x5_e2x5() const
Definition: Photon.h:277
reco::Photon::hadronicOverEmValid
bool hadronicOverEmValid() const
returns false if H/E is not reliably estimated (e.g. because hcal was off or masked)
Definition: Photon.h:260
Point
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
reco::Photon::PflowIsolationVariables::chargedHadronWorstVtxIso
float chargedHadronWorstVtxIso
Definition: Photon.h:521
core
Definition: __init__.py:1
a
double a
Definition: hdecay.h:119
reco::Photon::full5x5_setShowerShapeVariables
void full5x5_setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:213
reco::Photon::ShowerShape::e2x5Max
float e2x5Max
Definition: Photon.h:166
reco::Photon::IsolationVariables::nTrkSolidCone
int nTrkSolidCone
Definition: Photon.h:424
reco::Photon::ShowerShape::hcalDepth2OverEcal
float hcalDepth2OverEcal
Definition: Photon.h:147
reco::Photon::photonCore
reco::PhotonCoreRef photonCore() const
returns a reference to the core photon object
Definition: Photon.h:47
reco::Photon::ShowerShape::e2x5Top
float e2x5Top
Definition: Photon.h:169
reco::Photon::full5x5_showerShapeVariables
const ShowerShape & full5x5_showerShapeVariables() const
Definition: Photon.h:210
reco::Photon::r9
float r9() const
Definition: Photon.h:273
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
reco::Photon::getPflowIsolationVariables
const PflowIsolationVariables & getPflowIsolationVariables() const
Get Particle Flow Isolation variables block.
Definition: Photon.h:554
reco::Photon::EnergyCorrections::candidateP4type
P4type candidateP4type
Definition: Photon.h:329
reco::Photon::ShowerShape::sigmaIetaIeta
float sigmaIetaIeta
Definition: Photon.h:140
reco::Photon::getCorrectedEnergyError
float getCorrectedEnergyError(P4type type) const
type
type
Definition: SiPixelVCal_PayloadInspector.cc:39
reco::Photon::full5x5_showerShapeBlock_
ShowerShape full5x5_showerShapeBlock_
Definition: Photon.h:598
pflow
Definition: TrackFromParentImporter.h:10
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
reco::Photon::hcalOverEcalBc
float hcalOverEcalBc(const ShowerShape &ss, int depth) const
the ratio of total energy of hcal rechits behind the SC and the SC energy
Definition: Photon.h:236
reco::Photon::FiducialFlags::isEBPhiGap
bool isEBPhiGap
Definition: Photon.h:99
reco::Photon::ecalPFClusterIso
float ecalPFClusterIso() const
Definition: Photon.h:550
reco::Photon::ShowerShape::e2x5
float e2x5
Definition: Photon.h:142
reco::Photon::ShowerShape::smMinor
float smMinor
Definition: Photon.h:172
reco::Photon::isEB
bool isEB() const
Definition: Photon.h:120
reco::Photon::FiducialFlags
Definition: Photon.h:94
reco::Photon::overlap
bool overlap(const Candidate &) const override
check overlap with another candidate
reco::Photon::mipNhitCone
int mipNhitCone() const
Definition: Photon.h:389
Photon
Definition: Photon.py:1
reco::Photon::EnergyCorrections::scEcalP4
LorentzVector scEcalP4
Definition: Photon.h:319
reco::Photon::full5x5_e1x5
float full5x5_e1x5() const
full5x5 Shower shape variables
Definition: Photon.h:276
reco::Photon::MIPVariables::mipIsHalo
bool mipIsHalo
Definition: Photon.h:371
reco::Photon::isEEGap
bool isEEGap() const
true if photon is in EE, and inside the boundaries in supercrystal/D
Definition: Photon.h:128
reco::LeafCandidate::p4
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:114
reco::Photon::Photon
Photon()
default constructor
Definition: Photon.h:32
reco::Photon::setFiducialVolumeFlags
void setFiducialVolumeFlags(const FiducialFlags &a)
set flags for photons in the ECAL fiducial volume
Definition: Photon.h:117
reco::Photon::EnergyCorrections::scEcalEnergyError
float scEcalEnergyError
Definition: Photon.h:318
reco::RecoCandidate
Definition: RecoCandidate.h:20
reco::Photon::MIPVariables::mipIntercept
float mipIntercept
Definition: Photon.h:369
reco::Photon::PflowIsolationVariables::PflowIsolationVariables
PflowIsolationVariables()
Definition: Photon.h:528
reco::Photon::setCorrectedEnergy
void setCorrectedEnergy(P4type type, float E, float dE, bool toCand=true)
reco::Photon::both
Definition: Photon.h:62
reco::Photon::e5x5
float e5x5() const
Definition: Photon.h:267
reco::Photon::conversionsOneLeg
reco::ConversionRefVector conversionsOneLeg() const
vector of references to one leg Conversion's
Definition: Photon.h:65
reco::Photon::IsolationVariables
Definition: Photon.h:399
reco::Photon::showerShapeBlock_
ShowerShape showerShapeBlock_
Definition: Photon.h:597
reco::Photon::full5x5_r2x5
float full5x5_r2x5() const
Definition: Photon.h:284
reco::Photon::fiducialFlagBlock_
FiducialFlags fiducialFlagBlock_
Definition: Photon.h:594
reco::Photon::IsolationVariables::trkSumPtHollowCone
float trkSumPtHollowCone
Definition: Photon.h:422
reco::LeafCandidate::vertex
const Point & vertex() const override
vertex position (overwritten by PF...)
Definition: LeafCandidate.h:165
reco::Photon::MIPVariables::mipNhitCone
int mipNhitCone
Definition: Photon.h:370
reco::Candidate
Definition: Candidate.h:27
reco::Photon::hcalOverEcal
float hcalOverEcal(int depth=0) const
Definition: Photon.h:232
reco::Photon::eCorrections_
EnergyCorrections eCorrections_
Definition: Photon.h:600
reco::Photon::parentSuperCluster
reco::SuperClusterRef parentSuperCluster() const
Ref to PFlow SuperCluster.
Definition: Photon.h:59
reco::Photon::FiducialFlags::isEBEtaGap
bool isEBEtaGap
Definition: Photon.h:98
reco::Photon::pfMVA
float pfMVA() const
Definition: Photon.h:577
egamma
Definition: ConversionFinder.h:29
reco::Photon::isolationR03_
IsolationVariables isolationR03_
Definition: Photon.h:596
reco::Photon::setPflowIDVariables
void setPflowIDVariables(const PflowIDVariables &pfid)
Definition: Photon.h:579
reco::Photon::EnergyCorrections::regression1Energy
float regression1Energy
Definition: Photon.h:323
reco::Photon::hcalPFClusterIso
float hcalPFClusterIso() const
Definition: Photon.h:551
reco::Photon::ShowerShape::hcalTowersBehindClusters
std::vector< CaloTowerDetId > hcalTowersBehindClusters
Definition: Photon.h:153
reco::Photon::ShowerShape::hcalOverEcalBc
std::array< float, 7 > hcalOverEcalBc
Definition: Photon.h:152
reco::LeafCandidate::setP4
void setP4(const LorentzVector &p4) final
set 4-momentum
Definition: LeafCandidate.h:158
reco::Photon::ShowerShape
Definition: Photon.h:138
reco::Photon::mipSlope
float mipSlope() const
Definition: Photon.h:387
reco::Photon::full5x5_sigmaEtaEta
float full5x5_sigmaEtaEta() const
Definition: Photon.h:281
std
Definition: JetResolutionObject.h:76
reco::Photon::nClusterOutsideMustache
int nClusterOutsideMustache() const
Definition: Photon.h:575
reco::Photon::photonCore_
reco::PhotonCoreRef photonCore_
reference to the PhotonCore
Definition: Photon.h:590
reco::Photon::PflowIDVariables
Definition: Photon.h:559
reco::Photon::EnergyCorrections::regression2P4
LorentzVector regression2P4
Definition: Photon.h:328
reco::Photon::saturationInfo_
SaturationInfo saturationInfo_
Definition: Photon.h:599
reco::Photon::isSeedSaturated
float isSeedSaturated() const
Definition: Photon.h:307
reco::Photon::IsolationVariables::nTrkHollowCone
int nTrkHollowCone
Definition: Photon.h:426
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:19
reco::Photon::setMIPVariables
void setMIPVariables(const MIPVariables &mipVar)
set mip Variables
Definition: Photon.h:393
reco::Photon::setEnergyCorrections
void setEnergyCorrections(const EnergyCorrections &e)
Definition: Photon.h:352
reco::Photon::getCorrectedEnergy
float getCorrectedEnergy(P4type type) const
reco::Photon::EnergyCorrections::phoEcalP4
LorentzVector phoEcalP4
Definition: Photon.h:322
reco::Photon::full5x5_hcalOverEcal
float full5x5_hcalOverEcal(int depth=0) const
the total hadronic over electromagnetic fraction
Definition: Photon.h:288
reco::Photon::hcalTowerSumEtConeDR03
float hcalTowerSumEtConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()
Definition: Photon.h:503
LorentzVector
math::XYZTLorentzVector LorentzVector
Definition: HLTMuonMatchAndPlot.h:49
reco::Photon::trkSumPtSolidConeDR04
float trkSumPtSolidConeDR04() const
Definition: Photon.h:492
reco::Photon::e1x5
float e1x5() const
Shower shape variables.
Definition: Photon.h:264
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
SuperCluster.h
reco::Photon::full5x5_hcalOverEcalBc
float full5x5_hcalOverEcalBc(int depth=0) const
the ratio of total energy of hcal rechits behind the SC and the SC energy
Definition: Photon.h:292
reco::Photon::MIPVariables::MIPVariables
MIPVariables()
Definition: Photon.h:373
reco::Photon::EnergyCorrections::regression2EnergyError
float regression2EnergyError
Definition: Photon.h:327
reco::Photon::conversions
reco::ConversionRefVector conversions() const
vector of references to Conversion's
Definition: Photon.h:61
reco::Photon::mipVariableBlock_
MIPVariables mipVariableBlock_
Definition: Photon.h:601
reco::Photon::ShowerShape::hcalDepth1OverEcal
float hcalDepth1OverEcal
Definition: Photon.h:146
reco::Photon::PflowIDVariables::nClusterOutsideMustache
int nClusterOutsideMustache
Definition: Photon.h:560
reco::Photon::getCandidateP4type
P4type getCandidateP4type() const
Definition: Photon.h:357
reco::Photon::regression1
Definition: Photon.h:314
reco::Photon::setCandidateP4type
void setCandidateP4type(const P4type type)
Definition: Photon.h:353
reco::Photon::mipTotEnergy
float mipTotEnergy() const
Definition: Photon.h:386
reco::Photon::SaturationInfo::isSeedSaturated
bool isSeedSaturated
Definition: Photon.h:301
reco::Photon::ecalRecHitSumEtConeDR04
float ecalRecHitSumEtConeDR04() const
Definition: Photon.h:454
reco::Photon::r2x5
float r2x5() const
Definition: Photon.h:272
edm::RefToBase< reco::Track >
reco::Photon::PflowIsolationVariables::photonIso
float photonIso
Definition: Photon.h:525
reco::Photon::MIPVariables
Definition: Photon.h:365
reco::Photon::conversionTrackProvenance
int conversionTrackProvenance(const edm::RefToBase< reco::Track > &convTrack) const
reco::Photon::EnergyCorrections::phoEcalEnergyError
float phoEcalEnergyError
Definition: Photon.h:321
reco::Photon::setVertex
void setVertex(const Point &vertex) override
set primary event vertex used to define photon direction
reco::Photon::ShowerShape::ShowerShape
ShowerShape()
Definition: Photon.h:174
reco::Photon::ShowerShape::e3x3
float e3x3
Definition: Photon.h:143
reco::Photon::isEEDeeGap
bool isEEDeeGap() const
Definition: Photon.h:130
reco::Photon::full5x5_sigmaIetaIeta
float full5x5_sigmaIetaIeta() const
Definition: Photon.h:282
reco::Photon::PflowIsolationVariables::sumEcalClusterEt
float sumEcalClusterEt
Definition: Photon.h:526
reco::Photon::saturationInfo
const SaturationInfo & saturationInfo() const
Definition: Photon.h:308
reco::Photon::PflowIsolationVariables::sumHcalClusterEt
float sumHcalClusterEt
Definition: Photon.h:527
reco::Photon::setPhotonCore
void setPhotonCore(const reco::PhotonCoreRef &photonCore)
Definition: Photon.h:48
reco::Photon::hcalTowerSumEtBcConeDR04
float hcalTowerSumEtBcConeDR04(int depth=0) const
Definition: Photon.h:490
reco::Photon::IsolationVariables::hcalDepth1TowerSumEt
float hcalDepth1TowerSumEt
Definition: Photon.h:407
reco::Photon::setSaturationInfo
void setSaturationInfo(const SaturationInfo &s)
Definition: Photon.h:309
reco::Photon::r1x5
float r1x5() const
Definition: Photon.h:271
reco::Photon::regression2
Definition: Photon.h:314
reco::Photon::MIPVariables::mipTotEnergy
float mipTotEnergy
Definition: Photon.h:367
reco::Photon::energyCorrections
const EnergyCorrections & energyCorrections() const
Definition: Photon.h:359
reco::Photon::nSaturatedXtals
float nSaturatedXtals() const
Definition: Photon.h:306
reco::Candidate::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
reco::Photon::IsolationVariables::hcalDepth2TowerSumEt
float hcalDepth2TowerSumEt
Definition: Photon.h:409
reco::Photon::setP4
void setP4(P4type type, const LorentzVector &p4, float p4Error, bool setToRecoCandidate)
reco::Photon::pixelSeed_
bool pixelSeed_
Definition: Photon.h:592
math::XYZPointF
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
reco::Photon::isEBEEGap
bool isEBEEGap() const
true if photon is in boundary between EB and EE
Definition: Photon.h:132
reco::Photon::~Photon
~Photon() override
destructor
reco::Photon::mipChi2
float mipChi2() const
MIP variables.
Definition: Photon.h:385
reco::Photon::hcalOverEcal
float hcalOverEcal(const ShowerShape &ss, int depth) const
the total hadronic over electromagnetic fraction
Definition: Photon.h:216
reco::Photon::hcalTowerSumEtBcConeDR03
float hcalTowerSumEtBcConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcalBc...
Definition: Photon.h:505
reco::Photon::ecal_standard
Definition: Photon.h:314
reco::Photon::PflowIDVariables::PflowIDVariables
PflowIDVariables()
Definition: Photon.h:564
ElectronSeed.h
reco::Photon::maxEnergyXtal
float maxEnergyXtal() const
Definition: Photon.h:268
reco::Photon::hcalTowerSumEtBc
float hcalTowerSumEtBc(const IsolationVariables &iv, int depth) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcalBc...
Definition: Photon.h:474
reco::Photon::setShowerShapeVariables
void setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:212
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
reco::Photon::isEBGap
bool isEBGap() const
true if photon is in EB, and inside the boundaries in super crystals/modules
Definition: Photon.h:124
reco::Photon::ShowerShape::e5x5
float e5x5
Definition: Photon.h:144
reco::Photon::electronPixelSeeds
reco::ElectronSeedRefVector electronPixelSeeds() const
reference to electron Pixel seed
Definition: Photon.h:74
Conversion.h