1 #ifndef Candidate_Candidate_h
2 #define Candidate_Candidate_h
57 virtual int charge()
const = 0;
74 virtual double p()
const = 0;
76 virtual double energy()
const = 0;
78 virtual double et()
const = 0;
80 virtual double et2()
const = 0;
82 virtual double mass()
const = 0;
84 virtual double massSqr()
const = 0;
86 virtual double mt()
const = 0;
88 virtual double mtSqr()
const = 0;
90 virtual double px()
const = 0;
92 virtual double py()
const = 0;
94 virtual double pz()
const = 0;
96 virtual double pt()
const = 0;
98 virtual double phi()
const = 0;
100 virtual double theta()
const = 0;
102 virtual double eta()
const = 0;
104 virtual double rapidity()
const = 0;
106 virtual double y()
const = 0;
113 virtual void setPz(
double pz) = 0;
117 virtual double vx()
const = 0;
119 virtual double vy()
const = 0;
121 virtual double vz()
const = 0;
125 virtual int pdgId()
const = 0;
129 virtual int status()
const = 0;
214 template <
typename Ref>
220 template <
typename T>
225 return reco::get<T>(*this);
228 template <
typename T,
typename Tag>
233 return reco::get<T, Tag>(*this);
236 template <
typename T>
241 return reco::get<T>(*
this,
i);
244 template <
typename T,
typename Tag>
249 return reco::get<T, Tag>(*
this,
i);
252 template <
typename T>
257 return reco::numberOf<T>(*this);
260 template <
typename T,
typename Tag>
265 return reco::numberOf<T, Tag>(*this);
280 virtual bool isMuon()
const = 0;
287 virtual bool isJet()
const = 0;
292 template <
typename,
typename,
typename>
294 friend class ::OverlapChecker;
299 namespace candidate {
virtual double massSqr() const =0
mass squared
int Charge
electric charge type
virtual double energy() const =0
energy
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
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 void fillVertexCovariance(CovarianceMatrix &v) const =0
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
virtual bool isConvertedPhoton() const =0
virtual void setP4(const LorentzVector &p4)=0
set 4-momentum
virtual const Track * bestTrack() const
virtual double et() const =0
transverse energy
candidate::const_iterator const_iterator
virtual double pt() const =0
transverse momentum
virtual CandidatePtr sourceCandidatePtr(size_type i) const
virtual int threeCharge() const =0
electric charge
virtual double mass() const =0
mass
virtual int status() const =0
status word
virtual float dxyError() const
uncertainty on dxy
virtual size_type numberOfMothers() const =0
number of mothers (zero or one in most of but not all the cases)
virtual double pz() const =0
z coordinate of momentum vector
virtual void setMassConstraint()=0
set mass constraint flag
virtual bool massConstraint() const =0
do mass constraint?
virtual double vx() const =0
x coordinate of vertex position
virtual const CandidatePtr & masterClonePtr() const =0
virtual double y() const =0
rapidity
virtual double rapidity() const =0
rapidity
virtual const PolarLorentzVector & polarP4() const =0
four-momentum Lorentz vector
virtual void setPdgId(int pdgId)=0
reference operator*() const
virtual double vy() const =0
y coordinate of vertex position
virtual bool isPhoton() const =0
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
virtual size_type numberOfDaughters() const =0
number of daughters
virtual double p() const =0
magnitude of momentum vector
virtual bool hasMasterClone() const =0
virtual bool isCaloMuon() const =0
virtual Vector momentum() const =0
spatial momentum vector
Ref masterRef() const
cast master clone reference to a concrete type
virtual double mt() const =0
transverse mass
virtual double theta() const =0
momentum polar angle
virtual double vertexChi2() const =0
chi-squares
virtual bool isStandAloneMuon() const =0
virtual void setVertex(const Point &vertex)=0
set vertex
const_iterator end() const
last daughter const_iterator
virtual float dzError() const
uncertainty on dz
math::XYZTLorentzVector LorentzVector
virtual const Point & vertex() const =0
vertex position
virtual int charge() const =0
electric charge
virtual void setPz(double pz)=0
size_type numberOf() const
number of components
virtual double py() const =0
y coordinate of momentum vector
virtual void setStatus(int status)=0
set status word
size_type numberOf() const
number of components
virtual double vertexNormalizedChi2() const =0
chi-squared divided by n.d.o.f.
virtual void setThreeCharge(Charge qx3)=0
set electric charge
iterator end()
last daughter iterator
virtual void setLongLived()=0
set long lived flag
virtual double px() const =0
x coordinate of momentum vector
virtual bool hasMasterClonePtr() const =0
virtual int pdgId() const =0
PDG identifier.
virtual Candidate * clone() const =0
returns a clone of the Candidate object
candidate::iterator iterator
unsigned int index
index type
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
virtual bool isMuon() const =0
virtual ~Candidate()
destructor
iterator begin()
first daughter iterator
Candidate()
default constructor
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
virtual CovarianceMatrix vertexCovariance() const
fill SMatrix
virtual double mtSqr() const =0
transverse mass squared
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual double vz() const =0
z coordinate of vertex position
Structure Point Contains parameters of Gaussian fits to DMRs.
T get() const
get a component
const_iterator begin() const
first daughter const_iterator
math::XYZPoint Point
point in the space
virtual bool longLived() const =0
is long lived?
virtual bool overlap(const Candidate &) const =0
check overlap with another Candidate
virtual bool isElectron() const =0
virtual bool isTrackerMuon() const =0
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
virtual void setCharge(Charge q)=0
set electric charge
virtual size_t numberOfSourceCandidatePtrs() const =0
virtual Vector boostToCM() const =0
virtual void setMass(double m)=0
set particle mass
virtual double et2() const =0
transverse energy squared (use this for cut!)
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity
reference operator*() const
virtual double vertexNdof() const =0
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
virtual bool isGlobalMuon() const =0
virtual const CandidateBaseRef & masterClone() const =0
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.