1 #ifndef Candidate_Candidate_h 2 #define Candidate_Candidate_h 58 virtual int charge()
const = 0;
66 virtual const LorentzVector&
p4()
const = 0;
68 virtual const PolarLorentzVector&
polarP4()
const = 0;
75 virtual double p()
const = 0;
77 virtual double energy()
const = 0;
79 virtual double et()
const = 0;
81 virtual double et2()
const = 0;
83 virtual double mass()
const = 0;
85 virtual double massSqr()
const = 0;
87 virtual double mt()
const = 0;
89 virtual double mtSqr()
const = 0;
91 virtual double px()
const = 0;
93 virtual double py()
const = 0;
95 virtual double pz()
const = 0;
97 virtual double pt()
const = 0;
99 virtual double phi()
const = 0;
101 virtual double theta()
const = 0;
103 virtual double eta()
const = 0;
105 virtual double rapidity()
const = 0;
107 virtual double y()
const = 0;
109 virtual void setP4(
const LorentzVector&
p4) = 0;
111 virtual void setP4(
const PolarLorentzVector& p4) = 0;
114 virtual void setPz(
double pz) = 0;
116 virtual const Point&
vertex()
const = 0;
118 virtual double vx()
const = 0;
120 virtual double vy()
const = 0;
122 virtual double vz()
const = 0;
126 virtual int pdgId()
const = 0;
130 virtual int status()
const = 0;
215 template <
typename Ref>
221 template <
typename T>
226 return reco::get<T>(*this);
229 template <
typename T,
typename Tag>
234 return reco::get<T, Tag>(*this);
237 template <
typename T>
238 T get(size_type
i)
const {
242 return reco::get<T>(*
this,
i);
245 template <
typename T,
typename Tag>
246 T get(size_type
i)
const {
250 return reco::get<T, Tag>(*
this,
i);
253 template <
typename T>
258 return reco::numberOf<T>(*this);
261 template <
typename T,
typename Tag>
266 return reco::numberOf<T, Tag>(*this);
281 virtual bool isMuon()
const = 0;
288 virtual bool isJet()
const = 0;
293 template <
typename,
typename,
typename>
295 friend class ::OverlapChecker;
300 namespace candidate {
int Charge
electric charge type
virtual double pz() const =0
z coordinate of momentum vector
edm::Ref< Container > Ref
virtual bool isJet() const =0
math::XYZVector Vector
point in the space
virtual void setSourceCandidatePtr(const CandidatePtr &ptr)
Set the ptr to the source Candidate.
virtual double vx() const =0
x coordinate of vertex position
virtual bool hasMasterClonePtr() const =0
virtual bool isStandAloneMuon() const =0
virtual void setP4(const LorentzVector &p4)=0
set 4-momentum
virtual const PolarLorentzVector & polarP4() const =0
four-momentum Lorentz vector
virtual const Track * bestTrack() const
candidate::const_iterator const_iterator
virtual CandidatePtr sourceCandidatePtr(size_type i) const
virtual bool isMuon() const =0
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual bool isPhoton() const =0
virtual float dxyError() const
uncertainty on dxy
virtual void setMassConstraint()=0
set mass constraint flag
virtual double mtSqr() const =0
transverse mass squared
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
virtual int threeCharge() const =0
electric charge
virtual bool longLived() const =0
is long lived?
virtual double vy() const =0
y coordinate of vertex position
virtual size_t numberOfSourceCandidatePtrs() const =0
virtual bool massConstraint() const =0
do mass constraint?
virtual void setPdgId(int pdgId)=0
reference operator*() const
virtual void fillVertexCovariance(CovarianceMatrix &v) const =0
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
virtual Vector boostToCM() const =0
virtual bool isTrackerMuon() const =0
virtual int status() const =0
status word
virtual double et() const =0
transverse energy
virtual double energy() const =0
energy
virtual double py() const =0
y coordinate of momentum vector
Ref masterRef() const
cast master clone reference to a concrete type
virtual bool isConvertedPhoton() const =0
virtual Candidate * clone() const =0
returns a clone of the Candidate object
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
virtual int pdgId() const =0
PDG identifier.
virtual void setVertex(const Point &vertex)=0
set vertex
const_iterator end() const
last daughter const_iterator
virtual size_type numberOfMothers() const =0
number of mothers (zero or one in most of but not all the cases)
virtual float dzError() const
uncertainty on dz
virtual double vertexNormalizedChi2() const =0
chi-squared divided by n.d.o.f.
virtual bool isElectron() const =0
virtual void setPz(double pz)=0
size_type numberOf() const
number of components
virtual double p() const =0
magnitude of momentum vector
virtual bool overlap(const Candidate &) const =0
check overlap with another Candidate
virtual void setStatus(int status)=0
set status word
size_type numberOf() const
number of components
virtual void setThreeCharge(Charge qx3)=0
set electric charge
iterator end()
last daughter iterator
virtual void setLongLived()=0
set long lived flag
candidate::iterator iterator
unsigned int index
index type
virtual const CandidateBaseRef & masterClone() const =0
virtual bool isGlobalMuon() const =0
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
virtual double theta() const =0
momentum polar angle
virtual double eta() const =0
momentum pseudorapidity
virtual ~Candidate()
destructor
iterator begin()
first daughter iterator
Candidate()
default constructor
virtual double pt() const =0
transverse momentum
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
virtual double mass() const =0
mass
virtual bool isCaloMuon() const =0
virtual CovarianceMatrix vertexCovariance() const
fill SMatrix
virtual double massSqr() const =0
mass squared
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual Vector momentum() const =0
spatial momentum vector
virtual double rapidity() const =0
rapidity
virtual int charge() const =0
electric charge
virtual double et2() const =0
transverse energy squared (use this for cut!)
T get() const
get a component
const_iterator begin() const
first daughter const_iterator
math::XYZPoint Point
point in the space
virtual const Point & vertex() const =0
vertex position
virtual double vertexChi2() const =0
chi-squares
virtual double vz() const =0
z coordinate of vertex position
virtual double mt() const =0
transverse mass
virtual double vertexNdof() const =0
virtual double px() const =0
x coordinate of momentum vector
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
virtual size_type numberOfDaughters() const =0
number of daughters
virtual void setCharge(Charge q)=0
set electric charge
virtual double phi() const =0
momentum azimuthal angle
virtual const CandidatePtr & masterClonePtr() const =0
virtual void setMass(double m)=0
set particle mass
reference operator*() const
virtual bool hasMasterClone() const =0
virtual double y() const =0
rapidity
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.