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 
42  public:
43 
45  enum ParticleType {
46  X=0, // undefined
47  h, // charged hadron
48  e, // electron
49  mu, // muon
50  gamma, // photon
51  h0, // neutral hadron
52  h_HF, // HF tower identified as a hadron
53  egamma_HF // HF tower identified as an EM particle
54  };
55 
56  enum Flags {
57  NORMAL=0,
74  };
75 
76 
77  enum PFVertexType {
87  };
88 
89 
91  PFCandidate();
92 
94  PFCandidate( const PFCandidatePtr& sourcePtr );
95 
96  /* PFCandidate( Charge q, */
97  /* const LorentzVector & p4, */
98  /* ParticleType particleId, */
99  /* reco::PFBlockRef blockRef ); */
100  PFCandidate( Charge q,
101  const LorentzVector & p4,
103 
105  PFCandidate( const PFCandidate&);
106 
108  ~PFCandidate() override;
109 
111 
113  PFCandidate * clone() const override;
114 
115 
116  /* /// set source ref */
117  /* void setSourceRef(const PFCandidateRef& ref) { sourceRef_ = ref; } */
118 
119  /* size_type numberOfSourceCandidateRefs() const {return 1;} */
120 
121  /* CandidateBaseRef sourceCandidateRef( size_type i ) const { */
122  /* return CandidateBaseRef(sourceRef_); */
123  /* } */
124 
126  void setSourceCandidatePtr(const PFCandidatePtr& ptr) { sourcePtr_ = ptr; }
127 
128  size_t numberOfSourceCandidatePtrs() const override {
129  return 1;
130  }
131 
133  return sourcePtr_;
134  }
135 
141 
143  void setParticleType( ParticleType type );
144 
145 
147  /* void addElement( const reco::PFBlockElement* element ); */
148 
150  void addElementInBlock( const reco::PFBlockRef& blockref,
151  unsigned elementIndex );
152 
154  void setTrackRef(const reco::TrackRef& ref);
155 
158  reco::TrackRef trackRef() const;
159 
162  const reco::Track * bestTrack() const override {
163  if ( (abs(pdgId()) == 11 || pdgId() == 22) && gsfTrackRef().isNonnull() && gsfTrackRef().isAvailable() )
164  return &(*gsfTrackRef());
165  else if ( trackRef().isNonnull() && trackRef().isAvailable() )
166  return &(*trackRef());
167  else
168  return nullptr;
169  }
171  float dzError() const override { const Track * tr=bestTrack(); if(tr!=nullptr) return tr->dzError(); else return 0; }
173  float dxyError() const override { const Track * tr=bestTrack(); if(tr!=nullptr) return tr->dxyError(); else return 0; }
174 
176  void setGsfTrackRef(const reco::GsfTrackRef& ref);
177 
181 
183  void setMuonRef(const reco::MuonRef& ref);
184 
187  reco::MuonRef muonRef() const;
188 
189 
190 
191 
194 
198 
200  void setConversionRef(const reco::ConversionRef& ref);
201 
204 
207 
210 
213 
216 
218  void setEcalEnergy( float eeRaw, float eeCorr ) {
219  rawEcalEnergy_ = eeRaw; ecalERatio_= std::abs(eeRaw)<1.e-6 ? 1.0 : eeCorr/eeRaw;}
220 
222  double ecalEnergy() const { return ecalERatio_*rawEcalEnergy_;}
223 
225  double rawEcalEnergy() const { return rawEcalEnergy_;}
226 
228  void setHcalEnergy( float ehRaw, float ehCorr ) {
229  rawHcalEnergy_ = ehRaw; hcalERatio_= std::abs(ehRaw)<1.e-6 ? 1.0 : ehCorr/ehRaw;}
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; hoERatio_= std::abs(eoRaw)<1.e-6 ? 1.0 : eoCorr/eoRaw;}
240 
242  double hoEnergy() const { return hoERatio_*rawHoEnergy_;}
243 
245  double rawHoEnergy() const { return rawHoEnergy_;}
246 
248  void setGsfElectronRef (const reco::GsfElectronRef & ref);
249 
250  void setSuperClusterRef (const reco::SuperClusterRef& scRef);
251 
254 
256  void setPhotonRef(const reco::PhotonRef& phRef);
257 
259  reco::PhotonRef photonRef() const;
260 
263 
266 
269 
272 
274  void setPs1Energy( float e1 ) {ps1Energy_ = e1;}
275 
277  double pS1Energy() const { return ps1Energy_;}
278 
280  void setPs2Energy( float e2 ) {ps2Energy_ = e2;}
281 
283  double pS2Energy() const { return ps2Energy_;}
284 
286  void rescaleMomentum( double rescaleFactor );
287 
289  void setFlag(Flags theFlag, bool value);
290 
292  bool flag(Flags theFlag) const;
293 
295  void setDeltaP(double dp ) {deltaP_ = dp;}
296 
298  double deltaP() const { return deltaP_;}
299 
300  // int pdgId() const { return translateTypeToPdgId( particleId_ ); }
301 
307 
308  void set_mva_Isolated( float mvaI ){ mva_Isolated_=mvaI;}
309  // mva for isolated electrons
310  float mva_Isolated() const { return mva_Isolated_;}
311 
312  void set_mva_e_pi( float mvaNI ){ mva_e_pi_=mvaNI;}
314  float mva_e_pi() const { return mva_e_pi_;}
315 
317  void set_mva_e_mu( float mva ) { mva_e_mu_=mva;}
318 
320  float mva_e_mu() const { return mva_e_mu_;}
321 
323  void set_mva_pi_mu( float mva ) { mva_pi_mu_=mva;}
324 
326  float mva_pi_mu() const { return mva_pi_mu_;}
327 
328 
331 
333  float mva_nothing_gamma() const { return mva_nothing_gamma_;}
334 
337 
339  float mva_nothing_nh() const { return mva_nothing_nh_;}
340 
341 
344 
346  float mva_gamma_nh() const { return mva_gamma_nh_;}
347 
351  }
352 
355 
359  }
360 
362 
364  return muonTrackType_;
365  }
366 
370  }
371 
374  virtual ParticleType particleId() const { return translatePdgIdToType(pdgId());}
375 
376 
378  /* const std::vector<unsigned>& elementIndices() const { */
379  /* return elementIndices_; */
380  /* } */
382  /* const edm::OwnVector< reco::PFBlockElement >& elements() const */
383  /* {return elements_;} */
384 
386  typedef std::pair<reco::PFBlockRef, unsigned> ElementInBlock;
387  typedef std::vector< ElementInBlock > ElementsInBlocks;
388 
390  typedef std::vector<unsigned> Elements;
391 
392  const ElementsInBlocks& elementsInBlocks() const;
393 
394  static const float bigMva_;
395 
396  friend std::ostream& operator<<( std::ostream& out,
397  const PFCandidate& c );
398 
399  //Tips on setting the vertex efficiently
400  //There are two choices: a) use the vertex_ data member, or b) point to the vertex
401  //of one of the refs stored by this class. The PFVertexType enum gives the current list
402  //of possible references. For these references, use the setVeretxSource method and NOT
403  //the setVertex method. If none of the available refs have the vertex that you want for this
404  //PFCandidate, use the setVertex method. If you find that you are using frequently two store a
405  // vertex that is the same as one of the refs in this class, you should just extend the enum
406  // and modify the vertex() method accordingly.
408 
409  void setVertex( const math::XYZPoint& p) override {
411  }
412 
413  const Point & vertex() const override;
414  double vx() const override {return vertex().x();}
415  double vy() const override {return vertex().y();}
416  double vz() const override {return vertex().z();}
417 
419  bool isTimeValid() const { return timeError_ >= 0.f; }
421  float time() const { return time_; }
423  float timeError() const { return timeError_; }
425  void setTime(float time, float timeError = 0.f) { time_ = time; timeError_ = timeError; }
426 
428  float hcalDepthEnergyFraction(unsigned int depth) const { return hcalDepthEnergyFractions_[depth-1]; }
430  const std::array<float,7> & hcalDepthEnergyFractions() const { return hcalDepthEnergyFractions_; }
432  void setHcalDepthEnergyFractions(const std::array<float,7> & fracs) { hcalDepthEnergyFractions_ = fracs; }
433  private:
435  bool overlap( const Candidate & ) const override;
436 
437  void setFlag(unsigned shift, unsigned flag, bool value);
438 
439  bool flag(unsigned shift, unsigned flag) const;
440 
441 
442 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
443  mutable std::atomic<ElementsInBlocks*> elementsInBlocks_;
444 #else
445  mutable ElementsInBlocks* elementsInBlocks_;
446 #endif
449 
451  /* PFCandidateRef sourceRef_; */
453 
454 
458 
460  float ecalERatio_;
461 
463  float hcalERatio_;
464 
466  float hoERatio_;
467 
470 
473 
476 
478  float ps1Energy_;
479 
481  float ps2Energy_;
482 
484  unsigned flags_;
485 
487  float deltaP_;
488 
490 
491  // mva for isolated electrons
493 
495  float mva_e_pi_;
496 
498  float mva_e_mu_;
499 
501  float mva_pi_mu_;
502 
505 
508 
511 
514 
515 
516  //more efficiently stored refs
517  void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid,
518  const edm::RefCore& iCore, size_t iKey,
519  const edm::EDProductGetter*);
520  bool getRefInfo(unsigned int iMask, unsigned int iBit,
521  edm::ProductID& oProdID, size_t& oIndex, size_t& aIndex ) const;
522 
523 
524  const edm::EDProductGetter* getter_; //transient
525  unsigned short storedRefsBitPattern_;
526  std::vector<unsigned long long> refsInfo_;
527  std::vector<const void *> refsCollectionCache_;
528 
530  float time_;
532  float timeError_;
533 
534  std::array<float,7> hcalDepthEnergyFractions_;
535 
536  };
537 
539  struct PFParticleIdTag { };
540 
543  /* GET_DEFAULT_CANDIDATE_COMPONENT( PFCandidate, PFBlockRef, block ); */
544 
548 
549  std::ostream& operator<<( std::ostream& out, const PFCandidate& c );
550 
551 
552 }
553 
554 #endif
bool isAvailable() const
Definition: Ref.h:577
type
Definition: HCALResponse.h:21
~PFCandidate() override
destructor
Definition: PFCandidate.cc:211
double ecalEnergy() const
return corrected Ecal energy
Definition: PFCandidate.h:222
float deltaP_
uncertainty on 3-momentum
Definition: PFCandidate.h:487
void setPs2Energy(float e2)
set corrected PS2 energy
Definition: PFCandidate.h:280
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:295
friend std::ostream & operator<<(std::ostream &out, const PFCandidate &c)
void setPs1Energy(float e1)
set corrected PS1 energy
Definition: PFCandidate.h:274
ParticleType
particle types
Definition: PFCandidate.h:45
reco::Muon::MuonTrackType muonTrackType_
Definition: PFCandidate.h:457
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:253
const edm::EDProductGetter * getter_
Definition: PFCandidate.h:524
void setPFPhotonExtraRef(const reco::PFCandidatePhotonExtraRef &ref)
set the PF Photon Extra Ref
Definition: PFCandidate.cc:645
double rawEcalEnergy() const
return corrected Ecal energy
Definition: PFCandidate.h:225
void setGsfElectronRef(const reco::GsfElectronRef &ref)
set GsfElectronRef
Definition: PFCandidate.cc:578
void setFlag(Flags theFlag, bool value)
set a given flag
Definition: PFCandidate.cc:294
bool getRefInfo(unsigned int iMask, unsigned int iBit, edm::ProductID &oProdID, size_t &oIndex, size_t &aIndex) const
Definition: PFCandidate.cc:410
void set_mva_e_mu(float mva)
set mva for electron-muon discrimination
Definition: PFCandidate.h:317
virtual void setSourceCandidatePtr(const CandidatePtr &ptr)
Set the ptr to the source Candidate.
Definition: Candidate.h:182
float timeError_
timing information uncertainty (<0 if timing not available)
Definition: PFCandidate.h:532
void set_mva_nothing_gamma(float mva)
set mva for gamma detection
Definition: PFCandidate.h:330
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:333
float hcalERatio_
corrected HCAL energy ratio (corrected/raw)
Definition: PFCandidate.h:463
double dxyError() const
error on dxy
Definition: TrackBase.h:796
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:472
const reco::Muon::MuonTrackType bestMuonTrackType() const
get the Best Muon Track Ref
Definition: PFCandidate.h:363
unsigned flags_
all flags, packed (ecal regional, hcal regional, tracking)
Definition: PFCandidate.h:484
double rawHoEnergy() const
return raw Hcal energy
Definition: PFCandidate.h:245
float mva_e_mu_
mva for electron-muon discrimination
Definition: PFCandidate.h:498
static const float bigMva_
Definition: PFCandidate.h:394
std::array< float, 7 > hcalDepthEnergyFractions_
Definition: PFCandidate.h:534
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:430
bool overlap(const Candidate &) const override
Polymorphic overlap.
Definition: PFCandidate.cc:270
float mva_nothing_nh_
mva for neutral hadron detection
Definition: PFCandidate.h:507
void setVertex(const math::XYZPoint &p) override
set vertex
Definition: PFCandidate.h:409
float time() const
Definition: PFCandidate.h:421
float hoERatio_
corrected HO energy ratio (corrected/raw)
Definition: PFCandidate.h:466
edm::RefVector< reco::PFBlockCollection > Blocks
Definition: PFCandidate.h:389
void setSourceCandidatePtr(const PFCandidatePtr &ptr)
Definition: PFCandidate.h:126
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:601
float mva_gamma_nh_
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:510
float ecalERatio_
corrected ECAL energy ratio (corrected/raw)
Definition: PFCandidate.h:460
float mva_pi_mu_
mva for pi-muon discrimination
Definition: PFCandidate.h:501
particle ID component tag
Definition: PFCandidate.h:539
const math::XYZPointF & positionAtECALEntrance() const
Definition: PFCandidate.h:368
std::vector< ElementInBlock > ElementsInBlocks
Definition: PFCandidate.h:387
float mva_e_mu() const
mva for electron-muon discrimination
Definition: PFCandidate.h:320
void setVertex(const Point &vertex) override
set vertex
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:469
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:442
float mva_e_pi_
mva for electron-pion discrimination
Definition: PFCandidate.h:495
reco::PFDisplacedVertexRef displacedVertexRef(Flags type) const
Definition: PFCandidate.cc:528
void set_mva_pi_mu(float mva)
set mva for pi-muon discrimination
Definition: PFCandidate.h:323
float dxyError() const override
uncertainty on dxy
Definition: PFCandidate.h:173
void set_mva_nothing_nh(float mva)
set mva for neutral hadron detection
Definition: PFCandidate.h:336
void set_mva_e_pi(float mvaNI)
Definition: PFCandidate.h:312
const Point & vertex() const override
vertex position (overwritten by PF...)
Definition: PFCandidate.cc:656
double pS1Energy() const
return corrected PS1 energy
Definition: PFCandidate.h:277
std::vector< unsigned long long > refsInfo_
Definition: PFCandidate.h:526
float hcalDepthEnergyFraction(unsigned int depth) const
fraction of hcal energy at a given depth (depth = 1 .. 7)
Definition: PFCandidate.h:428
float mva_pi_mu() const
mva for pi-muon discrimination
Definition: PFCandidate.h:326
bool isTimeValid() const
do we have a valid time information
Definition: PFCandidate.h:419
float dzError() const override
uncertainty on dz
Definition: PFCandidate.h:171
void setDisplacedVertexRef(const reco::PFDisplacedVertexRef &ref, Flags flag)
set displaced vertex reference
Definition: PFCandidate.cc:484
float mva_nothing_nh() const
mva for neutral hadron detection
Definition: PFCandidate.h:339
float mva_Isolated() const
Definition: PFCandidate.h:310
std::vector< unsigned > Elements
Definition: PFCandidate.h:390
void setVertexSource(PFVertexType vt)
Definition: PFCandidate.h:407
void set_mva_Isolated(float mvaI)
Definition: PFCandidate.h:308
float ps1Energy_
corrected PS1 energy
Definition: PFCandidate.h:478
CandidatePtr sourceCandidatePtr(size_type i) const override
Definition: PFCandidate.h:132
void addElementInBlock(const reco::PFBlockRef &blockref, unsigned elementIndex)
add an element to the current PFCandidate
Definition: PFCandidate.cc:220
size_t numberOfSourceCandidatePtrs() const override
Definition: PFCandidate.h:128
void setMuonTrackType(const reco::Muon::MuonTrackType &type)
set the Best Muon Track Ref
Definition: PFCandidate.h:357
void setPFElectronExtraRef(const reco::PFCandidateElectronExtraRef &ref)
set the PF Electron Extra Ref
Definition: PFCandidate.cc:588
void setParticleType(ParticleType type)
set Particle Type
Definition: PFCandidate.cc:265
reco::PhotonRef photonRef() const
return a reference to the corresponding Photon if any
Definition: PFCandidate.cc:597
bool flag(Flags theFlag) const
return a given flag
Definition: PFCandidate.cc:304
unsigned short storedRefsBitPattern_
Definition: PFCandidate.h:525
int translateTypeToPdgId(ParticleType type) const
Definition: PFCandidate.cc:247
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:583
double vx() const override
x coordinate of vertex position
Definition: PFCandidate.h:414
double f[11][100]
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:475
Definition: value.py:1
void rescaleMomentum(double rescaleFactor)
particle momentum *= rescaleFactor
Definition: PFCandidate.cc:287
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:459
PFCandidate * clone() const override
return a clone
Definition: PFCandidate.cc:215
void setEcalEnergy(float eeRaw, float eeCorr)
set corrected Ecal energy
Definition: PFCandidate.h:218
float mva_e_pi() const
mva for electron-pion discrimination
Definition: PFCandidate.h:314
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:432
double dzError() const
error on dz
Definition: TrackBase.h:814
Float e1
Definition: deltaR.h:20
double hoEnergy() const
return corrected Hcal energy
Definition: PFCandidate.h:242
double p() const final
magnitude of momentum vector
reco::PFCandidateElectronExtraRef electronExtraRef() const
return a reference to the electron extra
Definition: PFCandidate.cc:593
void setGsfTrackRef(const reco::GsfTrackRef &ref)
set gsftrack reference
Definition: PFCandidate.cc:463
PFCandidate()
default constructor
Definition: PFCandidate.cc:31
auto dp
Definition: deltaR.h:22
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:613
void setConversionRef(const reco::ConversionRef &ref)
set ref to original reco conversion
Definition: PFCandidate.cc:539
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:233
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
Float e2
Definition: deltaR.h:21
PFCandidate & operator=(PFCandidate const &)
Definition: PFCandidate.cc:170
std::atomic< ElementsInBlocks * > elementsInBlocks_
Definition: PFCandidate.h:443
PFVertexType vertexType_
Definition: PFCandidate.h:489
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:452
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:530
reco::VertexCompositeCandidateRef v0Ref() const
return a reference to the original conversion
Definition: PFCandidate.cc:573
void setMuonRef(const reco::MuonRef &ref)
set muon reference
Definition: PFCandidate.cc:445
double vy() const override
y coordinate of vertex position
Definition: PFCandidate.h:415
std::pair< reco::PFBlockRef, unsigned > ElementInBlock
return indices of elements used in the block
Definition: PFCandidate.h:386
math::XYZPointF positionAtECALEntrance_
position at ECAL entrance, from the PFRecTrack
Definition: PFCandidate.h:513
float mva_nothing_gamma_
mva for gamma detection
Definition: PFCandidate.h:504
reco::PFCandidateEGammaExtraRef egammaExtraRef() const
return a reference to the EGamma extra
Definition: PFCandidate.cc:605
reco::GsfTrackRef gsfTrackRef() const
Definition: PFCandidate.cc:480
void setPFEGammaExtraRef(const reco::PFCandidateEGammaExtraRef &ref)
set the PF EGamma Extra Ref
Definition: PFCandidate.cc:650
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:283
float ps2Energy_
corrected PS2 energy
Definition: PFCandidate.h:481
void setSuperClusterRef(const reco::SuperClusterRef &scRef)
Definition: PFCandidate.cc:629
math::XYZPoint Point
point in the space
Definition: Candidate.h:41
MuonTrackType
map for Global Muon refitters
Definition: Muon.h:38
void setV0Ref(const reco::VertexCompositeCandidateRef &ref)
set ref to original reco conversion
Definition: PFCandidate.cc:568
float mva_gamma_nh() const
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:346
virtual ParticleType particleId() const
Definition: PFCandidate.h:374
void setTrackRef(const reco::TrackRef &ref)
set track reference
Definition: PFCandidate.cc:425
const ElementsInBlocks & elementsInBlocks() const
Definition: PFCandidate.cc:691
float timeError() const
Definition: PFCandidate.h:423
void setTime(float time, float timeError=0.f)
the timing information
Definition: PFCandidate.h:425
Elements elementsStorage_
Definition: PFCandidate.h:448
reco::ConversionRef conversionRef() const
return a reference to the original conversion
Definition: PFCandidate.cc:563
const reco::Track * bestTrack() const override
Definition: PFCandidate.h:162
void setHcalEnergy(float ehRaw, float ehCorr)
set corrected Hcal energy
Definition: PFCandidate.h:228
std::vector< const void * > refsCollectionCache_
Definition: PFCandidate.h:527
double deltaP() const
uncertainty on 3-momentum
Definition: PFCandidate.h:298
double vz() const override
z coordinate of vertex position
Definition: PFCandidate.h:416
double rawHcalEnergy() const
return raw Hcal energy
Definition: PFCandidate.h:235
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
reco::SuperClusterRef superClusterRef() const
return a reference to the corresponding SuperCluster if any
Definition: PFCandidate.cc:609
#define GET_CANDIDATE_COMPONENT(CAND, TYPE, FUN, TAG)
Definition: component.h:86
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:370