1 #ifndef Candidate_LeafCandidate_h 2 #define Candidate_LeafCandidate_h 38 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__) 39 template<
typename... Args>
52 int pdgId = 0,
int status = 0,
bool integerCharge =
true );
54 int pdgId = 0,
int status = 0,
bool integerCharge =
true );
56 int pdgId = 0,
int status = 0,
bool integerCharge =
true );
58 int pdgId = 0,
int status = 0,
bool integerCharge =
true );
99 const LorentzVector &
p4() const final {
return m_state.
p4(); }
215 template<
typename Ref>
219 template<
typename T>
T get()
const {
221 else return reco::get<T>( * this );
224 template<
typename T,
typename Tag>
T get()
const {
226 else return reco::get<T, Tag>( * this );
231 else return reco::get<T>( *
this,
i );
236 else return reco::get<T, Tag>( *
this,
i );
241 else return reco::numberOf<T>( * this );
246 else return reco::numberOf<T, Tag>( * this );
252 bool isMuon()
const override;
259 bool isJet()
const override;
267 template<
typename,
typename,
typename>
friend struct component;
268 friend class ::OverlapChecker;
double mt() const final
transverse mass
bool isElectron() const override
double rapidity() const
repidity
value_type const * get() const
int pdgId() const final
PDG identifier.
int threeCharge() const final
electric charge
bool isMuon() const override
double px() const
x coordinate of momentum vector
double mtSqr() const final
transverse mass squared
edm::Ref< Container > Ref
double eta() const final
momentum pseudorapidity
const PolarLorentzVector & polarP4() const final
four-momentum Lorentz vector
LeafCandidate(LeafCandidate &rh)
LeafCandidate * clone() const override
returns a clone of the Candidate object
int pdgId() const
PDG identifier.
void setMass(double m) final
set particle mass
double theta() const final
momentum polar angle
double vy() const override
y coordinate of vertex position
bool isTrackerMuon() const override
double theta() const
momentum polar angle
size_type numberOf() const
number of components
const CandidatePtr & masterClonePtr() const override
size_type numberOf() const
number of components
Vector boostToCM() const final
CandidatePtr sourceCandidatePtr(size_type i) const override
double pz() const
z coordinate of momentum vector
int threeCharge() const
electric charge
bool massConstraint() const final
do mass constraint?
double rapidity() const final
rapidity
double px() const final
x coordinate of momentum vector
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
CandidateCollection daughters
collection of daughter candidates
LeafCandidate(Args &&...args)
double vertexNdof() const override
double pt() const final
transverse momentum
const Candidate * mother(size_type) const override
return mother at a given position (throws an exception)
int charge() const final
electric charge
double y() const final
rapidity
void setMassConstraint()
set mass constraint flag
double energy() const
energy
bool isJet() const override
bool isStandAloneMuon() const override
void setVertex(const Point &vertex) override
set vertex
double phi() const
momentum azimuthal angle
bool isCaloMuon() const override
bool massConstraint() const
do mass constraint?
const LorentzVector & p4() const
four-momentum Lorentz vector
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
void setCharge(Charge q) final
set electric charge
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
double vertexNormalizedChi2() const override
chi-squared divided by n.d.o.f.
Vector momentum() const final
spatial momentum vector
double pt() const
transverse momentum
void setP4(const PolarLorentzVector &p4) final
set 4-momentum
void setStatus(int status)
set status word
double mt() const
transverse mass
bool hasMasterClonePtr() const override
CovarianceMatrix vertexCovariance() const final
return SMatrix
void setLongLived() final
double et() const final
transverse energy
bool longLived() const
is long lived?
double pz() const final
z coordinate of momentum vector
bool isConvertedPhoton() const override
Ref masterRef() const
cast master clone reference to a concrete type
LeafCandidate(const Candidate &c)
void setVertex(const Point &vertex)
set vertex
const Point & vertex() const override
vertex position (overwritten by PF...)
double mtSqr() const
transverse mass squared
void setMassConstraint() final
double energy() const final
energy
size_t numberOfSourceCandidatePtrs() const override
const LorentzVector & p4() const final
four-momentum Lorentz vector
void setThreeCharge(Charge qx3)
set electric charge
double et2() const
transverse energy squared (use this for cuts)!
bool longLived() const final
is long lived?
size_t numberOfDaughters() const override
number of daughters
size_t numberOfMothers() const override
number of mothers
void setLongLived()
set long lived flag
const PolarLorentzVector & polarP4() const
four-momentum Lorentz vector
double vz() const override
z coordinate of vertex position
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalVector
vector in glovbal coordinate system
double p() const final
magnitude of momentum vector
const Candidate * daughter(size_type) const override
return daughter at a given position (throws an exception)
double et() const
transverse energy
double vy() const
y coordinate of vertex position
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
const CandidateBaseRef & masterClone() const override
double vz() const
z coordinate of vertex position
int charge() const
electric charge
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void setThreeCharge(Charge qx3) final
set electric charge
XYZPointD XYZPoint
point in space with cartesian internal representation
int status() const
status word
const Point & vertex() const
vertex position
double py() const final
y coordinate of momentum vector
double massSqr() const final
mass squared
void fillVertexCovariance(CovarianceMatrix &v) const override
fill SMatrix
~LeafCandidate() override
destructor
bool isPhoton() const override
double vertexChi2() const override
chi-squares
Vector momentum() const
spatial momentum vector
bool hasMasterClone() const override
math::XYZVector Vector
point in the space
int status() const final
status word
void construct(int qx3, float pt, float eta, float phi, float mass, const Point &vtx, int pdgId, int status)
bool overlap(const Candidate &) const override
check overlap with another Candidate
double eta() const
momentum pseudorapidity
double et2() const final
transverse energy squared (use this for cut!)
void setP4(const LorentzVector &p4)
set 4-momentum
void setStatus(int status) final
set status word
LeafCandidate & operator=(LeafCandidate &&)=default
void setPz(double pz) final
double phi() const final
momentum azimuthal angle
void setPdgId(int pdgId) final
bool isGlobalMuon() const override
double p() const
magnitude of momentum vector
double py() const
y coordinate of momentum vector
void setCharge(Charge q)
set electric charge
void setP4(const LorentzVector &p4) final
set 4-momentum
math::XYZTLorentzVector LorentzVector
Lorentz vector.
double vx() const
x coordinate of vertex position
int Charge
electric charge type
double vx() const override
x coordinate of vertex position
double mass() const final
mass
math::XYZPoint Point
point in the space
void setMass(double m)
set particle mass