CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends
reco::PFCandidate Class Reference

Particle reconstructed by the particle flow algorithm. More...

#include <PFCandidate.h>

Inheritance diagram for reco::PFCandidate:
reco::CompositeCandidate reco::LeafCandidate reco::Candidate pat::PATObject< reco::PFCandidate > reco::IsolatedPFCandidate reco::PileUpPFCandidate pat::PFParticle

Public Types

typedef edm::RefVector
< reco::PFBlockCollection
Blocks
 
typedef std::pair
< reco::PFBlockRef, unsigned > 
ElementInBlock
 return indices of elements used in the block More...
 
typedef std::vector< unsigned > Elements
 
typedef std::vector
< ElementInBlock
ElementsInBlocks
 
enum  Flags {
  NORMAL =0, E_PHI_SMODULES, E_ETA_0, E_ETA_MODULES,
  E_BARREL_ENDCAP, E_PRESHOWER_EDGE, E_PRESHOWER, E_ENDCAP_EDGE,
  H_ETA_0, H_BARREL_ENDCAP, H_ENDCAP_VFCAL, H_VFCAL_EDGE,
  T_TO_DISP, T_FROM_DISP, T_FROM_V0, T_FROM_GAMMACONV,
  GAMMA_TO_GAMMACONV
}
 
enum  ParticleType {
  X =0, h, e, mu,
  gamma, h0, h_HF, egamma_HF
}
 particle types More...
 
enum  PFVertexType {
  kCandVertex =0, kTrkVertex =1, kComMuonVertex =2, kSAMuonVertex =3,
  kTrkMuonVertex =4, kGSFVertex =5, kTPFMSMuonVertex =6, kPickyMuonVertex =7
}
 
- Public Types inherited from reco::CompositeCandidate
typedef CandidateCollection daughters
 collection of daughters More...
 
typedef std::vector< std::string > role_collection
 
- Public Types inherited from reco::LeafCandidate
typedef int Charge
 electric charge type More...
 
typedef CandidateCollection daughters
 collection of daughter candidates More...
 
typedef unsigned int index
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector. More...
 
typedef math::XYZVector Vector
 point in the space More...
 
- Public Types inherited from reco::Candidate
enum  { dimension = 3 }
 
enum  { size = dimension * (dimension + 1)/2 }
 matix size More...
 
typedef int Charge
 electric charge type More...
 
typedef candidate::const_iterator const_iterator
 
typedef math::Error< dimension >
::type 
CovarianceMatrix
 covariance error matrix (3x3) More...
 
typedef unsigned int index
 index type More...
 
typedef candidate::iterator iterator
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector. More...
 
typedef size_t size_type
 
typedef math::XYZVector Vector
 point in the space More...
 

Public Member Functions

void addElementInBlock (const reco::PFBlockRef &blockref, unsigned elementIndex)
 add an element to the current PFCandidate More...
 
const reco::Muon::MuonTrackType bestMuonTrackType () const
 get the Best Muon Track Ref More...
 
virtual PFCandidateclone () const
 return a clone More...
 
reco::ConversionRef conversionRef () const
 return a reference to the original conversion More...
 
double deltaP () const
 uncertainty on 3-momentum More...
 
reco::PFDisplacedVertexRef displacedVertexRef (Flags type) const
 
double ecalEnergy () const
 return corrected Ecal energy More...
 
reco::PFCandidateEGammaExtraRef egammaExtraRef () const
 return a reference to the EGamma extra More...
 
reco::PFCandidateElectronExtraRef electronExtraRef () const
 return a reference to the electron extra More...
 
const ElementsInBlockselementsInBlocks () const
 
bool flag (Flags theFlag) const
 return a given flag More...
 
reco::GsfElectronRef gsfElectronRef () const
 return a reference to the corresponding GsfElectron if any More...
 
reco::GsfTrackRef gsfTrackRef () const
 
double hcalEnergy () const
 return corrected Hcal energy More...
 
double hoEnergy () const
 return corrected Hcal energy More...
 
reco::MuonRef muonRef () const
 
float mva_e_mu () const
 mva for electron-muon discrimination More...
 
float mva_e_pi () const
 mva for electron-pion discrimination More...
 
float mva_gamma_nh () const
 mva for neutral hadron - gamma discrimination More...
 
float mva_nothing_gamma () const
 mva for gamma detection More...
 
float mva_nothing_nh () const
 mva for neutral hadron detection More...
 
float mva_pi_mu () const
 mva for pi-muon discrimination More...
 
size_t numberOfSourceCandidatePtrs () const
 
virtual ParticleType particleId () const
 
 PFCandidate ()
 default constructor More...
 
 PFCandidate (const PFCandidatePtr &sourcePtr)
 constructor from a reference (keeps track of source relationship) More...
 
 PFCandidate (Charge q, const LorentzVector &p4, ParticleType particleId)
 
reco::PFCandidatePhotonExtraRef photonExtraRef () const
 return a reference to the photon extra More...
 
reco::PhotonRef photonRef () const
 return a reference to the corresponding Photon if any More...
 
const math::XYZPointFpositionAtECALEntrance () const
 
double pS1Energy () const
 return corrected PS1 energy More...
 
double pS2Energy () const
 return corrected PS2 energy More...
 
double rawEcalEnergy () const
 return corrected Ecal energy More...
 
double rawHcalEnergy () const
 return raw Hcal energy More...
 
double rawHoEnergy () const
 return raw Hcal energy More...
 
void rescaleMomentum (double rescaleFactor)
 particle momentum *= rescaleFactor More...
 
void set_mva_e_mu (float mva)
 set mva for electron-muon discrimination More...
 
void set_mva_e_pi (float mva)
 
void set_mva_gamma_nh (float mva)
 set mva for neutral hadron - gamma discrimination More...
 
void set_mva_nothing_gamma (float mva)
 set mva for gamma detection More...
 
void set_mva_nothing_nh (float mva)
 set mva for neutral hadron detection More...
 
void set_mva_pi_mu (float mva)
 set mva for pi-muon discrimination More...
 
void setConversionRef (const reco::ConversionRef &ref)
 set ref to original reco conversion More...
 
void setDeltaP (double dp)
 set uncertainty on momentum More...
 
void setDisplacedVertexRef (const reco::PFDisplacedVertexRef &ref, Flags flag)
 set displaced vertex reference More...
 
void setEcalEnergy (float eeRaw, float eeCorr)
 set corrected Ecal energy More...
 
void setFlag (Flags theFlag, bool value)
 set a given flag More...
 
void setGsfElectronRef (const reco::GsfElectronRef &ref)
 set GsfElectronRef More...
 
void setGsfTrackRef (const reco::GsfTrackRef &ref)
 set gsftrack reference More...
 
void setHcalEnergy (float ehRaw, float ehCorr)
 set corrected Hcal energy More...
 
void setHoEnergy (float eoRaw, float eoCorr)
 set corrected Hcal energy More...
 
void setMuonRef (const reco::MuonRef &ref)
 set muon reference More...
 
void setMuonTrackType (const reco::Muon::MuonTrackType &type)
 set the Best Muon Track Ref More...
 
void setParticleType (ParticleType type)
 set Particle Type More...
 
void setPFEGammaExtraRef (const reco::PFCandidateEGammaExtraRef &ref)
 set the PF EGamma Extra Ref More...
 
void setPFElectronExtraRef (const reco::PFCandidateElectronExtraRef &ref)
 set the PF Electron Extra Ref More...
 
void setPFPhotonExtraRef (const reco::PFCandidatePhotonExtraRef &ref)
 set the PF Photon Extra Ref More...
 
void setPhotonRef (const reco::PhotonRef &phRef)
 set ref to the corresponding reco::Photon if any More...
 
void setPositionAtECALEntrance (const math::XYZPointF &pos)
 set position at ECAL entrance More...
 
void setPs1Energy (float e1)
 set corrected PS1 energy More...
 
void setPs2Energy (float e2)
 set corrected PS2 energy More...
 
void setSourceCandidatePtr (const PFCandidatePtr &ptr)
 
void setSuperClusterRef (const reco::SuperClusterRef &scRef)
 
void setTrackRef (const reco::TrackRef &ref)
 set track reference More...
 
void setV0Ref (const reco::VertexCompositeCandidateRef &ref)
 set ref to original reco conversion More...
 
virtual void setVertex (math::XYZPoint p)
 
void setVertexSource (PFVertexType vt)
 
CandidatePtr sourceCandidatePtr (size_type i) const
 
reco::SuperClusterRef superClusterRef () const
 return a reference to the corresponding SuperCluster if any More...
 
reco::TrackRef trackRef () const
 
ParticleType translatePdgIdToType (int pdgid) const
 
int translateTypeToPdgId (ParticleType type) const
 
reco::VertexCompositeCandidateRef v0Ref () const
 return a reference to the original conversion More...
 
virtual const Pointvertex () const
 vertex position (overwritten by PF...) More...
 
virtual double vx () const
 x coordinate of vertex position More...
 
virtual double vy () const
 y coordinate of vertex position More...
 
virtual double vz () const
 z coordinate of vertex position More...
 
virtual ~PFCandidate ()
 destructor More...
 
- Public Member Functions inherited from reco::CompositeCandidate
void addDaughter (const Candidate &, const std::string &s="")
 add a clone of the passed candidate as daughter More...
 
void addDaughter (std::auto_ptr< Candidate >, const std::string &s="")
 add a clone of the passed candidate as daughter More...
 
void applyRoles ()
 
virtual const_iterator begin () const
 first daughter const_iterator More...
 
virtual iterator begin ()
 first daughter iterator More...
 
void clearDaughters ()
 clear daughters More...
 
void clearRoles ()
 
 CompositeCandidate (std::string name="")
 default constructor More...
 
template<typename P4 >
 CompositeCandidate (Charge q, const P4 &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true, std::string name="")
 constructor from values More...
 
 CompositeCandidate (const Candidate &p, const std::string &name="")
 constructor from values More...
 
 CompositeCandidate (const Candidate &p, const std::string &name, role_collection const &roles)
 constructor from values More...
 
