1 #ifndef Candidate_Candidate_h
2 #define Candidate_Candidate_h
58 virtual int charge()
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;
113 virtual void setMass(
double m ) = 0;
114 virtual void setPz(
double pz ) = 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;
213 template<
typename Ref>
217 template<
typename T>
T get()
const {
219 else return reco::get<T>( * this );
222 template<
typename T,
typename Tag>
T get()
const {
224 else return reco::get<T, Tag>( * this );
229 else return reco::get<T>( *
this,
i );
234 else return reco::get<T, Tag>( *
this,
i );
239 else return reco::numberOf<T>( * this );
244 else return reco::numberOf<T, Tag>( * this );
255 virtual bool isMuon()
const = 0;
262 virtual bool isJet()
const = 0;
267 template<
typename,
typename,
typename>
friend struct component;
268 friend class ::OverlapChecker;
274 namespace candidate {
virtual double massSqr() const =0
mass squared
value_type const * get() const
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
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
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > LorentzVector
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.