CMS 3D CMS Logo

PFCandidate.h
Go to the documentation of this file.
1 #ifndef ParticleFlowCandidate_PFCandidate_h
2 #define ParticleFlowCandidate_PFCandidate_h
3 
9 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
10 #include <atomic>
11 #endif
12 #include <iosfwd>
13 #include <array>
14 
16 
33 namespace reco {
41  public:
43  enum ParticleType {
44  X = 0, // undefined
45  h, // charged hadron
46  e, // electron
47  mu, // muon
48  gamma, // photon
49  h0, // neutral hadron
50  h_HF, // HF tower identified as a hadron
51  egamma_HF // HF tower identified as an EM particle
52  };
53 
54  enum Flags {
55  NORMAL = 0,
72  };
73 
74  enum PFVertexType {
84  };
85 
87  PFCandidate();
88 
90  PFCandidate(const PFCandidatePtr& sourcePtr);
91 
92  /* PFCandidate( Charge q, */
93  /* const LorentzVector & p4, */
94  /* ParticleType particleId, */
95  /* reco::PFBlockRef blockRef ); */
97 
99  PFCandidate(const PFCandidate&);
100 
102  ~PFCandidate() override;
103 
105 
107  PFCandidate* clone() const override;
108 
109  /* /// set source ref */
110  /* void setSourceRef(const PFCandidateRef& ref) { sourceRef_ = ref; } */
111 
112  /* size_type numberOfSourceCandidateRefs() const {return 1;} */
113 
114  /* CandidateBaseRef sourceCandidateRef( size_type i ) const { */
115  /* return CandidateBaseRef(sourceRef_); */
116  /* } */
117 
119  void setSourceCandidatePtr(const PFCandidatePtr& ptr) { sourcePtr_ = ptr; }
120 
121  size_t numberOfSourceCandidatePtrs() const override { return 1; }
122 
124 
130 
132  void setParticleType(ParticleType type);
133 
135  /* void addElement( const reco::PFBlockElement* element ); */
136 
138  void addElementInBlock(const reco::PFBlockRef& blockref, unsigned elementIndex);
139 
141  void setTrackRef(const reco::TrackRef& ref);
142 
145  reco::TrackRef trackRef() const;
146 
149  const reco::Track* bestTrack() const override {
150  if ((abs(pdgId()) == 11 || pdgId() == 22) && gsfTrackRef().isNonnull() && gsfTrackRef().isAvailable())
151  return &(*gsfTrackRef());
152  else if (trackRef().isNonnull() && trackRef().isAvailable())
153  return &(*trackRef());
154  else
155  return nullptr;
156  }
158  float dzError() const override {
159  const Track* tr = bestTrack();
160  if (tr != nullptr)
161  return tr->dzError();
162  else
163  return 0;
164  }
166  float dxyError() const override {
167  const Track* tr = bestTrack();
168  if (tr != nullptr)
169  return tr->dxyError();
170  else
171  return 0;
172  }
173 
175  void setGsfTrackRef(const reco::GsfTrackRef& ref);
176 
180 
182  void setMuonRef(const reco::MuonRef& ref);
183 
186  reco::MuonRef muonRef() const;
187 
190 
194 
196  void setConversionRef(const reco::ConversionRef& ref);
197 
200 
203 
206 
209 
212 
214  void setEcalEnergy(float eeRaw, float eeCorr) {
215  rawEcalEnergy_ = eeRaw;
216  ecalERatio_ = std::abs(eeRaw) < 1.e-6 ? 1.0 : eeCorr / eeRaw;
217  }
218 
220  double ecalEnergy() const { return ecalERatio_ * rawEcalEnergy_; }
221 
223  double rawEcalEnergy() const { return rawEcalEnergy_; }
224 
226  void setHcalEnergy(float ehRaw, float ehCorr) {
227  rawHcalEnergy_ = ehRaw;
228  hcalERatio_ = std::abs(ehRaw) < 1.e-6 ? 1.0 : ehCorr / ehRaw;
229  }
230 
232  double hcalEnergy() const { return hcalERatio_ * rawHcalEnergy_; }
233 
235  double rawHcalEnergy() const { return rawHcalEnergy_; }
236 
238  void setHoEnergy(float eoRaw, float eoCorr) {
239  rawHoEnergy_ = eoRaw;
240  hoERatio_ = std::abs(eoRaw) < 1.e-6 ? 1.0 : eoCorr / eoRaw;
241  }
242 
244  double hoEnergy() const { return hoERatio_ * rawHoEnergy_; }
245 
247  double rawHoEnergy() const { return rawHoEnergy_; }
248 
250  void setGsfElectronRef(const reco::GsfElectronRef& ref);
251 
252  void setSuperClusterRef(const reco::SuperClusterRef& scRef);
253 
256 
258  void setPhotonRef(const reco::PhotonRef& phRef);
259 
261  reco::PhotonRef photonRef() const;
262 
265 
268 
271 
274 
276  void setPs1Energy(float e1) { ps1Energy_ = e1; }
277 
279  double pS1Energy() const { return ps1Energy_; }
280 
282  void setPs2Energy(float e2) { ps2Energy_ = e2; }
283 
285  double pS2Energy() const { return ps2Energy_; }
286 
288  void rescaleMomentum(double rescaleFactor);
289 
291  void setFlag(Flags theFlag, bool value);
292 
294  bool flag(Flags theFlag) const;
295 
297  void setDeltaP(double dp) { deltaP_ = dp; }
298 
300  double deltaP() const { return deltaP_; }
301 
302  // int pdgId() const { return translateTypeToPdgId( particleId_ ); }
303 
309 
310  void set_mva_Isolated(float mvaI) { mva_Isolated_ = mvaI; }
311  // mva for isolated electrons
312  float mva_Isolated() const { return mva_Isolated_; }
313 
314  void set_mva_e_pi(float mvaNI) { mva_e_pi_ = mvaNI; }
316  float mva_e_pi() const { return mva_e_pi_; }
317 
319  void set_mva_e_mu(float mva) { mva_e_mu_ = mva; }
320 
322  float mva_e_mu() const { return mva_e_mu_; }
323 
325  void set_mva_pi_mu(float mva) { mva_pi_mu_ = mva; }
326 
328  float mva_pi_mu() const { return mva_pi_mu_; }
329 
332 
334  float mva_nothing_gamma() const { return mva_nothing_gamma_; }
335 
338 
340  float mva_nothing_nh() const { return mva_nothing_nh_; }
341 
344 
346  float mva_gamma_nh() const { return mva_gamma_nh_; }
347 
350 
353 
356 
358 
360 
363 
366  virtual ParticleType particleId() const { return translatePdgIdToType(pdgId()); }
367 
369  /* const std::vector<unsigned>& elementIndices() const { */
370  /* return elementIndices_; */
371  /* } */
373  /* const edm::OwnVector< reco::PFBlockElement >& elements() const */
374  /* {return elements_;} */
375 
377  typedef std::pair<reco::PFBlockRef, unsigned> ElementInBlock;
378  typedef std::vector<ElementInBlock> ElementsInBlocks;
379 
381  typedef std::vector<unsigned> Elements;
382 
383  const ElementsInBlocks& elementsInBlocks() const;
384 
385  static const float bigMva_;
386 
387  friend std::ostream& operator<<(std::ostream& out, const PFCandidate& c);
388 
389  //Tips on setting the vertex efficiently
390  //There are two choices: a) use the vertex_ data member, or b) point to the vertex
391  //of one of the refs stored by this class. The PFVertexType enum gives the current list
392  //of possible references. For these references, use the setVeretxSource method and NOT
393  //the setVertex method. If none of the available refs have the vertex that you want for this
394  //PFCandidate, use the setVertex method. If you find that you are using frequently two store a
395  // vertex that is the same as one of the refs in this class, you should just extend the enum
396  // and modify the vertex() method accordingly.
398  vertexType_ = vt;
399  if (vertexType_ != kCandVertex)
400  LeafCandidate::setVertex(Point(0., 0., 0.));
401  }
402 
403  void setVertex(const math::XYZPoint& p) override {
406  }
407 
408  const Point& vertex() const override;
409  double vx() const override { return vertex().x(); }
410  double vy() const override { return vertex().y(); }
411  double vz() const override { return vertex().z(); }
412 
414  bool isTimeValid() const { return timeError_ >= 0.f; }
416  float time() const { return time_; }
418  float timeError() const { return timeError_; }
420  void setTime(float time, float timeError = 0.f) {
421  time_ = time;
423  }
424 
426  float hcalDepthEnergyFraction(unsigned int depth) const { return hcalDepthEnergyFractions_[depth - 1]; }
428  const std::array<float, 7>& hcalDepthEnergyFractions() const { return hcalDepthEnergyFractions_; }
430  void setHcalDepthEnergyFractions(const std::array<float, 7>& fracs) { hcalDepthEnergyFractions_ = fracs; }
431 
432  private:
434  bool overlap(const Candidate&) const override;
435 
436  void setFlag(unsigned shift, unsigned flag, bool value);
437 
438  bool flag(unsigned shift, unsigned flag) const;
439 
440 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
441  mutable std::atomic<ElementsInBlocks*> elementsInBlocks_;
442 #else
443  mutable ElementsInBlocks* elementsInBlocks_;
444 #endif
447 
449  /* PFCandidateRef sourceRef_; */
451 
455 
457  float ecalERatio_;
458 
460  float hcalERatio_;
461 
463  float hoERatio_;
464 
467 
470 
473 
475  float ps1Energy_;
476 
478  float ps2Energy_;
479 
481  unsigned flags_;
482 
484  float deltaP_;
485 
487 
488  // mva for isolated electrons
490 
492  float mva_e_pi_;
493 
495  float mva_e_mu_;
496 
498  float mva_pi_mu_;
499 
502 
505 
508 
511 
512  //more efficiently stored refs
513  void storeRefInfo(unsigned int iMask,
514  unsigned int iBit,
515  bool iIsValid,
516  const edm::RefCore& iCore,
517  size_t iKey,
518  const edm::EDProductGetter*);
519  bool getRefInfo(
520  unsigned int iMask, unsigned int iBit, edm::ProductID& oProdID, size_t& oIndex, size_t& aIndex) const;
521 
522  const edm::EDProductGetter* getter_; //transient
523  unsigned short storedRefsBitPattern_;
524  std::vector<unsigned long long> refsInfo_;
525  std::vector<const void*> refsCollectionCache_;
526 
528  float time_;
530  float timeError_;
531 
532  std::array<float, 7> hcalDepthEnergyFractions_;
533  };
534 
536  struct PFParticleIdTag {};
537 
540  /* GET_DEFAULT_CANDIDATE_COMPONENT( PFCandidate, PFBlockRef, block ); */
541 
545 
546  std::ostream& operator<<(std::ostream& out, const PFCandidate& c);
547 
548 } // namespace reco
549 
550 #endif
type
Definition: HCALResponse.h:21
~PFCandidate() override
destructor
Definition: PFCandidate.cc:195
double ecalEnergy() const
return corrected Ecal energy
Definition: PFCandidate.h:220
float deltaP_
uncertainty on 3-momentum
Definition: PFCandidate.h:484
void setPs2Energy(float e2)
set corrected PS2 energy
Definition: PFCandidate.h:282
int pdgId() const final
PDG identifier.
int Charge
electric charge type
Definition: Candidate.h:35
void setDeltaP(double dp)
set uncertainty on momentum
Definition: PFCandidate.h:297
friend std::ostream & operator<<(std::ostream &out, const PFCandidate &c)
void setPs1Energy(float e1)
set corrected PS1 energy
Definition: PFCandidate.h:276
ParticleType
particle types
Definition: PFCandidate.h:43
reco::Muon::MuonTrackType muonTrackType_
Definition: PFCandidate.h:454
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
const edm::EDProductGetter * getter_
Definition: PFCandidate.h:522
void setPFPhotonExtraRef(const reco::PFCandidatePhotonExtraRef &ref)
set the PF Photon Extra Ref
Definition: PFCandidate.cc:591
double rawEcalEnergy() const
return corrected Ecal energy
Definition: PFCandidate.h:223
void setGsfElectronRef(const reco::GsfElectronRef &ref)
set GsfElectronRef
Definition: PFCandidate.cc:525
void setFlag(Flags theFlag, bool value)
set a given flag
Definition: PFCandidate.cc:277
bool getRefInfo(unsigned int iMask, unsigned int iBit, edm::ProductID &oProdID, size_t &oIndex, size_t &aIndex) const
Definition: PFCandidate.cc:379
void set_mva_e_mu(float mva)
set mva for electron-muon discrimination
Definition: PFCandidate.h:319
virtual void setSourceCandidatePtr(const CandidatePtr &ptr)
Set the ptr to the source Candidate.
Definition: Candidate.h:180
float timeError_
timing information uncertainty (<0 if timing not available)
Definition: PFCandidate.h:530
void set_mva_nothing_gamma(float mva)
set mva for gamma detection
Definition: PFCandidate.h:331
size_t size_type
Definition: Candidate.h:30
void setPositionAtECALEntrance(const math::XYZPointF &pos)
set position at ECAL entrance
Definition: PFCandidate.h:349
float mva_nothing_gamma() const
mva for gamma detection
Definition: PFCandidate.h:334
float hcalERatio_
corrected HCAL energy ratio (corrected/raw)
Definition: PFCandidate.h:460
double dxyError() const
error on dxy
Definition: TrackBase.h:716
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:469
const reco::Muon::MuonTrackType bestMuonTrackType() const
get the Best Muon Track Ref
Definition: PFCandidate.h:359
unsigned flags_
all flags, packed (ecal regional, hcal regional, tracking)
Definition: PFCandidate.h:481
double rawHoEnergy() const
return raw Hcal energy
Definition: PFCandidate.h:247
float mva_e_mu_
mva for electron-muon discrimination
Definition: PFCandidate.h:495
static const float bigMva_
Definition: PFCandidate.h:385
bool overlap(const Candidate &) const override
Polymorphic overlap.
Definition: PFCandidate.cc:258
float mva_nothing_nh_
mva for neutral hadron detection
Definition: PFCandidate.h:504
void setVertex(const math::XYZPoint &p) override
Definition: PFCandidate.h:403
std::vector< const void * > refsCollectionCache_
Definition: PFCandidate.h:525
float time() const
Definition: PFCandidate.h:416
float hoERatio_
corrected HO energy ratio (corrected/raw)
Definition: PFCandidate.h:463
edm::RefVector< reco::PFBlockCollection > Blocks
Definition: PFCandidate.h:380
void setSourceCandidatePtr(const PFCandidatePtr &ptr)
Definition: PFCandidate.h:119
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
reco::PFCandidatePhotonExtraRef photonExtraRef() const
return a reference to the photon extra
Definition: PFCandidate.cc:550
float mva_gamma_nh_
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:507
float ecalERatio_
corrected ECAL energy ratio (corrected/raw)
Definition: PFCandidate.h:457
float mva_pi_mu_
mva for pi-muon discrimination
Definition: PFCandidate.h:498
particle ID component tag
Definition: PFCandidate.h:536
bool isAvailable() const
Definition: Ref.h:537
const math::XYZPointF & positionAtECALEntrance() const
Definition: PFCandidate.h:362
float mva_e_mu() const
mva for electron-muon discrimination
Definition: PFCandidate.h:322
void setVertex(const Point &vertex) override
set vertex
std::vector< ElementInBlock > ElementsInBlocks
Definition: PFCandidate.h:378
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:466
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:408
float mva_e_pi_
mva for electron-pion discrimination
Definition: PFCandidate.h:492
reco::PFDisplacedVertexRef displacedVertexRef(Flags type) const
Definition: PFCandidate.cc:481
void set_mva_pi_mu(float mva)
set mva for pi-muon discrimination
Definition: PFCandidate.h:325
float dxyError() const override
uncertainty on dxy
Definition: PFCandidate.h:166
void set_mva_nothing_nh(float mva)
set mva for neutral hadron detection
Definition: PFCandidate.h:337
void set_mva_e_pi(float mvaNI)
Definition: PFCandidate.h:314
const Point & vertex() const override
vertex position (overwritten by PF...)
Definition: PFCandidate.cc:602
double pS1Energy() const
return corrected PS1 energy
Definition: PFCandidate.h:279
std::vector< unsigned long long > refsInfo_
Definition: PFCandidate.h:524
float hcalDepthEnergyFraction(unsigned int depth) const
fraction of hcal energy at a given depth (depth = 1 .. 7)
Definition: PFCandidate.h:426
float mva_pi_mu() const
mva for pi-muon discrimination
Definition: PFCandidate.h:328
bool isTimeValid() const
do we have a valid time information
Definition: PFCandidate.h:414
float dzError() const override
uncertainty on dz
Definition: PFCandidate.h:158
void setDisplacedVertexRef(const reco::PFDisplacedVertexRef &ref, Flags flag)
set displaced vertex reference
Definition: PFCandidate.cc:443
float mva_nothing_nh() const
mva for neutral hadron detection
Definition: PFCandidate.h:340
float mva_Isolated() const
Definition: PFCandidate.h:312
std::vector< unsigned > Elements
Definition: PFCandidate.h:381
void setVertexSource(PFVertexType vt)
Definition: PFCandidate.h:397
void set_mva_Isolated(float mvaI)
Definition: PFCandidate.h:310
float ps1Energy_
corrected PS1 energy
Definition: PFCandidate.h:475
CandidatePtr sourceCandidatePtr(size_type i) const override
Definition: PFCandidate.h:123
void addElementInBlock(const reco::PFBlockRef &blockref, unsigned elementIndex)
add an element to the current PFCandidate
Definition: PFCandidate.cc:199
size_t numberOfSourceCandidatePtrs() const override
Definition: PFCandidate.h:121
void setMuonTrackType(const reco::Muon::MuonTrackType &type)
set the Best Muon Track Ref
Definition: PFCandidate.h:355
void setPFElectronExtraRef(const reco::PFCandidateElectronExtraRef &ref)
set the PF Electron Extra Ref
Definition: PFCandidate.cc:535
void setParticleType(ParticleType type)
set Particle Type
Definition: PFCandidate.cc:256
reco::PhotonRef photonRef() const
return a reference to the corresponding Photon if any
Definition: PFCandidate.cc:548
bool flag(Flags theFlag) const
return a given flag
Definition: PFCandidate.cc:284
unsigned short storedRefsBitPattern_
Definition: PFCandidate.h:523
int translateTypeToPdgId(ParticleType type) const
Definition: PFCandidate.cc:232
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
reco::GsfElectronRef gsfElectronRef() const
return a reference to the corresponding GsfElectron if any
Definition: PFCandidate.cc:530
double vx() const override
x coordinate of vertex position
Definition: PFCandidate.h:409
double f[11][100]
const LorentzVector & p4() const final
four-momentum Lorentz vector
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:472
Definition: value.py:1
void rescaleMomentum(double rescaleFactor)
particle momentum *= rescaleFactor
Definition: PFCandidate.cc:271
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:421
PFCandidate * clone() const override
return a clone
Definition: PFCandidate.cc:197
void setEcalEnergy(float eeRaw, float eeCorr)
set corrected Ecal energy
Definition: PFCandidate.h:214
float mva_e_pi() const
mva for electron-pion discrimination
Definition: PFCandidate.h:316
void setHcalDepthEnergyFractions(const std::array< float, 7 > &fracs)
set the fraction of hcal energy as function of depth (index 0..6 for depth 1..7)
Definition: PFCandidate.h:430
double dzError() const
error on dz
Definition: TrackBase.h:725
const std::array< float, 7 > & hcalDepthEnergyFractions() const
fraction of hcal energy at a given depth (index 0..6 for depth 1..7)
Definition: PFCandidate.h:428
double hoEnergy() const
return corrected Hcal energy
Definition: PFCandidate.h:244
double p() const final
magnitude of momentum vector
reco::PFCandidateElectronExtraRef electronExtraRef() const
return a reference to the electron extra
Definition: PFCandidate.cc:544
void setGsfTrackRef(const reco::GsfTrackRef &ref)
set gsftrack reference
Definition: PFCandidate.cc:424
PFCandidate()
default constructor
Definition: PFCandidate.cc:25
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
void setPhotonRef(const reco::PhotonRef &phRef)
set ref to the corresponding reco::Photon if any
Definition: PFCandidate.cc:562
void setConversionRef(const reco::ConversionRef &ref)
set ref to original reco conversion
Definition: PFCandidate.cc:491
void set_mva_gamma_nh(float mva)
set mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:343
ParticleType translatePdgIdToType(int pdgid) const
Definition: PFCandidate.cc:209
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
PFCandidate & operator=(PFCandidate const &)
Definition: PFCandidate.cc:154
std::atomic< ElementsInBlocks * > elementsInBlocks_
Definition: PFCandidate.h:441
PFVertexType vertexType_
Definition: PFCandidate.h:486
void setHoEnergy(float eoRaw, float eoCorr)
set corrected Hcal energy
Definition: PFCandidate.h:238
PFCandidatePtr sourcePtr_
reference to the source PFCandidate, if any
Definition: PFCandidate.h:450
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
fixed size matrix
float time_
timing information (valid if timeError_ >= 0)
Definition: PFCandidate.h:528
reco::VertexCompositeCandidateRef v0Ref() const
return a reference to the original conversion
Definition: PFCandidate.cc:520
void setMuonRef(const reco::MuonRef &ref)
set muon reference
Definition: PFCandidate.cc:410
double vy() const override
y coordinate of vertex position
Definition: PFCandidate.h:410
std::pair< reco::PFBlockRef, unsigned > ElementInBlock
return indices of elements used in the block
Definition: PFCandidate.h:377
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
math::XYZPointF positionAtECALEntrance_
position at ECAL entrance, from the PFRecTrack
Definition: PFCandidate.h:510
float mva_nothing_gamma_
mva for gamma detection
Definition: PFCandidate.h:501
reco::PFCandidateEGammaExtraRef egammaExtraRef() const
return a reference to the EGamma extra
Definition: PFCandidate.cc:554
reco::GsfTrackRef gsfTrackRef() const
Definition: PFCandidate.cc:440
void setPFEGammaExtraRef(const reco::PFCandidateEGammaExtraRef &ref)
set the PF EGamma Extra Ref
Definition: PFCandidate.cc:596
double hcalEnergy() const
return corrected Hcal energy
Definition: PFCandidate.h:232
static unsigned int const shift
double pS2Energy() const
return corrected PS2 energy
Definition: PFCandidate.h:285
float ps2Energy_
corrected PS2 energy
Definition: PFCandidate.h:478
void setSuperClusterRef(const reco::SuperClusterRef &scRef)
Definition: PFCandidate.cc:576
MuonTrackType
map for Global Muon refitters
Definition: Muon.h:36
void setV0Ref(const reco::VertexCompositeCandidateRef &ref)
set ref to original reco conversion
Definition: PFCandidate.cc:516
float mva_gamma_nh() const
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:346
virtual ParticleType particleId() const
Definition: PFCandidate.h:366
void setTrackRef(const reco::TrackRef &ref)
set track reference
Definition: PFCandidate.cc:393
const ElementsInBlocks & elementsInBlocks() const
Definition: PFCandidate.cc:636
#define GET_CANDIDATE_COMPONENT(CAND, TYPE, FUN, TAG)
Definition: component.h:91
float timeError() const
Definition: PFCandidate.h:418
void setTime(float time, float timeError=0.f)
the timing information
Definition: PFCandidate.h:420
Elements elementsStorage_
Definition: PFCandidate.h:446
reco::ConversionRef conversionRef() const
return a reference to the original conversion
Definition: PFCandidate.cc:511
const reco::Track * bestTrack() const override
Definition: PFCandidate.h:149
void setHcalEnergy(float ehRaw, float ehCorr)
set corrected Hcal energy
Definition: PFCandidate.h:226
double deltaP() const
uncertainty on 3-momentum
Definition: PFCandidate.h:300
double vz() const override
z coordinate of vertex position
Definition: PFCandidate.h:411
double rawHcalEnergy() const
return raw Hcal energy
Definition: PFCandidate.h:235
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
std::array< float, 7 > hcalDepthEnergyFractions_
Definition: PFCandidate.h:532
reco::SuperClusterRef superClusterRef() const
return a reference to the corresponding SuperCluster if any
Definition: PFCandidate.cc:558
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:343