virtual const Candidatedaughter (size_type) const
 return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) More...
 
virtual Candidatedaughter (size_type)
 return daughter at a given position, i = 0, ... numberOfDaughters() - 1 More...
 
virtual Candidatedaughter (const std::string &s)
 return daughter with a specified role name More...
 
virtual const Candidatedaughter (const std::string &s) const
 return daughter with a specified role name More...
 
virtual const_iterator end () const
 last daughter const_iterator More...
 
virtual iterator end ()
 last daughter const_iterator More...
 
virtual const Candidatemother (size_type i=0) const
 return pointer to mother More...
 
std::string name () const
 get the name of the candidate More...
 
virtual size_type numberOfDaughters () const
 number of daughters More...
 
virtual size_type numberOfMothers () const
 number of mothers (zero or one in most of but not all the cases) More...
 
role_collection const & roles () const
 get the roles More...
 
void setName (std::string name)
 set the name of the candidate More...
 
void setRoles (const role_collection &roles)
 set the roles More...
 
virtual ~CompositeCandidate ()
 destructor More...
 
- Public Member Functions inherited from reco::LeafCandidate
template<typename S >
daughter_iterator< S >::type beginFilter (const S &s) const
 
virtual Vector boostToCM () const GCC11_FINAL
 
virtual int charge () const GCC11_FINAL
 electric charge More...
 
template<typename S >
daughter_iterator< S >::type endFilter (const S &s) const
 
virtual double energy () const GCC11_FINAL
 energy More...
 
virtual double et () const GCC11_FINAL
 transverse energy More...
 
virtual float eta () const GCC11_FINAL
 momentum pseudorapidity More...
 
virtual void fillVertexCovariance (CovarianceMatrix &v) const
 fill SMatrix More...
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
virtual bool hasMasterClone () const
 
virtual bool hasMasterClonePtr () const
 
virtual bool isCaloMuon () const
 
virtual bool isConvertedPhoton () const
 
virtual bool isElectron () const
 
virtual bool isGlobalMuon () const
 
virtual bool isJet () const
 
virtual bool isMuon () const
 
virtual bool isPhoton () const
 
virtual bool isStandAloneMuon () const
 
virtual bool isTrackerMuon () const
 
 LeafCandidate ()
 default constructor More...
 
 LeafCandidate (const Candidate &c)
 
