1 #ifndef Candidate_LeafRefCandidateT_h
2 #define Candidate_LeafRefCandidateT_h
38 template <
class REF >
47 template<
typename REF>
94 template<
typename Ref>
98 template<
typename C>
C get()
const {
100 else return reco::get<C>( * this );
103 template<
typename C,
typename Tag>
C get()
const {
105 else return reco::get<C, Tag>( * this );
110 else return reco::get<C>( *
this,
i );
115 else return reco::get<C, Tag>( *
this,
i );
120 else return reco::numberOf<C>( * this );
125 else return reco::numberOf<C, Tag>( * this );
182 return p4() == o.p4() &&
vertex() == o.vertex() &&
charge() == o.charge();
virtual const CandidatePtr & masterClonePtr() const
virtual bool overlap(const Candidate &) const
check overlap with another Candidate
edm::Ref< Container > Ref
Ref masterRef() const
cast master clone reference to a concrete type
virtual const Candidate * mother(size_type) const
return mother at a given position (throws an exception)
math::XYZVector Vector
point in the space
virtual bool isConvertedPhoton() const
virtual CandidatePtr sourceCandidatePtr(size_type i) const
virtual const Point & vertex() const
vertex position (overwritten by PF...)
virtual bool isStandAloneMuon() const
unsigned int index() const
virtual const Candidate * daughter(size_type) const
return daughter at a given position (throws an exception)
virtual bool isElectron() const
virtual bool hasMasterClonePtr() const
virtual Candidate * daughter(size_type)
return daughter at a given position (throws an exception)
#define CMS_CLASS_VERSION(_version_)
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
size_type numberOf() const
number of components
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
virtual bool isCaloMuon() const
RefCore const & toRefCore() const
virtual bool isJet() const
virtual int charge() const
electric charge
size_type numberOf() const
number of components
LeafRefCandidateT()
default constructor
int Charge
electric charge type
virtual ~LeafRefCandidateT()
destructor
LeafRefCandidateT(const REF &c, float m)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
CandidateCollection daughters
collection of daughter candidates
virtual Candidate * daughter(const std::string &s)
return daughter with a specified role name
virtual size_t numberOfDaughters() const
number of daughters
math::XYZPoint Point
point in the space
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual bool isMuon() const
virtual bool isTrackerMuon() const
virtual size_t numberOfSourceCandidatePtrs() const
virtual bool isGlobalMuon() const
virtual const CandidateBaseRef & masterClone() const
virtual double phi() const
momentum azimuthal angle
edm::RefCoreWithIndex ref_
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
virtual bool isPhoton() const
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
virtual size_t numberOfMothers() const
number of mothers
virtual bool hasMasterClone() const
This only happens if the concrete Candidate type is ShallowCloneCandidate.
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
virtual const Candidate * daughter(const std::string &s) const
return daughter with a specified role name