template<typename P4 >
 LeafCandidate (Charge q, const P4 &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from Any values More...
 
 LeafCandidate (Charge q, const PtEtaPhiMass &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values More...
 
 LeafCandidate (Charge q, const LorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values More...
 
 LeafCandidate (Charge q, const PolarLorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values More...
 
virtual bool longLived () const GCC11_FINAL
 is long lived? More...
 
virtual float mass () const GCC11_FINAL
 mass More...
 
virtual bool massConstraint () const GCC11_FINAL
 do mass constraint? More...
 
virtual float massSqr () const GCC11_FINAL
 mass squared More...
 
virtual const CandidateBaseRefmasterClone () const
 
virtual const CandidatePtrmasterClonePtr () const
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
virtual Vector momentum () const GCC11_FINAL
 spatial momentum vector More...
 
virtual double mt () const GCC11_FINAL
 transverse mass More...
 
virtual double mtSqr () const GCC11_FINAL
 transverse mass squared More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
virtual double p () const GCC11_FINAL
 magnitude of momentum vector More...
 
virtual const LorentzVectorp4 () const GCC11_FINAL
 four-momentum Lorentz vector More...
 
virtual int pdgId () const GCC11_FINAL
 PDG identifier. More...
 
virtual float phi () const GCC11_FINAL
 momentum azimuthal angle More...
 
virtual const PolarLorentzVectorpolarP4 () const GCC11_FINAL
 four-momentum Lorentz vector More...
 
virtual float pt () const GCC11_FINAL
 transverse momentum More...
 
virtual double px () const GCC11_FINAL
 x coordinate of momentum vector More...
 
virtual double py () const GCC11_FINAL
 y coordinate of momentum vector More...
 
virtual double pz () const GCC11_FINAL
 z coordinate of momentum vector More...
 
virtual double rapidity () const GCC11_FINAL
 rapidity More...
 
virtual void setCharge (Charge q) GCC11_FINAL
 set electric charge More...
 
virtual void setLongLived () GCC11_FINAL
 set long lived flag More...
 
virtual void setMass (double m) GCC11_FINAL
 set particle mass More...
 
virtual void setMassConstraint () GCC11_FINAL
 set mass constraint flag More...
 
virtual void setP4 (const LorentzVector &p4) GCC11_FINAL
 set 4-momentum More...
 
virtual void setP4 (const PolarLorentzVector &p4) GCC11_FINAL
 set 4-momentum More...
 
virtual void setPdgId (int pdgId) GCC11_FINAL
 
virtual void setPz (double pz) GCC11_FINAL
 
virtual void setStatus (int status) GCC11_FINAL
 set status word More...
 
virtual void setThreeCharge (Charge qx3) GCC11_FINAL
 set electric charge More...
 
virtual void setVertex (const Point &vertex)
 set vertex More...
 
virtual int status () const GCC11_FINAL
 status word More...
 
virtual double theta () const GCC11_FINAL
 momentum polar angle More...
 
virtual int threeCharge () const GCC11_FINAL
 electric charge More...
 
virtual double vertexChi2 () const
 chi-squares More...
 
virtual double vertexCovariance (int i, int j) const
 (i, j)-th element of error matrix, i, j = 0, ... 2 More...
 
CovarianceMatrix vertexCovariance () const GCC11_FINAL
 return SMatrix More...
 
virtual double vertexNdof () const
 
virtual double vertexNormalizedChi2 () const
 chi-squared divided by n.d.o.f. More...
 
virtual double y () const GCC11_FINAL
 rapidity More...
 
virtual ~LeafCandidate ()
 destructor More...
 
- Public Member Functions inherited from reco::Candidate
template<typename S >
daughter_iterator< S >::type beginFilter (const S &s) const
 
 Candidate ()
 default constructor More...
 
template<typename S >
daughter_iterator< S >::type endFilter (const S &s) const
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
virtual void setSourceCandidatePtr (const CandidatePtr &ptr)
 Set the ptr to the source Candidate. More...
 
virtual ~Candidate ()
 destructor More...
 

Static Public Attributes

static const float bigMva_ = -999.
 
- Static Public Attributes inherited from reco::LeafCandidate
static const unsigned int longLivedTag = 65536
 long lived flag More...
 
static const unsigned int massConstraintTag = 131072
 do mass constraint flag More...
 

Private Member Functions

bool flag (unsigned shift, unsigned flag) const
 
bool getRefInfo (unsigned int iMask, unsigned int iBit, edm::ProductID &oProdID, size_t &oIndex, size_t &aIndex) const
 
virtual bool overlap (const Candidate &) const
 Polymorphic overlap. More...
 
void setFlag (unsigned shift, unsigned flag, bool value)
 
void storeRefInfo (unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
 

Private Attributes

Blocks blocksStorage_
 
float deltaP_
 uncertainty on 3-momentum More...
 
float ecalERatio_
 corrected ECAL energy ratio (corrected/raw) More...
 
ElementsInBlocks elementsInBlocks_
 
Elements elementsStorage_
 
unsigned flags_
 all flags, packed (ecal regional, hcal regional, tracking) More...
 
const edm::EDProductGettergetter_
 
float hcalERatio_
 corrected HCAL energy ratio (corrected/raw) More...
 
float hoERatio_
 corrected HO energy ratio (corrected/raw) More...
 
reco::Muon::MuonTrackType muonTrackType_
 
float mva_e_mu_
 mva for electron-muon discrimination More...
 
float mva_e_pi_
 mva for electron-pion discrimination More...
 
float mva_gamma_nh_
 mva for neutral hadron - gamma discrimination More...
 
float mva_nothing_gamma_
 mva for gamma detection More...
 
float mva_nothing_nh_
 mva for neutral hadron detection More...
 
float mva_pi_mu_
 mva for pi-muon discrimination More...
 
math::XYZPointF positionAtECALEntrance_
 position at ECAL entrance, from the PFRecTrack More...
 
float ps1Energy_
 corrected PS1 energy More...
 
float ps2Energy_
 corrected PS2 energy More...
 
float rawEcalEnergy_
 raw ECAL energy More...
 
float rawHcalEnergy_
 raw HCAL energy More...
 
float rawHoEnergy_
 raw HO energy More...
 
std::vector< const void * > refsCollectionCache_
 
std::vector< unsigned long long > refsInfo_
 
PFCandidatePtr sourcePtr_
 reference to the source PFCandidate, if any More...
 
unsigned short storedRefsBitPattern_
 
PFVertexType vertexType_
 

Friends

std::ostream & operator<< (std::ostream &out, const PFCandidate &c)
 

Additional Inherited Members

- Protected Member Functions inherited from reco::LeafCandidate
void cacheCartesian () const
 set internal cache More...
 
void cachePolar () const
 set internal cache More...
 
void clearCache () const
 clear internal cache More...
 
- Protected Attributes inherited from reco::LeafCandidate
bool cacheCartesianFixed_
 
bool cachePolarFixed_
 has cache been set? More...
 
float eta_
 
float mass_
 
LorentzVector p4Cartesian_
 internal cache for p4 More...
 
PolarLorentzVector p4Polar_
 internal cache for p4 More...
 
int pdgId_
 PDG identifier. More...
 
float phi_
 
float pt_
 four-momentum Lorentz vector More...
 
Charge qx3_
 electric charge More...
 
int status_
 status word More...
 
Point vertex_
 vertex position More...
 

Detailed Description

Particle reconstructed by the particle flow algorithm.

particle candidate from particle flow

Author
Colin Bernet
Date
February 2007

Definition at line 35 of file PFCandidate.h.

Member Typedef Documentation

Definition at line 362 of file PFCandidate.h.

return indices of elements used in the block

return elements return elements in blocks

Definition at line 359 of file PFCandidate.h.

typedef std::vector<unsigned> reco::PFCandidate::Elements

Definition at line 363 of file PFCandidate.h.

Definition at line 360 of file PFCandidate.h.

Member Enumeration Documentation

Enumerator
NORMAL 
E_PHI_SMODULES 
E_ETA_0 
E_ETA_MODULES 
E_BARREL_ENDCAP 
E_PRESHOWER_EDGE 
E_PRESHOWER 
E_ENDCAP_EDGE 
H_ETA_0 
H_BARREL_ENDCAP 
H_ENDCAP_VFCAL 
H_VFCAL_EDGE 
T_TO_DISP 
T_FROM_DISP 
T_FROM_V0 
T_FROM_GAMMACONV 
GAMMA_TO_GAMMACONV 

Definition at line 51 of file PFCandidate.h.

particle types

Enumerator
X 
h 
e 
mu 
gamma 
h0 
h_HF 
egamma_HF 

Definition at line 40 of file PFCandidate.h.

40  {
41  X=0, // undefined
42  h, // charged hadron
43  e, // electron
44  mu, // muon
45  gamma, // photon
46  h0, // neutral hadron
47  h_HF, // HF tower identified as a hadron
48  egamma_HF // HF tower identified as an EM particle
49  };
Enumerator
kCandVertex 
kTrkVertex 
kComMuonVertex 
kSAMuonVertex 
kTrkMuonVertex 
kGSFVertex 
kTPFMSMuonVertex 
kPickyMuonVertex 

Definition at line 72 of file PFCandidate.h.

Constructor & Destructor Documentation

PFCandidate::PFCandidate ( )

default constructor

Definition at line 31 of file PFCandidate.cc.

References muonTrackType_, reco::Muon::None, refsInfo_, reco::LeafCandidate::setPdgId(), translateTypeToPdgId(), and X.

Referenced by clone().

31  :
32  ecalERatio_(1.),
33  hcalERatio_(1.),
34  hoERatio_(1.),
35  rawEcalEnergy_(0.),
36  rawHcalEnergy_(0.),
37  rawHoEnergy_(0.),
38  ps1Energy_(0.),
39  ps2Energy_(0.),
40  flags_(0),
41  deltaP_(0.),
50 {
51 
53 
55  refsInfo_.reserve(3);
56 }
float deltaP_
uncertainty on 3-momentum
Definition: PFCandidate.h:452
reco::Muon::MuonTrackType muonTrackType_
Definition: PFCandidate.h:422
const edm::EDProductGetter * getter_
Definition: PFCandidate.h:486
float hcalERatio_
corrected HCAL energy ratio (corrected/raw)
Definition: PFCandidate.h:428
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:437
unsigned flags_
all flags, packed (ecal regional, hcal regional, tracking)
Definition: PFCandidate.h:449
float mva_e_mu_
mva for electron-muon discrimination
Definition: PFCandidate.h:460
static const float bigMva_
Definition: PFCandidate.h:378
float mva_nothing_nh_
mva for neutral hadron detection
Definition: PFCandidate.h:469
float hoERatio_
corrected HO energy ratio (corrected/raw)
Definition: PFCandidate.h:431
float mva_gamma_nh_
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:472
float ecalERatio_
corrected ECAL energy ratio (corrected/raw)
Definition: PFCandidate.h:425
float mva_pi_mu_
mva for pi-muon discrimination
Definition: PFCandidate.h:463
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:434
float mva_e_pi_
mva for electron-pion discrimination
Definition: PFCandidate.h:457
std::vector< unsigned long long > refsInfo_
Definition: PFCandidate.h:488
float ps1Energy_
corrected PS1 energy
Definition: PFCandidate.h:443
unsigned short storedRefsBitPattern_
Definition: PFCandidate.h:487
int translateTypeToPdgId(ParticleType type) const
Definition: PFCandidate.cc:154
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:440
PFVertexType vertexType_
Definition: PFCandidate.h:454
float mva_nothing_gamma_
mva for gamma detection
Definition: PFCandidate.h:466
float ps2Energy_
corrected PS2 energy
Definition: PFCandidate.h:446
virtual void setPdgId(int pdgId) GCC11_FINAL
PFCandidate::PFCandidate ( const PFCandidatePtr sourcePtr)

constructor from a reference (keeps track of source relationship)

Definition at line 59 of file PFCandidate.cc.

References sourcePtr_.

59  {
60  *this = *sourcePtr;
61  sourcePtr_ = sourcePtr;
62 
63 }
PFCandidatePtr sourcePtr_
reference to the source PFCandidate, if any
Definition: PFCandidate.h:417
PFCandidate::PFCandidate ( Charge  q,
const LorentzVector p4,
ParticleType  particleId 
)

Definition at line 66 of file PFCandidate.cc.

References blocksStorage_, e, elementsStorage_, edm::hlt::Exception, h, mu, muonTrackType_, reco::Muon::None, refsInfo_, edm::RefVector< C, T, F >::reserve(), reco::LeafCandidate::setPdgId(), and translateTypeToPdgId().

68  :
69 
71  ecalERatio_(1.),
72  hcalERatio_(1.),
73  hoERatio_(1.),
74  rawEcalEnergy_(0.),
75  rawHcalEnergy_(0.),
76  rawHoEnergy_(0.),
77  ps1Energy_(0.),
78  ps2Energy_(0.),
79  flags_(0),
80  deltaP_(0.),
89 {
90  refsInfo_.reserve(3);
92  elementsStorage_.reserve(10);
93 
95 
96  // proceed with various consistency checks
97 
98  // charged candidate: track ref and charge must be non null
99  if( partId == h ||
100  partId == e ||
101  partId == mu ) {
102 
103  if( charge == 0 ) {
104  string err;
105  err+="Attempt to construct a charged PFCandidate with a zero charge";
106  throw cms::Exception("InconsistentValue",
107  err.c_str() );
108  }
109  }
110  else {
111  if( charge ) {
112  string err;
113  err += "Attempt to construct a neutral PFCandidate ";
114  err += "with a non-zero charge";
115  throw cms::Exception("InconsistentValue",
116  err.c_str() );
117  }
118  }
119  setPdgId( translateTypeToPdgId( partId ) );
120 }
float deltaP_
uncertainty on 3-momentum
Definition: PFCandidate.h:452
reco::Muon::MuonTrackType muonTrackType_
Definition: PFCandidate.h:422
const edm::EDProductGetter * getter_
Definition: PFCandidate.h:486
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
float hcalERatio_
corrected HCAL energy ratio (corrected/raw)
Definition: PFCandidate.h:428
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:437
unsigned flags_
all flags, packed (ecal regional, hcal regional, tracking)
Definition: PFCandidate.h:449
float mva_e_mu_
mva for electron-muon discrimination
Definition: PFCandidate.h:460
static const float bigMva_
Definition: PFCandidate.h:378
float mva_nothing_nh_
mva for neutral hadron detection
Definition: PFCandidate.h:469
float hoERatio_
corrected HO energy ratio (corrected/raw)
Definition: PFCandidate.h:431
float mva_gamma_nh_
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:472
float ecalERatio_
corrected ECAL energy ratio (corrected/raw)
Definition: PFCandidate.h:425
float mva_pi_mu_
mva for pi-muon discrimination
Definition: PFCandidate.h:463
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:434
float mva_e_pi_
mva for electron-pion discrimination
Definition: PFCandidate.h:457
std::vector< unsigned long long > refsInfo_
Definition: PFCandidate.h:488
float ps1Energy_
corrected PS1 energy
Definition: PFCandidate.h:443
unsigned short storedRefsBitPattern_
Definition: PFCandidate.h:487
int translateTypeToPdgId(ParticleType type) const
Definition: PFCandidate.cc:154
CompositeCandidate(std::string name="")
default constructor
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:440
void reserve(size_type n)
Reserve space for RefVector.
Definition: RefVector.h:95
virtual int charge() const GCC11_FINAL
electric charge
PFVertexType vertexType_
Definition: PFCandidate.h:454
float mva_nothing_gamma_
mva for gamma detection
Definition: PFCandidate.h:466
float ps2Energy_
corrected PS2 energy
Definition: PFCandidate.h:446
virtual void setPdgId(int pdgId) GCC11_FINAL
Elements elementsStorage_
Definition: PFCandidate.h:413
PFCandidate::~PFCandidate ( )
virtual

destructor

Definition at line 122 of file PFCandidate.cc.

122 {}

Member Function Documentation

void PFCandidate::addElementInBlock ( const reco::PFBlockRef blockref,
unsigned  elementIndex 
)

add an element to the current PFCandidate

add element in block

Definition at line 129 of file PFCandidate.cc.

References blocksStorage_, elementsStorage_, edm::Ref< C, T, F >::id(), edm::RefVector< C, T, F >::push_back(), and edm::RefVector< C, T, F >::size().

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

130  {
131  //elementsInBlocks_.push_back( make_pair(blockref.key(), elementIndex) );
132  if (blocksStorage_.size()==0)
133  blocksStorage_ =Blocks(blockref.id());
134  blocksStorage_.push_back(blockref);
135  elementsStorage_.push_back(elementIndex);
136 }
edm::RefVector< reco::PFBlockCollection > Blocks
Definition: PFCandidate.h:362
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64
size_type size() const
Size of the RefVector.
Definition: RefVector.h:89
ProductID id() const
Accessor for product ID.
Definition: Ref.h:256
Elements elementsStorage_
Definition: PFCandidate.h:413
const reco::Muon::MuonTrackType reco::PFCandidate::bestMuonTrackType ( ) const
inline

get the Best Muon Track Ref

Definition at line 336 of file PFCandidate.h.

References muonTrackType_.

336  {
337  return muonTrackType_;
338  }
reco::Muon::MuonTrackType muonTrackType_
Definition: PFCandidate.h:422
PFCandidate * PFCandidate::clone ( void  ) const
virtual

return a clone

Reimplemented from reco::CompositeCandidate.

Reimplemented in pat::PFParticle, reco::IsolatedPFCandidate, and reco::PileUpPFCandidate.

Definition at line 124 of file PFCandidate.cc.

References PFCandidate().

Referenced by DistortedPFCandProducer::produce().

124  {
125  return new PFCandidate( * this );
126 }
PFCandidate()
default constructor
Definition: PFCandidate.cc:31
reco::ConversionRef PFCandidate::conversionRef ( ) const

return a reference to the original conversion

Definition at line 470 of file PFCandidate.cc.

References GETREF, kRefConversionBit, and kRefConversionMask.

470  {
472 }
#define GETREF(_class_, _mask_, _bit_)
Definition: CountBits.h:4660
double reco::PFCandidate::deltaP ( ) const
inline

uncertainty on 3-momentum

Definition at line 272 of file PFCandidate.h.

References deltaP_.

Referenced by PFElectronTranslator::createGsfElectrons().

272 { return deltaP_;}
float deltaP_
uncertainty on 3-momentum
Definition: PFCandidate.h:452
reco::PFDisplacedVertexRef PFCandidate::displacedVertexRef ( Flags  type) const

return a reference to the corresponding displaced vertex, otherwise, return a null reference

Definition at line 435 of file PFCandidate.cc.

References GETREF, kRefDisplacedVertexDauBit, kRefDisplacedVertexDauMask, kRefDisplacedVertexMotBit, kRefDisplacedVertexMotMask, T_FROM_DISP, and T_TO_DISP.

Referenced by PFCandConnector::analyseNuclearWPrim(), PFCandConnector::isPrimaryNucl(), and PFCandConnector::isSecondaryNucl().

435  {
436  if (type == T_TO_DISP) {
438  }
439  else if (type == T_FROM_DISP) {
441  }
443 }
type
Definition: HCALResponse.h:21
Block of elements.
edm::Ref< PFDisplacedVertexCollection > PFDisplacedVertexRef
persistent reference to a PFDisplacedVertex objects
#define GETREF(_class_, _mask_, _bit_)
Definition: CountBits.h:4660
double reco::PFCandidate::ecalEnergy ( ) const
inline

return corrected Ecal energy

Definition at line 196 of file PFCandidate.h.

References ecalERatio_, and rawEcalEnergy_.

Referenced by PFCandConnector::analyseNuclearWPrim(), and PFCandidateBenchmark::fillOne().

196 { return ecalERatio_*rawEcalEnergy_;}
float ecalERatio_
corrected ECAL energy ratio (corrected/raw)
Definition: PFCandidate.h:425
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:434
reco::PFCandidateEGammaExtraRef PFCandidate::egammaExtraRef ( ) const

return a reference to the EGamma extra

Definition at line 512 of file PFCandidate.cc.

References GETREF, kRefPFEGammaExtraBit, and kRefPFEGammaExtraMask.

Referenced by GEDGsfElectronCoreProducer::produceElectronCore().

reco::PFCandidateElectronExtraRef PFCandidate::electronExtraRef ( ) const
const ElementsInBlocks& reco::PFCandidate::elementsInBlocks ( ) const
inline

Definition at line 365 of file PFCandidate.h.

References blocksStorage_, elementsInBlocks_, elementsStorage_, and edm::RefVector< C, T, F >::size().

Referenced by FWPFCandidateWithHitsProxyBuilder::addHitsForCandidate(), PFMuonAlgo::cleanPunchThroughAndFakes(), PFElectronTranslator::correspondingDaughterCandidate(), PFPhotonTranslator::correspondingDaughterCandidate(), PFPhotonAlgo::EvaluateGCorrMVA(), PFEGammaAlgo::EvaluateGCorrMVA(), PFPhotonAlgo::EvaluateResMVA(), PFEGammaAlgo::EvaluateResMVA(), PFCandidateBenchmark::fillOne(), reco::modules::HICaloCompatibleTrackSelector::matchPFCandToTrack(), PFRootEventManager::mcTruthMatching(), reco::operator<<(), PFCandidateChecker::printElementsInBlocks(), PFAlgo::processBlock(), PFElectronTranslator::produce(), PFEGammaProducer::produce(), and PFPhotonTranslator::produce().

365  {
366 
367  if (elementsInBlocks_.size()!=blocksStorage_.size())
368  {
370  for(unsigned int icopy=0;icopy!=blocksStorage_.size();++icopy)
371  elementsInBlocks_[icopy]=std::make_pair(blocksStorage_[icopy],elementsStorage_[icopy]);
372  }
373  return elementsInBlocks_;
374  }
ElementsInBlocks elementsInBlocks_
Definition: PFCandidate.h:411
size_type size() const
Size of the RefVector.
Definition: RefVector.h:89
Elements elementsStorage_
Definition: PFCandidate.h:413
bool PFCandidate::flag ( Flags  theFlag) const

return a given flag

Definition at line 211 of file PFCandidate.cc.

References flags_.

Referenced by PFCandConnector::isPrimaryNucl(), PFCandConnector::isSecondaryNucl(), reco::operator<<(), setConversionRef(), and setDisplacedVertexRef().

211  {
212 
213  return (flags_>>theFlag) & 1;
214 }
unsigned flags_
all flags, packed (ecal regional, hcal regional, tracking)
Definition: PFCandidate.h:449
bool reco::PFCandidate::flag ( unsigned  shift,
unsigned  flag 
) const
private
bool PFCandidate::getRefInfo ( unsigned int  iMask,
unsigned int  iBit,
edm::ProductID oProdID,
size_t &  oIndex,
size_t &  aIndex 
) const
private

Definition at line 317 of file PFCandidate.cc.

References refsInfo_, s_refsBefore, and storedRefsBitPattern_.

318  {
319 
320  if( 0 == (iBit & storedRefsBitPattern_) ) {
321  return false;
322  }
323  aIndex = s_refsBefore[storedRefsBitPattern_ & iMask];
324  unsigned long long bitPacked = refsInfo_[aIndex];
325  oIndex = bitPacked & 0xFFFFFFFFULL; //low 32 bits are the index
326  unsigned short productIndex = (bitPacked & 0x0000FFFF00000000ULL)>>32;
327  unsigned short processIndex = (bitPacked & 0xFFFF000000000000ULL)>>48;
328  oProductID = edm::ProductID(processIndex,productIndex);
329  return true;
330 }
std::vector< unsigned long long > refsInfo_
Definition: PFCandidate.h:488
unsigned short storedRefsBitPattern_
Definition: PFCandidate.h:487
static const unsigned int s_refsBefore[]
Definition: CountBits.h:14
reco::GsfElectronRef PFCandidate::gsfElectronRef ( ) const

return a reference to the corresponding GsfElectron if any

Definition at line 490 of file PFCandidate.cc.

References GETREF, kRefGsfElectronBit, and kRefGsfElectronMask.

Referenced by SoftPFElectronTagInfoProducer::fillElecProperties().

reco::GsfTrackRef PFCandidate::gsfTrackRef ( ) const
double reco::PFCandidate::hcalEnergy ( ) const
inline

return corrected Hcal energy

Definition at line 206 of file PFCandidate.h.

References hcalERatio_, and rawHcalEnergy_.

Referenced by PFCandConnector::analyseNuclearWPrim(), and PFCandidateBenchmark::fillOne().

206 { return hcalERatio_*rawHcalEnergy_;}
float hcalERatio_
corrected HCAL energy ratio (corrected/raw)
Definition: PFCandidate.h:428
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:437
double reco::PFCandidate::hoEnergy ( ) const
inline

return corrected Hcal energy

Definition at line 216 of file PFCandidate.h.

References hoERatio_, and rawHoEnergy_.

216 { return hoERatio_*rawHoEnergy_;}
float hoERatio_
corrected HO energy ratio (corrected/raw)
Definition: PFCandidate.h:431
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:440
reco::MuonRef PFCandidate::muonRef ( ) const
float reco::PFCandidate::mva_e_mu ( ) const
inline

mva for electron-muon discrimination

Definition at line 293 of file PFCandidate.h.

References mva_e_mu_.

293 { return mva_e_mu_;}
float mva_e_mu_
mva for electron-muon discrimination
Definition: PFCandidate.h:460
float reco::PFCandidate::mva_e_pi ( ) const
inline

mva for electron-pion discrimination

Definition at line 286 of file PFCandidate.h.

References mva_e_pi_.

Referenced by PFElectronTranslator::createGsfElectrons(), PFElectronTranslator::fillMVAValueMap(), PFCandidateBenchmark::fillOne(), and PFElectronTranslator::produce().

286 { return mva_e_pi_;}
float mva_e_pi_
mva for electron-pion discrimination
Definition: PFCandidate.h:457
float reco::PFCandidate::mva_gamma_nh ( ) const
inline

mva for neutral hadron - gamma discrimination

Definition at line 319 of file PFCandidate.h.

References mva_gamma_nh_.

319 { return mva_gamma_nh_;}
float mva_gamma_nh_
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:472
float reco::PFCandidate::mva_nothing_gamma ( ) const
inline

mva for gamma detection

Definition at line 306 of file PFCandidate.h.

References mva_nothing_gamma_.

Referenced by PFLinker::produce(), and PFPhotonTranslator::produce().

306 { return mva_nothing_gamma_;}
float mva_nothing_gamma_
mva for gamma detection
Definition: PFCandidate.h:466
float reco::PFCandidate::mva_nothing_nh ( ) const
inline

mva for neutral hadron detection

Definition at line 312 of file PFCandidate.h.

References mva_nothing_nh_.

312 { return mva_nothing_nh_;}
float mva_nothing_nh_
mva for neutral hadron detection
Definition: PFCandidate.h:469
float reco::PFCandidate::mva_pi_mu ( ) const
inline

mva for pi-muon discrimination

Definition at line 299 of file PFCandidate.h.

References mva_pi_mu_.

299 { return mva_pi_mu_;}
float mva_pi_mu_
mva for pi-muon discrimination
Definition: PFCandidate.h:463
size_t reco::PFCandidate::numberOfSourceCandidatePtrs ( ) const
inlinevirtual

return the number of source Candidates ( the candidates used to construct this Candidate)

Reimplemented from reco::LeafCandidate.

Definition at line 117 of file PFCandidate.h.

117  {
118  return 1;
119  }
bool PFCandidate::overlap ( const Candidate other) const
privatevirtual

Polymorphic overlap.

Reimplemented from reco::CompositeCandidate.

Definition at line 177 of file PFCandidate.cc.

References i, edm::Ptr< T >::isNonnull(), edm::Ptr< T >::isNull(), n, reco::Candidate::numberOfSourceCandidatePtrs(), sourceCandidatePtr(), reco::Candidate::sourceCandidatePtr(), and sourcePtr_.

177  {
178  CandidatePtr myPtr = sourceCandidatePtr(0);
179  if (myPtr.isNull()) return false;
180  for (size_t i = 0, n = other.numberOfSourceCandidatePtrs(); i < n; ++i) {
181  CandidatePtr otherPtr = other.sourceCandidatePtr(i);
182  if ((otherPtr == myPtr) ||
183  (sourcePtr_.isNonnull() && otherPtr.isNonnull() && sourcePtr_->overlap(*otherPtr))) {
184  return true;
185  }
186  }
187  return false;
188 }
int i
Definition: DBlmapReader.cc:9
virtual CandidatePtr sourceCandidatePtr(size_type i) const
Definition: Candidate.h:172
CandidatePtr sourceCandidatePtr(size_type i) const
Definition: PFCandidate.h:121
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:152
PFCandidatePtr sourcePtr_
reference to the source PFCandidate, if any
Definition: PFCandidate.h:417
bool isNull() const
Checks for null.
Definition: Ptr.h:148
virtual size_t numberOfSourceCandidatePtrs() const =0
virtual ParticleType reco::PFCandidate::particleId ( ) const
inlinevirtual

particle identification code

Definition at line 347 of file PFCandidate.h.

References reco::LeafCandidate::pdgId_, and translatePdgIdToType().

Referenced by PFTester::analyze(), PFMuonAlgo::cleanPunchThroughAndFakes(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::color(), metsig::SignAlgoResolutions::evalPF(), PFElectronTranslator::fillMVAValueMap(), PFCandidateBenchmark::fillOne(), PFRootEventManager::fillOutEventWithPFCandidates(), GreedyMuonPFCandidateFilter::filter(), InconsistentMuonPFCandidateFilter::filter(), LeptonRecoSkim::filter(), PFRootEventManager::highPtPFCandidate(), reco::tau::RecoTauIsolationMasking::inCone(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::isBoson(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::isGluon(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::isHiggs(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::isLepton(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::isPhoton(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::isQuark(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor::lineStyle(), JetMaker::makeSpecific(), reco::makeSpecific(), reco::tau::qcuts::mapAndCutByType(), reco::modules::HICaloCompatibleTrackSelector::matchPFCandToTrack(), PFSpecificAlgo::mkSpecificPFMETData(), reco::operator<<(), PFAlgo::postCleaning(), PFPileUpAlgo::process(), MuonWithPFIsoProducer::produce(), DistortedPFCandProducer::produce(), PFElectronTranslator::produce(), Type0PFMETcorrInputProducer::produce(), PFLinker::produce(), pf2pat::PFMETAlgo::produce(), PFPhotonTranslator::produce(), reco::tau::RecoTauIsolationMasking::resolution(), pf2pat::PFIsoDepositAlgo::sameParticle(), setConversionRef(), setDisplacedVertexRef(), setPhotonRef(), setSuperClusterRef(), setTrackRef(), and PFRootEventManager::tauBenchmark().

347 { return translatePdgIdToType(pdgId_);}
int pdgId_
PDG identifier.
ParticleType translatePdgIdToType(int pdgid) const
Definition: PFCandidate.cc:140
reco::PFCandidatePhotonExtraRef PFCandidate::photonExtraRef ( ) const

return a reference to the photon extra

Definition at line 508 of file PFCandidate.cc.

References GETREF, kRefPFPhotonExtraBit, and kRefPFPhotonExtraMask.

Referenced by PFPhotonTranslator::produce().

reco::PhotonRef PFCandidate::photonRef ( ) const

return a reference to the corresponding Photon if any

Definition at line 504 of file PFCandidate.cc.

References GETREF, kRefPhotonBit, and kRefPhotonMask.

504  {
506 }
#define GETREF(_class_, _mask_, _bit_)
Definition: CountBits.h:4660
const math::XYZPointF& reco::PFCandidate::positionAtECALEntrance ( ) const
inline
Returns
position at ECAL entrance

Definition at line 341 of file PFCandidate.h.

References positionAtECALEntrance_.

Referenced by PFCandIsolatorFromDeposits::SingleDeposit::compute(), and reco::tau::RecoTauIsolationMasking::inCone().

341  {
343  }
math::XYZPointF positionAtECALEntrance_
position at ECAL entrance, from the PFRecTrack
Definition: PFCandidate.h:475
double reco::PFCandidate::pS1Energy ( ) const
inline

return corrected PS1 energy

Definition at line 251 of file PFCandidate.h.

References ps1Energy_.

251 { return ps1Energy_;}
float ps1Energy_
corrected PS1 energy
Definition: PFCandidate.h:443
double reco::PFCandidate::pS2Energy ( ) const
inline

return corrected PS2 energy

Definition at line 257 of file PFCandidate.h.

References ps2Energy_.

257 { return ps2Energy_;}
float ps2Energy_
corrected PS2 energy
Definition: PFCandidate.h:446
double reco::PFCandidate::rawEcalEnergy ( ) const
inline

return corrected Ecal energy

Definition at line 199 of file PFCandidate.h.

References rawEcalEnergy_.

Referenced by PFMuonAlgo::cleanPunchThroughAndFakes(), PFElectronTranslator::createBasicCluster(), and GreedyMuonPFCandidateFilter::filter().

199 { return rawEcalEnergy_;}
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:434
double reco::PFCandidate::rawHcalEnergy ( ) const
inline

return raw Hcal energy

Definition at line 209 of file PFCandidate.h.

References rawHcalEnergy_.

Referenced by PFMuonAlgo::cleanPunchThroughAndFakes(), and GreedyMuonPFCandidateFilter::filter().

209 { return rawHcalEnergy_;}
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:437
double reco::PFCandidate::rawHoEnergy ( ) const
inline

return raw Hcal energy

Definition at line 219 of file PFCandidate.h.

References rawHoEnergy_.

219 { return rawHoEnergy_;}
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:440
void PFCandidate::rescaleMomentum ( double  rescaleFactor)

particle momentum *= rescaleFactor

Definition at line 194 of file PFCandidate.cc.

References reco::LeafCandidate::p4(), and reco::LeafCandidate::setP4().

194  {
195  LorentzVector rescaledp4 = p4();
196  rescaledp4 *= rescaleFactor;
197  setP4( rescaledp4 );
198 }
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
math::XYZTLorentzVector LorentzVector
virtual void setP4(const LorentzVector &p4) GCC11_FINAL
set 4-momentum
void reco::PFCandidate::set_mva_e_mu ( float  mva)
inline

set mva for electron-muon discrimination

Definition at line 290 of file PFCandidate.h.

References mva_e_mu_.

290 { mva_e_mu_=mva;}
float mva_e_mu_
mva for electron-muon discrimination
Definition: PFCandidate.h:460
void reco::PFCandidate::set_mva_e_pi ( float  mva)
inline

set mva for electron-pion discrimination. For charged particles, this variable is set to 0 for particles that are not preided to 1 otherwise For neutral particles, it is set to the default value

Definition at line 283 of file PFCandidate.h.

References mva_e_pi_.

Referenced by PFElectronAlgo::SetCandidates().

283 { mva_e_pi_=mva;}
float mva_e_pi_
mva for electron-pion discrimination
Definition: PFCandidate.h:457
void reco::PFCandidate::set_mva_gamma_nh ( float  mva)
inline

set mva for neutral hadron - gamma discrimination

Definition at line 316 of file PFCandidate.h.

References mva_gamma_nh_.

316 { mva_gamma_nh_=mva;}
float mva_gamma_nh_
mva for neutral hadron - gamma discrimination
Definition: PFCandidate.h:472
void reco::PFCandidate::set_mva_nothing_gamma ( float  mva)
inline

set mva for gamma detection

Definition at line 303 of file PFCandidate.h.

References mva_nothing_gamma_.

Referenced by PFPhotonAlgo::RunPFPhoton().

303 { mva_nothing_gamma_=mva;}
float mva_nothing_gamma_
mva for gamma detection
Definition: PFCandidate.h:466
void reco::PFCandidate::set_mva_nothing_nh ( float  mva)
inline

set mva for neutral hadron detection

Definition at line 309 of file PFCandidate.h.

References mva_nothing_nh_.

309 { mva_nothing_nh_=mva;}
float mva_nothing_nh_
mva for neutral hadron detection
Definition: PFCandidate.h:469
void reco::PFCandidate::set_mva_pi_mu ( float  mva)
inline

set mva for pi-muon discrimination

Definition at line 296 of file PFCandidate.h.

References mva_pi_mu_.

296 { mva_pi_mu_=mva;}
float mva_pi_mu_
mva for pi-muon discrimination
Definition: PFCandidate.h:463
void PFCandidate::setConversionRef ( const reco::ConversionRef ref)

set ref to original reco conversion

Definition at line 446 of file PFCandidate.cc.

References edm::hlt::Exception, flag(), gamma, GAMMA_TO_GAMMACONV, edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefConversionBit, kRefConversionMask, particleId(), edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

446  {
447  if( particleId() != gamma ) {
448  string err;
449  err += "PFCandidate::setConversionRef: this is not a (converted) photon ! particleId_=";
450  char num[4];
451  sprintf( num, "%d", particleId());
452  err += num;
453 
454  throw cms::Exception("InconsistentReference",
455  err.c_str() );
456  }
457  else if( !flag( GAMMA_TO_GAMMACONV ) ) {
458  string err;
459  err += "PFCandidate::setConversionRef: particule flag is not GAMMA_TO_GAMMACONV";
460 
461  throw cms::Exception("InconsistentReference",
462  err.c_str() );
463  }
464 
466  iRef.refCore(), iRef.key(),iRef.productGetter());
467 }
bool flag(Flags theFlag) const
return a given flag
Definition: PFCandidate.cc:211
long long int num
Definition: procUtils.cc:71
virtual ParticleType particleId() const
Definition: PFCandidate.h:347
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void reco::PFCandidate::setDeltaP ( double  dp)
inline

set uncertainty on momentum

Definition at line 269 of file PFCandidate.h.

References deltaP_, and reco::dp.

269 {deltaP_ = dp;}
float deltaP_
uncertainty on 3-momentum
Definition: PFCandidate.h:452
auto dp
Definition: deltaR.h:24
void PFCandidate::setDisplacedVertexRef ( const reco::PFDisplacedVertexRef ref,
Flags  flag 
)

set displaced vertex reference

Definition at line 391 of file PFCandidate.cc.

References edm::hlt::Exception, flag(), h, edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefDisplacedVertexDauBit, kRefDisplacedVertexDauMask, kRefDisplacedVertexMotBit, kRefDisplacedVertexMotMask, particleId(), edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), storeRefInfo(), T_FROM_DISP, and T_TO_DISP.

391  {
392 
393  if( particleId() != h ) {
394  string err;
395  err += "PFCandidate::setDisplacedVertexRef: this is not a hadron! particleId_=";
396  char num[4];
397  sprintf( num, "%d", particleId());
398  err += num;
399 
400  throw cms::Exception("InconsistentReference",
401  err.c_str() );
402  }
403  else if( !flag( T_FROM_DISP ) && !flag( T_TO_DISP ) ) {
404  string err;
405  err += "PFCandidate::setDisplacedVertexRef: particule flag is neither T_FROM_DISP nor T_TO_DISP";
406 
407  throw cms::Exception("InconsistentReference",
408  err.c_str() );
409  }
410 
411 
412  if (type == T_TO_DISP && flag( T_TO_DISP ))
414  iRef.isNonnull(),
415  iRef.refCore(), iRef.key(),iRef.productGetter());
416  else if (type == T_FROM_DISP && flag( T_FROM_DISP ))
418  iRef.isNonnull(),
419  iRef.refCore(), iRef.key(),iRef.productGetter());
420  else if ( (type == T_FROM_DISP && !flag( T_FROM_DISP ))
421  ||
422  (type == T_TO_DISP && !flag( T_TO_DISP )) ){
423  string err;
424  err += "PFCandidate::setDisplacedVertexRef: particule flag is not switched on";
425 
426  throw cms::Exception("InconsistentReference",
427  err.c_str() );
428  }
429 
430 }
type
Definition: HCALResponse.h:21
bool flag(Flags theFlag) const
return a given flag
Definition: PFCandidate.cc:211
long long int num
Definition: procUtils.cc:71
virtual ParticleType particleId() const
Definition: PFCandidate.h:347
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void reco::PFCandidate::setEcalEnergy ( float  eeRaw,
float  eeCorr 
)
inline

set corrected Ecal energy

Definition at line 192 of file PFCandidate.h.

References abs, ecalERatio_, and rawEcalEnergy_.

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFAlgo::processBlock(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

192  {
193  rawEcalEnergy_ = eeRaw; ecalERatio_= std::abs(eeRaw)<1.e-6 ? 1.0 : eeCorr/eeRaw;}
#define abs(x)
Definition: mlp_lapack.h:159
float ecalERatio_
corrected ECAL energy ratio (corrected/raw)
Definition: PFCandidate.h:425
float rawEcalEnergy_
raw ECAL energy
Definition: PFCandidate.h:434
void PFCandidate::setFlag ( Flags  theFlag,
bool  value 
)

set a given flag

Definition at line 201 of file PFCandidate.cc.

References flags_.

Referenced by PFPhotonAlgo::RunPFPhoton().

201  {
202 
203  if(value)
204  flags_ = flags_ | (1<<theFlag);
205  else
206  flags_ = flags_ ^ (1<<theFlag);
207 }
unsigned flags_
all flags, packed (ecal regional, hcal regional, tracking)
Definition: PFCandidate.h:449
void reco::PFCandidate::setFlag ( unsigned  shift,
unsigned  flag,
bool  value 
)
private
void PFCandidate::setGsfElectronRef ( const reco::GsfElectronRef ref)

set GsfElectronRef

Definition at line 485 of file PFCandidate.cc.

References edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefGsfElectronBit, kRefGsfElectronMask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

Referenced by PFLinker::produce().

485  {
487  iRef.refCore(), iRef.key(),iRef.productGetter());
488 }
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void PFCandidate::setGsfTrackRef ( const reco::GsfTrackRef ref)

set gsftrack reference

Definition at line 370 of file PFCandidate.cc.

References edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefGsfTrackBit, kRefGsfTrackMask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

Referenced by PFEGammaAlgo::AddElectronCandidate(), and PFElectronAlgo::SetCandidates().

370  {
371 // Removed by F. Beaudette. Would like to be able to save the GsfTrackRef even for charged pions
372 // if( particleId() != e ) {
373 // string err;
374 // err += "PFCandidate::setGsfTrackRef: this is not an electron ! particleId_=";
375 // char num[4];
376 // sprintf( num, "%d", particleId());
377 // err += num;
378 //
379 // throw cms::Exception("InconsistentReference",
380 // err.c_str() );
381 // }
382 
383  storeRefInfo(kRefGsfTrackMask, kRefGsfTrackBit, iRef.isNonnull(),
384  iRef.refCore(), iRef.key(),iRef.productGetter());
385 }
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void reco::PFCandidate::setHcalEnergy ( float  ehRaw,
float  ehCorr 
)
inline

set corrected Hcal energy

Definition at line 202 of file PFCandidate.h.

References abs, hcalERatio_, and rawHcalEnergy_.

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFAlgo::processBlock(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

202  {
203  rawHcalEnergy_ = ehRaw; hcalERatio_= std::abs(ehRaw)<1.e-6 ? 1.0 : ehCorr/ehRaw;}
float hcalERatio_
corrected HCAL energy ratio (corrected/raw)
Definition: PFCandidate.h:428
float rawHcalEnergy_
raw HCAL energy
Definition: PFCandidate.h:437
#define abs(x)
Definition: mlp_lapack.h:159
void reco::PFCandidate::setHoEnergy ( float  eoRaw,
float  eoCorr 
)
inline

set corrected Hcal energy

Definition at line 212 of file PFCandidate.h.

References abs, hoERatio_, and rawHoEnergy_.

Referenced by PFAlgo::processBlock().

212  {
213  rawHoEnergy_ = eoRaw; hoERatio_= std::abs(eoRaw)<1.e-6 ? 1.0 : eoCorr/eoRaw;}
#define abs(x)
Definition: mlp_lapack.h:159
float hoERatio_
corrected HO energy ratio (corrected/raw)
Definition: PFCandidate.h:431
float rawHoEnergy_
raw HO energy
Definition: PFCandidate.h:440
void PFCandidate::setMuonRef ( const reco::MuonRef ref)

set muon reference

Definition at line 352 of file PFCandidate.cc.

References edm::hlt::Exception, edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefMuonBit, kRefMuonMask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), storeRefInfo(), and trackRef().

Referenced by PFLinker::produce(), and PFMuonAlgo::reconstructMuon().

352  {
353 
354  if( trackRef() != iRef->track() ) {
355  string err;
356  err += "PFCandidate::setMuonRef: inconsistent track references!";
357 
358  throw cms::Exception("InconsistentReference",
359  err.c_str() );
360  }
361 
362  storeRefInfo(kRefMuonMask, kRefMuonBit, iRef.isNonnull(),
363  iRef.refCore(), iRef.key(),iRef.productGetter());
364 }
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:349
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void reco::PFCandidate::setMuonTrackType ( const reco::Muon::MuonTrackType type)
inline

set the Best Muon Track Ref

Definition at line 330 of file PFCandidate.h.

References muonTrackType_.

Referenced by PFMuonAlgo::changeTrack().

330  {
332  }
type
Definition: HCALResponse.h:21
reco::Muon::MuonTrackType muonTrackType_
Definition: PFCandidate.h:422
void PFCandidate::setParticleType ( ParticleType  type)

set Particle Type

Definition at line 172 of file PFCandidate.cc.

References reco::LeafCandidate::setPdgId(), and translateTypeToPdgId().

Referenced by PFMuonAlgo::changeTrack().

172  {
174 }
type
Definition: HCALResponse.h:21
int translateTypeToPdgId(ParticleType type) const
Definition: PFCandidate.cc:154
virtual void setPdgId(int pdgId) GCC11_FINAL
void PFCandidate::setPFEGammaExtraRef ( const reco::PFCandidateEGammaExtraRef ref)

set the PF EGamma Extra Ref

Definition at line 557 of file PFCandidate.cc.

References edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefPFEGammaExtraBit, kRefPFEGammaExtraMask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

Referenced by PFEGammaProducer::produce().

557  {
558  //std::cout << " before storeRefInfo " << kRefPFEGammaExtraMask << " " << kRefPFEGammaExtraBit << " " << iRef.isNonnull() << " " << iRef.key() << " " << std::endl;
560  iRef.refCore(), iRef.key(),iRef.productGetter());
561 }
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void PFCandidate::setPFElectronExtraRef ( const reco::PFCandidateElectronExtraRef ref)

set the PF Electron Extra Ref

Definition at line 495 of file PFCandidate.cc.

References edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefPFElectronExtraBit, kRefPFElectronExtraMask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

495  {
497  iRef.refCore(), iRef.key(),iRef.productGetter());
498 }
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void PFCandidate::setPFPhotonExtraRef ( const reco::PFCandidatePhotonExtraRef ref)

set the PF Photon Extra Ref

Definition at line 552 of file PFCandidate.cc.

References edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefPFPhotonExtraBit, kRefPFPhotonExtraMask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

552  {
554  iRef.refCore(), iRef.key(),iRef.productGetter());
555 }
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void PFCandidate::setPhotonRef ( const reco::PhotonRef phRef)

set ref to the corresponding reco::Photon if any

Definition at line 520 of file PFCandidate.cc.

References e, edm::hlt::Exception, gamma, edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefPhotonBit, kRefPhotonMask, particleId(), edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

Referenced by PFLinker::produce().

520  {
521  if( particleId() != gamma && particleId() != e) {
522  string err;
523  err += "PFCandidate::setSuperClusterRef: this is not an electron neither a photon ! particleId_=";
524  char num[4];
525  sprintf( num, "%d", particleId());
526  err += num;
527 
528  throw cms::Exception("InconsistentReference", err.c_str() );
529  }
530 
531  storeRefInfo(kRefPhotonMask, kRefPhotonBit, iRef.isNonnull(),
532  iRef.refCore(), iRef.key(),iRef.productGetter());
533 
534 }
long long int num
Definition: procUtils.cc:71
virtual ParticleType particleId() const
Definition: PFCandidate.h:347
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void reco::PFCandidate::setPositionAtECALEntrance ( const math::XYZPointF pos)
inline

set position at ECAL entrance

Definition at line 322 of file PFCandidate.h.

References pos, and positionAtECALEntrance_.

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

322  {
324  }
math::XYZPointF positionAtECALEntrance_
position at ECAL entrance, from the PFRecTrack
Definition: PFCandidate.h:475
void reco::PFCandidate::setPs1Energy ( float  e1)
inline

set corrected PS1 energy

Definition at line 248 of file PFCandidate.h.

References reco::e1, and ps1Energy_.

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

248 {ps1Energy_ = e1;}
float ps1Energy_
corrected PS1 energy
Definition: PFCandidate.h:443
Float e1
Definition: deltaR.h:22
void reco::PFCandidate::setPs2Energy ( float  e2)
inline

set corrected PS2 energy

Definition at line 254 of file PFCandidate.h.

References reco::e2, and ps2Energy_.

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

254 {ps2Energy_ = e2;}
Float e2
Definition: deltaR.h:23
float ps2Energy_
corrected PS2 energy
Definition: PFCandidate.h:446
void reco::PFCandidate::setSourceCandidatePtr ( const PFCandidatePtr ptr)
inline

Definition at line 115 of file PFCandidate.h.

References sourcePtr_.

Referenced by reco::PFCandidateWithSrcPtrFactory::operator()(), and FFTJetPFPileupCleaner::produce().

115 { sourcePtr_ = ptr; }
PFCandidatePtr sourcePtr_
reference to the source PFCandidate, if any
Definition: PFCandidate.h:417
void PFCandidate::setSuperClusterRef ( const reco::SuperClusterRef scRef)

Definition at line 536 of file PFCandidate.cc.

References e, edm::hlt::Exception, gamma, edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefSuperClusterBit, kRefSuperClusterMask, particleId(), edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

Referenced by PFEGammaAlgo::AddElectronCandidate(), PFLinker::produce(), PFEGammaProducer::produce(), PFPhotonAlgo::RunPFPhoton(), and PFElectronAlgo::SetCandidates().

536  {
537  if( particleId() != gamma && particleId() != e) {
538  string err;
539  err += "PFCandidate::setSuperClusterRef: this is not an electron neither a photon ! particleId_=";
540  char num[4];
541  sprintf( num, "%d", particleId());
542  err += num;
543 
544  throw cms::Exception("InconsistentReference", err.c_str() );
545  }
546 
548  iRef.refCore(), iRef.key(),iRef.productGetter());
549 
550 }
long long int num
Definition: procUtils.cc:71
virtual ParticleType particleId() const
Definition: PFCandidate.h:347
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void PFCandidate::setTrackRef ( const reco::TrackRef ref)

set track reference

Definition at line 332 of file PFCandidate.cc.

References reco::LeafCandidate::charge(), edm::hlt::Exception, edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefTrackBit, kRefTrackMask, particleId(), edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

Referenced by PFEGammaAlgo::AddElectronCandidate(), and PFElectronAlgo::SetCandidates().

332  {
333  if(!charge()) {
334  string err;
335  err += "PFCandidate::setTrackRef: this is a neutral candidate! ";
336  err += "particleId_=";
337  char num[4];
338  sprintf( num, "%d", particleId());
339  err += num;
340 
341  throw cms::Exception("InconsistentReference",
342  err.c_str() );
343  }
344 
345  storeRefInfo(kRefTrackMask, kRefTrackBit, iRef.isNonnull(),
346  iRef.refCore(), iRef.key(),iRef.productGetter());
347 }
virtual int charge() const GCC11_FINAL
electric charge
long long int num
Definition: procUtils.cc:71
virtual ParticleType particleId() const
Definition: PFCandidate.h:347
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
void PFCandidate::setV0Ref ( const reco::VertexCompositeCandidateRef ref)

set ref to original reco conversion

Definition at line 475 of file PFCandidate.cc.

References edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), kRefV0Bit, kRefV0Mask, edm::Ref< C, T, F >::productGetter(), edm::Ref< C, T, F >::refCore(), and storeRefInfo().

475  {
476  storeRefInfo(kRefV0Mask, kRefV0Bit, iRef.isNonnull(),
477  iRef.refCore(), iRef.key(),iRef.productGetter());
478 }
void storeRefInfo(unsigned int iMask, unsigned int iBit, bool iIsValid, const edm::RefCore &iCore, size_t iKey, const edm::EDProductGetter *)
Definition: PFCandidate.cc:277
virtual void reco::PFCandidate::setVertex ( math::XYZPoint  p)
inlinevirtual

Definition at line 393 of file PFCandidate.h.

References kCandVertex, reco::LeafCandidate::p(), reco::LeafCandidate::vertex_, and vertexType_.

Referenced by PFConcretePFCandidateProducer::produce(), and PFPhotonAlgo::RunPFPhoton().

393  {
395  }
virtual double p() const GCC11_FINAL
magnitude of momentum vector
Point vertex_
vertex position
PFVertexType vertexType_
Definition: PFCandidate.h:454
void reco::PFCandidate::setVertexSource ( PFVertexType  vt)
inline
CandidatePtr reco::PFCandidate::sourceCandidatePtr ( size_type  i) const
inlinevirtual

return a Ptr to one of the source Candidates ( the candidates used to construct this Candidate)

Reimplemented from reco::LeafCandidate.

Definition at line 121 of file PFCandidate.h.

References sourcePtr_.

Referenced by overlap().

121  {
122  return sourcePtr_;
123  }
PFCandidatePtr sourcePtr_
reference to the source PFCandidate, if any
Definition: PFCandidate.h:417
void PFCandidate::storeRefInfo ( unsigned int  iMask,
unsigned int  iBit,
bool  iIsValid,
const edm::RefCore iCore,
size_t  iKey,
const edm::EDProductGetter iGetter 
)
private

Definition at line 277 of file PFCandidate.cc.

References bitPackRefInfo(), getter_, edm::RefCore::productPtr(), refsCollectionCache_, refsInfo_, s_refsBefore, and storedRefsBitPattern_.

Referenced by setConversionRef(), setDisplacedVertexRef(), setGsfElectronRef(), setGsfTrackRef(), setMuonRef(), setPFEGammaExtraRef(), setPFElectronExtraRef(), setPFPhotonExtraRef(), setPhotonRef(), setSuperClusterRef(), setTrackRef(), and setV0Ref().

282  {
283 
284  size_t index = s_refsBefore[storedRefsBitPattern_ & iMask];
285  if ( 0 == getter_) {
286  getter_ = iGetter;
287  }
288 
289  if(iIsValid) {
290  if(0 == (storedRefsBitPattern_ & iBit) ) {
291  refsInfo_.insert(refsInfo_.begin()+index, bitPackRefInfo(iCore,iKey));
292  if (iGetter==0)
294  (void*)iCore.productPtr());
295  else
297  } else {
298  assert(refsInfo_.size()>index);
299  *(refsInfo_.begin()+index)=bitPackRefInfo(iCore,iKey);
300  if (iGetter==0)
301  *(refsCollectionCache_.begin()+index)=(void*)iCore.productPtr();
302  else
303  *(refsCollectionCache_.begin()+index)=0;
304 
305  }
306  storedRefsBitPattern_ |= iBit;
307  } else{
308  if( storedRefsBitPattern_ & iBit) {
309  refsInfo_.erase(refsInfo_.begin()+index);
311  storedRefsBitPattern_ ^= iBit;
312  }
313  }
314 
315 }
const edm::EDProductGetter * getter_
Definition: PFCandidate.h:486
std::vector< unsigned long long > refsInfo_
Definition: PFCandidate.h:488
static unsigned long long bitPackRefInfo(const edm::RefCore &iCore, size_t iIndex)
Definition: PFCandidate.cc:270
void const * productPtr() const
Definition: RefCore.h:32
unsigned short storedRefsBitPattern_
Definition: PFCandidate.h:487
unsigned int index
Definition: LeafCandidate.h:34
static const unsigned int s_refsBefore[]
Definition: CountBits.h:14
std::vector< const void * > refsCollectionCache_
Definition: PFCandidate.h:489
reco::SuperClusterRef PFCandidate::superClusterRef ( ) const
reco::TrackRef PFCandidate::trackRef ( ) const
PFCandidate::ParticleType PFCandidate::translatePdgIdToType ( int  pdgid) const

Definition at line 140 of file PFCandidate.cc.

References abs, e, egamma_HF, gamma, h, h0, h_HF, mu, and X.

Referenced by particleId().

140  {
141  switch (std::abs(pdgid)) {
142  case 211: return h;
143  case 11: return e;
144  case 13: return mu;
145  case 22: return gamma;
146  case 130: return h0;
147  case 1: return h_HF;
148  case 2: return egamma_HF;
149  case 0: return X;
150  default: return X;
151  }
152 }
#define abs(x)
Definition: mlp_lapack.h:159
int PFCandidate::translateTypeToPdgId ( ParticleType  type) const

returns the pdg id corresponding to the particle type. the particle type could be removed at some point to gain some space. low priority

Definition at line 154 of file PFCandidate.cc.

References reco::LeafCandidate::charge(), e, egamma_HF, gamma, h, h0, h_HF, mu, and X.

Referenced by PFCandidate(), and setParticleType().

154  {
155 
156  int thecharge = charge();
157 
158  switch( type ) {
159  case h: return thecharge*211; // pi+
160  case e: return thecharge*(-11);
161  case mu: return thecharge*(-13);
162  case gamma: return 22;
163  case h0: return 130; // K_L0
164  case h_HF: return 1; // dummy pdg code
165  case egamma_HF: return 2; // dummy pdg code
166  case X:
167  default: return 0;
168  }
169 }
type
Definition: HCALResponse.h:21
virtual int charge() const GCC11_FINAL
electric charge
reco::VertexCompositeCandidateRef PFCandidate::v0Ref ( ) const

return a reference to the original conversion

Definition at line 480 of file PFCandidate.cc.

References GETREF, kRefV0Bit, and kRefV0Mask.

const math::XYZPoint & PFCandidate::vertex ( ) const
virtual

vertex position (overwritten by PF...)

Reimplemented from reco::LeafCandidate.

Definition at line 563 of file PFCandidate.cc.

References gsfTrackRef(), kCandVertex, kComMuonVertex, kGSFVertex, kPickyMuonVertex, kSAMuonVertex, kTPFMSMuonVertex, kTrkMuonVertex, kTrkVertex, muonRef(), trackRef(), reco::LeafCandidate::vertex_, and vertexType_.

Referenced by FWPFCandidateWithHitsProxyBuilder::build(), FWPFCandidate3DProxyBuilder::build(), PFPileUpAlgo::chargedHadronVertex(), PFCandWithSuperClusterExtractor::depositFromObject(), FFTJetPFPileupCleaner::findSomeVertexWFakes(), PFConcretePFCandidateProducer::produce(), vx(), vy(), and vz().

563  {
564  switch (vertexType_) {
565  case kCandVertex:
566  return vertex_;
567  break;
568  case kTrkVertex:
569  return trackRef()->vertex();
570  break;
571  case kComMuonVertex:
572  return muonRef()->combinedMuon()->vertex();
573  break;
574  case kSAMuonVertex:
575  return muonRef()->standAloneMuon()->vertex();
576  break;
577  case kTrkMuonVertex:
578  return muonRef()->track()->vertex();
579  break;
580  case kTPFMSMuonVertex:
581  return muonRef()->tpfmsTrack()->vertex();
582  break;
583  case kPickyMuonVertex:
584  return muonRef()->pickyTrack()->vertex();
585  break;
586 
587  case kGSFVertex:
588  return gsfTrackRef()->vertex();
589  break;
590  }
591  return vertex_;
592 }
Point vertex_
vertex position
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:349
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:366
PFVertexType vertexType_
Definition: PFCandidate.h:454
reco::GsfTrackRef gsfTrackRef() const
Definition: PFCandidate.cc:387
virtual double reco::PFCandidate::vx ( ) const
inlinevirtual

x coordinate of vertex position

Reimplemented from reco::LeafCandidate.

Definition at line 398 of file PFCandidate.h.

References vertex().

398 {return vertex().x();}
virtual const Point & vertex() const
vertex position (overwritten by PF...)
Definition: PFCandidate.cc:563
virtual double reco::PFCandidate::vy ( ) const
inlinevirtual

y coordinate of vertex position

Reimplemented from reco::LeafCandidate.

Definition at line 399 of file PFCandidate.h.

References vertex().

399 {return vertex().y();}
virtual const Point & vertex() const
vertex position (overwritten by PF...)
Definition: PFCandidate.cc:563
virtual double reco::PFCandidate::vz ( ) const
inlinevirtual

z coordinate of vertex position

Reimplemented from reco::LeafCandidate.

Definition at line 400 of file PFCandidate.h.

References vertex().

Referenced by PFCandWithSuperClusterExtractor::depositFromObject().

400 {return vertex().z();}
virtual const Point & vertex() const
vertex position (overwritten by PF...)
Definition: PFCandidate.cc:563

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const PFCandidate c 
)
friend

Member Data Documentation

const float PFCandidate::bigMva_ = -999.
static

Definition at line 378 of file PFCandidate.h.

Blocks reco::PFCandidate::blocksStorage_
private

Definition at line 412 of file PFCandidate.h.

Referenced by addElementInBlock(), elementsInBlocks(), and PFCandidate().

float reco::PFCandidate::deltaP_
private

uncertainty on 3-momentum

Definition at line 452 of file PFCandidate.h.

Referenced by deltaP(), and setDeltaP().

float reco::PFCandidate::ecalERatio_
private

corrected ECAL energy ratio (corrected/raw)

Definition at line 425 of file PFCandidate.h.

Referenced by ecalEnergy(), and setEcalEnergy().

ElementsInBlocks reco::PFCandidate::elementsInBlocks_
mutableprivate

Definition at line 411 of file PFCandidate.h.

Referenced by elementsInBlocks().

Elements reco::PFCandidate::elementsStorage_
private

Definition at line 413 of file PFCandidate.h.

Referenced by addElementInBlock(), elementsInBlocks(), and PFCandidate().

unsigned reco::PFCandidate::flags_
private

all flags, packed (ecal regional, hcal regional, tracking)

Definition at line 449 of file PFCandidate.h.

Referenced by flag(), and setFlag().

const edm::EDProductGetter* reco::PFCandidate::getter_
private

Definition at line 486 of file PFCandidate.h.

Referenced by storeRefInfo().

float reco::PFCandidate::hcalERatio_
private

corrected HCAL energy ratio (corrected/raw)

Definition at line 428 of file PFCandidate.h.

Referenced by hcalEnergy(), and setHcalEnergy().

float reco::PFCandidate::hoERatio_
private

corrected HO energy ratio (corrected/raw)

Definition at line 431 of file PFCandidate.h.

Referenced by hoEnergy(), and setHoEnergy().

reco::Muon::MuonTrackType reco::PFCandidate::muonTrackType_
private

Reference to the best track if it is a muon pF is allowed to switch the default muon track

Definition at line 422 of file PFCandidate.h.

Referenced by bestMuonTrackType(), PFCandidate(), and setMuonTrackType().

float reco::PFCandidate::mva_e_mu_
private

mva for electron-muon discrimination

Definition at line 460 of file PFCandidate.h.

Referenced by mva_e_mu(), and set_mva_e_mu().

float reco::PFCandidate::mva_e_pi_
private

mva for electron-pion discrimination

Definition at line 457 of file PFCandidate.h.

Referenced by mva_e_pi(), and set_mva_e_pi().

float reco::PFCandidate::mva_gamma_nh_
private

mva for neutral hadron - gamma discrimination

Definition at line 472 of file PFCandidate.h.

Referenced by mva_gamma_nh(), and set_mva_gamma_nh().

float reco::PFCandidate::mva_nothing_gamma_
private

mva for gamma detection

Definition at line 466 of file PFCandidate.h.

Referenced by mva_nothing_gamma(), and set_mva_nothing_gamma().

float reco::PFCandidate::mva_nothing_nh_
private

mva for neutral hadron detection

Definition at line 469 of file PFCandidate.h.

Referenced by mva_nothing_nh(), and set_mva_nothing_nh().

float reco::PFCandidate::mva_pi_mu_
private

mva for pi-muon discrimination

Definition at line 463 of file PFCandidate.h.

Referenced by mva_pi_mu(), and set_mva_pi_mu().

math::XYZPointF reco::PFCandidate::positionAtECALEntrance_
private

position at ECAL entrance, from the PFRecTrack

Definition at line 475 of file PFCandidate.h.

Referenced by positionAtECALEntrance(), and setPositionAtECALEntrance().

float reco::PFCandidate::ps1Energy_
private

corrected PS1 energy

Definition at line 443 of file PFCandidate.h.

Referenced by pS1Energy(), and setPs1Energy().

float reco::PFCandidate::ps2Energy_
private

corrected PS2 energy

Definition at line 446 of file PFCandidate.h.

Referenced by pS2Energy(), and setPs2Energy().

float reco::PFCandidate::rawEcalEnergy_
private

raw ECAL energy

Definition at line 434 of file PFCandidate.h.

Referenced by ecalEnergy(), rawEcalEnergy(), and setEcalEnergy().

float reco::PFCandidate::rawHcalEnergy_
private

raw HCAL energy

Definition at line 437 of file PFCandidate.h.

Referenced by hcalEnergy(), rawHcalEnergy(), and setHcalEnergy().

float reco::PFCandidate::rawHoEnergy_
private

raw HO energy

Definition at line 440 of file PFCandidate.h.

Referenced by hoEnergy(), rawHoEnergy(), and setHoEnergy().

std::vector<const void *> reco::PFCandidate::refsCollectionCache_
private

Definition at line 489 of file PFCandidate.h.

Referenced by storeRefInfo().

std::vector<unsigned long long> reco::PFCandidate::refsInfo_
private

Definition at line 488 of file PFCandidate.h.

Referenced by getRefInfo(), PFCandidate(), and storeRefInfo().

PFCandidatePtr reco::PFCandidate::sourcePtr_
private

reference to the source PFCandidate, if any

Definition at line 417 of file PFCandidate.h.

Referenced by reco::operator<<(), overlap(), PFCandidate(), setSourceCandidatePtr(), and sourceCandidatePtr().

unsigned short reco::PFCandidate::storedRefsBitPattern_
private

Definition at line 487 of file PFCandidate.h.

Referenced by getRefInfo(), and storeRefInfo().

PFVertexType reco::PFCandidate::vertexType_
private

Definition at line 454 of file PFCandidate.h.

Referenced by setVertex(), setVertexSource(), and vertex().