CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends
pat::PackedGenParticle Class Reference

#include <PackedGenParticle.h>

Inheritance diagram for pat::PackedGenParticle:
reco::Candidate

Public Types

typedef reco::CandidateCollection daughters
 collection of daughter candidates More...
 
typedef unsigned int index
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector. More...
 
enum  PVAssoc { NoPV =0, PVLoose =1, PVTight =2, PVUsedInFit =3 }
 
typedef math::XYZVector Vector
 point in the space More...
 
- Public Types inherited from reco::Candidate
enum  { dimension = 3 }
 
enum  { size = dimension * (dimension + 1)/2 }
 matix size More...
 
typedef int Charge
 electric charge type More...
 
typedef candidate::const_iterator const_iterator
 
typedef math::Error< dimension >
::type 
CovarianceMatrix
 covariance error matrix (3x3) More...
 
typedef unsigned int index
 index type More...
 
typedef candidate::iterator iterator
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector. More...
 
typedef size_t size_type
 
typedef math::XYZVector Vector
 point in the space More...
 

Public Member Functions

virtual Vector boostToCM () const
 
virtual int charge () const
 electric charge More...
 
virtual PackedGenParticleclone () const
 returns a clone of the Candidate object More...
 
virtual const reco::Candidatedaughter (size_type) const
 return daughter at a given position (throws an exception) More...
 
virtual reco::Candidatedaughter (size_type)
 return daughter at a given position (throws an exception) More...
 
virtual reco::Candidatedaughter (const std::string &s)
 return daughter with a specified role name More...
 
virtual const reco::Candidatedaughter (const std::string &s) const
 return daughter with a specified role name More...
 
virtual float dxy () const
 dxy with respect to the PV ref More...
 
virtual float dxy (const Point &p) const
 dxy with respect to another point More...
 
virtual float dz () const
 dz with respect to the PV ref More...
 
virtual float dz (const Point &p) const
 dz with respect to another point More...
 
virtual double energy () const
 energy More...
 
double et () const
 transverse energy More...
 
double et2 () const
 transverse energy squared (use this for cuts)! More...
 
virtual double eta () const
 momentum pseudorapidity More...
 
virtual void fillVertexCovariance (CovarianceMatrix &v) const
 fill SMatrix More...
 
bool fromHardProcessFinalState () const
 
virtual bool hasMasterClone () const
 
virtual bool hasMasterClonePtr () const
 
virtual bool isCaloMuon () const
 
virtual bool isConvertedPhoton () const
 
bool isDirectHardProcessTauDecayProductFinalState () const
 
bool isDirectPromptTauDecayProductFinalState () const
 
virtual bool isElectron () const
 get a component More...
 
virtual bool isGlobalMuon () const
 
virtual bool isJet () const
 
virtual bool isMuon () const
 
virtual bool isPhoton () const
 
bool isPromptFinalState () const
 
virtual bool isStandAloneMuon () const
 
virtual bool isTrackerMuon () const
 
virtual bool longLived () const
 is long lived? More...
 
virtual double mass () const
 mass More...
 
virtual bool massConstraint () const
 do mass constraint? More...
 
virtual double massSqr () const
 mass squared More...
 
virtual const
reco::CandidateBaseRef
masterClone () const
 
virtual const reco::CandidatePtrmasterClonePtr () const
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
virtual Vector momentum () const
 spatial momentum vector More...
 
virtual const reco::Candidatemother (size_type) const
 return mother at a given position (throws an exception) More...
 
const reco::GenParticleRefmotherRef () const
 direct access to the mother reference (may be null) More...
 
virtual double mt () const
 transverse mass More...
 
virtual double mtSqr () const
 transverse mass squared More...
 
virtual size_t numberOfDaughters () const
 number of daughters More...
 
virtual size_t numberOfMothers () const
 number of mothers More...
 
virtual size_t numberOfSourceCandidatePtrs () const
 
virtual double p () const
 magnitude of momentum vector More...
 
virtual const LorentzVectorp4 () const
 four-momentum Lorentz vecto r More...
 
 PackedGenParticle ()
 default constructor More...
 
 PackedGenParticle (const reco::GenParticle &c)
 
 PackedGenParticle (const reco::GenParticle &c, const edm::Ref< reco::GenParticleCollection > &mother)
 
virtual int pdgId () const
 PDG identifier. More...
 
virtual double phi () const
 momentum azimuthal angle More...
 
virtual const PolarLorentzVectorpolarP4 () const
 four-momentum Lorentz vector More...
 
virtual double pt () const
 transverse momentum More...
 
virtual double px () const
 x coordinate of momentum vector More...
 
virtual double py () const
 y coordinate of momentum vector More...
 
virtual double pz () const
 z coordinate of momentum vector More...
 
virtual double rapidity () const
 rapidity More...
 
virtual void setCharge (int charge)
 set electric charge More...
 
virtual void setLongLived ()
 set long lived flag More...
 
virtual void setMass (double m)
 set particle mass More...
 
virtual void setMassConstraint ()
 set mass constraint flag More...
 
virtual void setP4 (const LorentzVector &p4)
 set 4-momentum More...
 
virtual void setP4 (const PolarLorentzVector &p4)
 set 4-momentum More...
 
virtual void setPdgId (int pdgId)
 
virtual void setPz (double pz)
 
virtual void setStatus (int status)
 set status word More...
 
virtual void setThreeCharge (int threecharge)
 set electric charge More...
 
virtual void setVertex (const Point &vertex)
 set vertex More...
 
virtual reco::CandidatePtr sourceCandidatePtr (size_type i) const
 
virtual int status () const
 status word More...
 
const reco::GenStatusFlagsstatusFlags () const
 
reco::GenStatusFlagsstatusFlags ()
 
virtual double theta () const
 momentum polar angle More...
 
virtual int threeCharge () const
 electric charge More...
 
virtual const Pointvertex () const
 vertex position More...
 
virtual double vertexChi2 () const
 chi-squares More...
 
virtual double vertexCovariance (int i, int j) const
 (i, j)-th element of error matrix, i, j = 0, ... 2 More...
 
CovarianceMatrix vertexCovariance () const
 return SMatrix More...
 
virtual double vertexNdof () const
 
virtual double vertexNormalizedChi2 () const
 chi-squared divided by n.d.o.f. More...
 
virtual double vx () const
 x coordinate of vertex position More...
 
virtual double vy () const
 y coordinate of vertex position More...
 
virtual double vz () const
 z coordinate of vertex position More...
 
virtual double y () const
 rapidity More...
 
virtual ~PackedGenParticle ()
 destructor More...
 
- Public Member Functions inherited from reco::Candidate
const_iterator begin () const
 first daughter const_iterator More...
 
iterator begin ()
 first daughter iterator More...
 
virtual const TrackbestTrack () const
 
 Candidate ()
 default constructor More...
 
virtual float dxyError () const
 uncertainty on dxy More...
 
virtual float dzError () const
 uncertainty on dz More...
 
const_iterator end () const
 last daughter const_iterator More...
 
iterator end ()
 last daughter iterator More...
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
virtual void setP4 (const PolarLorentzVector &p4)=0
 set 4-momentum More...
 
virtual void setSourceCandidatePtr (const CandidatePtr &ptr)
 Set the ptr to the source Candidate. More...
 
virtual void setVertex (const Point &vertex)=0
 set vertex More...
 
virtual ~Candidate ()
 destructor More...
 

Static Public Attributes

static const unsigned int longLivedTag = 0
 long lived flag More...
 
static const unsigned int massConstraintTag = 0
 do mass constraint flag More...
 

Protected Member Functions

virtual bool overlap (const reco::Candidate &) const
 check overlap with another Candidate More...
 
void pack (bool unpackAfterwards=true)
 
void unpack () const
 

Protected Attributes

int8_t charge_
 Charge. More...
 
float dphi_
 
float dxy_
 
float dz_
 
reco::GenParticleRef mother_
 Ref to first mother. More...
 
PolarLorentzVector p4_
 the four vector More...
 
LorentzVector p4c_
 
uint16_t packedM_
 
uint16_t packedPhi_
 
uint16_t packedPt_
 
uint16_t packedY_
 
int pdgId_
 PDG identifier. More...
 
reco::GenStatusFlags statusFlags_
 
bool unpacked_
 
Point vertex_
 vertex position More...
 

Friends

class ::OverlapChecker
 
template<typename , typename , typename >
struct component
 
class ShallowCloneCandidate
 
class ShallowClonePtrCandidate
 

Detailed Description

Definition at line 17 of file PackedGenParticle.h.

Member Typedef Documentation

collection of daughter candidates

Definition at line 20 of file PackedGenParticle.h.

typedef unsigned int pat::PackedGenParticle::index

Definition at line 30 of file PackedGenParticle.h.

Lorentz vector.

Definition at line 22 of file PackedGenParticle.h.

point in the space

Definition at line 26 of file PackedGenParticle.h.

Lorentz vector.

Definition at line 24 of file PackedGenParticle.h.

point in the space

Definition at line 28 of file PackedGenParticle.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

pat::PackedGenParticle::PackedGenParticle ( )
inline

default constructor

Definition at line 33 of file PackedGenParticle.h.

Referenced by clone().

34  : p4_(0,0,0,0), p4c_(0,0,0,0), vertex_(0,0,0), pdgId_(0), charge_(0), unpacked_(false) { }
Point vertex_
vertex position
int pdgId_
PDG identifier.
PolarLorentzVector p4_
the four vector
pat::PackedGenParticle::PackedGenParticle ( const reco::GenParticle c)
inlineexplicit

Definition at line 35 of file PackedGenParticle.h.

References pack().

36  : p4_(c.pt(), c.eta(), c.phi(), c.mass()), p4c_(p4_), vertex_(0,0,0), pdgId_(c.pdgId()), charge_(c.charge()), mother_(c.motherRef(0)), unpacked_(true),
37  statusFlags_(c.statusFlags()) { pack(); }
virtual int pdgId() const
PDG identifier.
Point vertex_
vertex position
int pdgId_
PDG identifier.
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
PolarLorentzVector p4_
the four vector
void pack(bool unpackAfterwards=true)
virtual double mass() const
mass
reco::GenParticleRef mother_
Ref to first mother.
virtual int charge() const
electric charge
Definition: LeafCandidate.h:91
daughters::value_type motherRef(size_type i=0) const
reference to mother at given position
const GenStatusFlags & statusFlags() const
Definition: GenParticle.h:41
reco::GenStatusFlags statusFlags_
virtual double phi() const
momentum azimuthal angle
pat::PackedGenParticle::PackedGenParticle ( const reco::GenParticle c,
const edm::Ref< reco::GenParticleCollection > &  mother 
)
inlineexplicit

Definition at line 38 of file PackedGenParticle.h.

References pack().

39  : p4_(c.pt(), c.eta(), c.phi(), c.mass()), p4c_(p4_), vertex_(0,0,0), pdgId_(c.pdgId()), charge_(c.charge()), mother_(mother), unpacked_(true),
40  statusFlags_(c.statusFlags()) { pack(); }
virtual int pdgId() const
PDG identifier.
Point vertex_
vertex position
int pdgId_
PDG identifier.
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
PolarLorentzVector p4_
the four vector
void pack(bool unpackAfterwards=true)
virtual double mass() const
mass
reco::GenParticleRef mother_
Ref to first mother.
virtual int charge() const
electric charge
Definition: LeafCandidate.h:91
const GenStatusFlags & statusFlags() const
Definition: GenParticle.h:41
reco::GenStatusFlags statusFlags_
virtual double phi() const
momentum azimuthal angle
pat::PackedGenParticle::~PackedGenParticle ( )
virtual

destructor

Definition at line 30 of file PackedGenParticle.cc.

30 { }

Member Function Documentation

virtual Vector pat::PackedGenParticle::boostToCM ( ) const
inlinevirtual

boost vector to boost a Lorentz vector to the particle center of mass system

Implements reco::Candidate.

Definition at line 89 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

89 { if (!unpacked_) unpack(); return p4c_.BoostToCM(); }
virtual int pat::PackedGenParticle::charge ( ) const
inlinevirtual

electric charge

Implements reco::Candidate.

Definition at line 72 of file PackedGenParticle.h.

References charge_.

Referenced by setCharge(), and threeCharge().

72  {
73  return charge_;
74  }
virtual PackedGenParticle* pat::PackedGenParticle::clone ( void  ) const
inlinevirtual

returns a clone of the Candidate object

Implements reco::Candidate.

Definition at line 195 of file PackedGenParticle.h.

References PackedGenParticle().

195  {
196  return new PackedGenParticle( *this );
197  }
PackedGenParticle()
default constructor
const reco::Candidate * pat::PackedGenParticle::daughter ( size_type  ) const
virtual

return daughter at a given position (throws an exception)

Implements reco::Candidate.

Definition at line 80 of file PackedGenParticle.cc.

80  {
81  return 0;
82 }
reco::Candidate * pat::PackedGenParticle::daughter ( size_type  )
virtual

return daughter at a given position (throws an exception)

Implements reco::Candidate.

Definition at line 102 of file PackedGenParticle.cc.

102  {
103  return 0;
104 }
reco::Candidate * pat::PackedGenParticle::daughter ( const std::string &  s)
virtual

return daughter with a specified role name

Implements reco::Candidate.

Definition at line 94 of file PackedGenParticle.cc.

References Exception, and edm::errors::UnimplementedFeature.

94  {
96  << "This Candidate type does not implement daughter(std::string). "
97  << "Please use CompositeCandidate or NamedCompositeCandidate.\n";
98 }
const reco::Candidate * pat::PackedGenParticle::daughter ( const std::string &  s) const
virtual

return daughter with a specified role name

Implements reco::Candidate.

Definition at line 88 of file PackedGenParticle.cc.

References Exception, and edm::errors::UnimplementedFeature.

88  {
90  << "This Candidate type does not implement daughter(std::string). "
91  << "Please use CompositeCandidate or NamedCompositeCandidate.\n";
92 }
virtual float pat::PackedGenParticle::dxy ( ) const
inlinevirtual

dxy with respect to the PV ref

Definition at line 164 of file PackedGenParticle.h.

References dxy_, and unpack().

Referenced by Electron.Electron::cutBasedId().

164 { unpack(); return dxy_; }
float pat::PackedGenParticle::dxy ( const Point p) const
virtual

dxy with respect to another point

Definition at line 33 of file PackedGenParticle.cc.

References funct::cos(), funct::sin(), and timeUnitHelper::unpack().

Referenced by Electron.Electron::cutBasedId().

33  {
34  unpack();
35  return -(vertex_.X()-p.X()) * std::sin(float(p4_.Phi())) + (vertex_.Y()-p.Y()) * std::cos(float(p4_.Phi()));
36 }
Point vertex_
vertex position
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PolarLorentzVector p4_
the four vector
virtual double p() const
magnitude of momentum vector
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual float pat::PackedGenParticle::dz ( ) const
inlinevirtual

dz with respect to the PV ref

Definition at line 166 of file PackedGenParticle.h.

References dz_, and unpack().

Referenced by Electron.Electron::cutBasedId().

166 { unpack(); return dz_; }
float pat::PackedGenParticle::dz ( const Point p) const
virtual

dz with respect to another point

Definition at line 37 of file PackedGenParticle.cc.

References funct::cos(), funct::sin(), and timeUnitHelper::unpack().

Referenced by Electron.Electron::cutBasedId().

37  {
38  unpack();
39  return (vertex_.Z()-p.X()) - ((vertex_.X()-p.X()) * std::cos(float(p4_.Phi())) + (vertex_.Y()-p.Y()) * std::sin(float(p4_.Phi()))) * p4_.Pz()/p4_.Pt();
40 }
Point vertex_
vertex position
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PolarLorentzVector p4_
the four vector
virtual double p() const
magnitude of momentum vector
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual double pat::PackedGenParticle::energy ( ) const
inlinevirtual

energy

Implements reco::Candidate.

Definition at line 93 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

93 { if (!unpacked_) unpack(); return p4c_.E(); }
double pat::PackedGenParticle::et ( ) const
inlinevirtual

transverse energy

Implements reco::Candidate.

Definition at line 95 of file PackedGenParticle.h.

References p4c_, and pt().

95 { return (pt()<=0) ? 0 : p4c_.Et(); }
virtual double pt() const
transverse momentum
double pat::PackedGenParticle::et2 ( ) const
inlinevirtual

transverse energy squared (use this for cuts)!

Implements reco::Candidate.

Definition at line 97 of file PackedGenParticle.h.

References p4c_, and pt().

97 { return (pt()<=0) ? 0 : p4c_.Et2(); }
virtual double pt() const
transverse momentum
virtual double pat::PackedGenParticle::eta ( ) const
inlinevirtual

momentum pseudorapidity

Implements reco::Candidate.

Definition at line 120 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

Referenced by Particle.Particle::__str__(), Muon.Muon::absEffAreaIso(), Jet.Jet::jetID(), and Jet.Jet::puJetId().

120 { if (!unpacked_) unpack(); return p4_.Eta(); }
PolarLorentzVector p4_
the four vector
void pat::PackedGenParticle::fillVertexCovariance ( CovarianceMatrix v) const
virtual

fill SMatrix

Implements reco::Candidate.

Definition at line 123 of file PackedGenParticle.cc.

References Exception, and edm::errors::UnimplementedFeature.

Referenced by vertexCovariance().

123  {
125  << "reco::ConcreteCandidate does not implement vertex covariant matrix.\n";
126 }
bool pat::PackedGenParticle::fromHardProcessFinalState ( ) const
inline

Definition at line 273 of file PackedGenParticle.h.

References reco::GenStatusFlags::fromHardProcess(), status(), and statusFlags_.

273 { return status()==1 && statusFlags_.fromHardProcess(); }
virtual int status() const
status word
bool fromHardProcess() const
reco::GenStatusFlags statusFlags_
bool pat::PackedGenParticle::hasMasterClone ( ) const
virtual

returns true if this candidate has a reference to a master clone. This only happens if the concrete Candidate type is ShallowCloneCandidate

Implements reco::Candidate.

Definition at line 51 of file PackedGenParticle.cc.

51  {
52  return false;
53 }
bool pat::PackedGenParticle::hasMasterClonePtr ( ) const
virtual

returns true if this candidate has a ptr to a master clone. This only happens if the concrete Candidate type is ShallowClonePtrCandidate

Implements reco::Candidate.

Definition at line 55 of file PackedGenParticle.cc.

55  {
56  return false;
57 }
bool pat::PackedGenParticle::isCaloMuon ( ) const
virtual

Implements reco::Candidate.

Definition at line 138 of file PackedGenParticle.cc.

138 { return false; }
bool pat::PackedGenParticle::isConvertedPhoton ( ) const
virtual

Implements reco::Candidate.

Definition at line 142 of file PackedGenParticle.cc.

142 { return false; }
bool pat::PackedGenParticle::isDirectHardProcessTauDecayProductFinalState ( ) const
inline

Definition at line 277 of file PackedGenParticle.h.

References reco::GenStatusFlags::isDirectHardProcessTauDecayProduct(), status(), and statusFlags_.

virtual int status() const
status word
bool isDirectHardProcessTauDecayProduct() const
reco::GenStatusFlags statusFlags_
bool pat::PackedGenParticle::isDirectPromptTauDecayProductFinalState ( ) const
inline

Definition at line 262 of file PackedGenParticle.h.

References reco::GenStatusFlags::isDirectPromptTauDecayProduct(), status(), and statusFlags_.

bool isDirectPromptTauDecayProduct() const
virtual int status() const
status word
reco::GenStatusFlags statusFlags_
bool pat::PackedGenParticle::isElectron ( ) const
virtual

get a component

Implements reco::Candidate.

Definition at line 128 of file PackedGenParticle.cc.

128 { return false; }
bool pat::PackedGenParticle::isGlobalMuon ( ) const
virtual

Implements reco::Candidate.

Definition at line 132 of file PackedGenParticle.cc.

Referenced by Muon.Muon::muonID().

132 { return false; }
bool pat::PackedGenParticle::isJet ( ) const
virtual

Implements reco::Candidate.

Definition at line 144 of file PackedGenParticle.cc.

144 { return false; }
bool pat::PackedGenParticle::isMuon ( ) const
virtual

Implements reco::Candidate.

Definition at line 130 of file PackedGenParticle.cc.

130 { return false; }
bool pat::PackedGenParticle::isPhoton ( ) const
virtual

Implements reco::Candidate.

Definition at line 140 of file PackedGenParticle.cc.

140 { return false; }
bool pat::PackedGenParticle::isPromptFinalState ( ) const
inline

Definition at line 258 of file PackedGenParticle.h.

References reco::GenStatusFlags::isPrompt(), status(), and statusFlags_.

258 { return status()==1 && statusFlags_.isPrompt(); }
bool isPrompt() const
virtual int status() const
status word
reco::GenStatusFlags statusFlags_
bool pat::PackedGenParticle::isStandAloneMuon ( ) const
virtual

Implements reco::Candidate.

Definition at line 134 of file PackedGenParticle.cc.

134 { return false; }
bool pat::PackedGenParticle::isTrackerMuon ( ) const
virtual

Implements reco::Candidate.

Definition at line 136 of file PackedGenParticle.cc.

136 { return false; }
bool pat::PackedGenParticle::longLived ( ) const
virtual

is long lived?

Implements reco::Candidate.

Definition at line 146 of file PackedGenParticle.cc.

146 {return false;}
virtual double pat::PackedGenParticle::mass ( ) const
inlinevirtual

mass

Implements reco::Candidate.

Definition at line 99 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

Referenced by Particle.Particle::__str__(), and DiObject.DiMuon::__str__().

99 { if (!unpacked_) unpack(); return p4_.M(); }
PolarLorentzVector p4_
the four vector
bool pat::PackedGenParticle::massConstraint ( ) const
virtual

do mass constraint?

Implements reco::Candidate.

Definition at line 148 of file PackedGenParticle.cc.

148 {return false;}
virtual double pat::PackedGenParticle::massSqr ( ) const
inlinevirtual

mass squared

Implements reco::Candidate.

Definition at line 101 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

101 { if (!unpacked_) unpack(); return p4_.M()*p4_.M(); }
PolarLorentzVector p4_
the four vector
const reco::CandidateBaseRef & pat::PackedGenParticle::masterClone ( ) const
virtual

returns ptr to master clone, if existing. Throws an exception unless the concrete Candidate type is ShallowCloneCandidate

Implements reco::Candidate.

Definition at line 45 of file PackedGenParticle.cc.

References Exception.

Referenced by masterRef().

45  {
46  throw cms::Exception("Invalid Reference")
47  << "this Candidate has no master clone reference."
48  << "Can't call masterClone() method.\n";
49 }
const reco::CandidatePtr & pat::PackedGenParticle::masterClonePtr ( ) const
virtual

returns ptr to master clone, if existing. Throws an exception unless the concrete Candidate type is ShallowClonePtrCandidate

Implements reco::Candidate.

Definition at line 60 of file PackedGenParticle.cc.

References Exception.

60  {
61  throw cms::Exception("Invalid Reference")
62  << "this Candidate has no master clone ptr."
63  << "Can't call masterClonePtr() method.\n";
64 }
template<typename Ref >
Ref pat::PackedGenParticle::masterRef ( ) const
inline

cast master clone reference to a concrete type

Definition at line 232 of file PackedGenParticle.h.

References masterClone().

232 { return masterClone().template castTo<Ref>(); }
virtual const reco::CandidateBaseRef & masterClone() const
virtual Vector pat::PackedGenParticle::momentum ( ) const
inlinevirtual

spatial momentum vector

Implements reco::Candidate.

Definition at line 86 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

86 { if (!unpacked_) unpack(); return p4c_.Vect(); }
const reco::Candidate * pat::PackedGenParticle::mother ( size_type  ) const
virtual

return mother at a given position (throws an exception)

Implements reco::Candidate.

Definition at line 84 of file PackedGenParticle.cc.

References reco::Candidate::get().

84  {
85  return mother_.get();
86 }
reco::GenParticleRef mother_
Ref to first mother.
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:242
const reco::GenParticleRef& pat::PackedGenParticle::motherRef ( ) const
inline

direct access to the mother reference (may be null)

Definition at line 54 of file PackedGenParticle.h.

References mother_.

54 { return mother_; }
reco::GenParticleRef mother_
Ref to first mother.
virtual double pat::PackedGenParticle::mt ( ) const
inlinevirtual

transverse mass

Implements reco::Candidate.

Definition at line 104 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

104 { if (!unpacked_) unpack(); return p4_.Mt(); }
PolarLorentzVector p4_
the four vector
virtual double pat::PackedGenParticle::mtSqr ( ) const
inlinevirtual

transverse mass squared

Implements reco::Candidate.

Definition at line 106 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

106 { if (!unpacked_) unpack(); return p4_.Mt2(); }
PolarLorentzVector p4_
the four vector
size_t pat::PackedGenParticle::numberOfDaughters ( ) const
virtual

number of daughters

Implements reco::Candidate.

Definition at line 66 of file PackedGenParticle.cc.

66  {
67  return 0;
68 }
size_t pat::PackedGenParticle::numberOfMothers ( ) const
virtual

number of mothers

Implements reco::Candidate.

Definition at line 70 of file PackedGenParticle.cc.

70  {
71  if(mother_.isNonnull()) return 1;
72  return 0;
73 }
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
reco::GenParticleRef mother_
Ref to first mother.
virtual size_t pat::PackedGenParticle::numberOfSourceCandidatePtrs ( ) const
inlinevirtual

return the number of source Candidates ( the candidates used to construct this Candidate)

Implements reco::Candidate.

Definition at line 64 of file PackedGenParticle.h.

64 {return 0;}
bool pat::PackedGenParticle::overlap ( const reco::Candidate o) const
protectedvirtual

check overlap with another Candidate

Implements reco::Candidate.

Definition at line 75 of file PackedGenParticle.cc.

References RecoTauCleanerPlugins::charge, reco::Candidate::charge(), reco::Candidate::p4(), p4, and reco::Candidate::vertex().

75  {
76  return p4() == o.p4() && vertex() == o.vertex() && charge() == o.charge();
77 // return p4() == o.p4() && charge() == o.charge();
78 }
virtual const Point & vertex() const
vertex position
virtual const LorentzVector & p4() const
four-momentum Lorentz vecto r
virtual const Point & vertex() const =0
vertex position
virtual int charge() const =0
electric charge
virtual int charge() const
electric charge
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
virtual double pat::PackedGenParticle::p ( ) const
inlinevirtual

magnitude of momentum vector

Implements reco::Candidate.

Definition at line 91 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

91 { if (!unpacked_) unpack(); return p4c_.P(); }
virtual const LorentzVector& pat::PackedGenParticle::p4 ( ) const
inlinevirtual

four-momentum Lorentz vecto r

Implements reco::Candidate.

Definition at line 82 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

Referenced by Tau.Tau::dxy_approx(), Tau.Tau::dz(), Jet.Jet::jetID(), and setP4().

82 { if (!unpacked_) unpack(); return p4c_; }
void pat::PackedGenParticle::pack ( bool  unpackAfterwards = true)
protected

Definition at line 7 of file PackedGenParticle.cc.

References MiniFloatConverter::float32to16(), bookConverter::max, p4_, packedM_, packedPhi_, packedPt_, packedY_, and unpack().

Referenced by pyrootRender.interactiveRender::draw(), PackedGenParticle(), setMass(), setP4(), and setPz().

7  {
9  packedY_ = int16_t(p4_.Rapidity()/6.0f*std::numeric_limits<int16_t>::max());
10  packedPhi_ = int16_t(p4_.Phi()/3.2f*std::numeric_limits<int16_t>::max());
12  if (unpackAfterwards) unpack(); // force the values to match with the packed ones
13 }
PolarLorentzVector p4_
the four vector
static uint16_t float32to16(float x)
Definition: libminifloat.h:15
virtual int pat::PackedGenParticle::pdgId ( ) const
inlinevirtual

PDG identifier.

Implements reco::Candidate.

Definition at line 174 of file PackedGenParticle.h.

References pdgId_.

Referenced by Particle.Particle::__str__(), and setPdgId().

174 { return pdgId_; }
int pdgId_
PDG identifier.
virtual double pat::PackedGenParticle::phi ( ) const
inlinevirtual

momentum azimuthal angle

Implements reco::Candidate.

Definition at line 116 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

Referenced by Particle.Particle::__str__().

116 { if (!unpacked_) unpack(); return p4_.Phi(); }
PolarLorentzVector p4_
the four vector
virtual const PolarLorentzVector& pat::PackedGenParticle::polarP4 ( ) const
inlinevirtual

four-momentum Lorentz vector

Implements reco::Candidate.

Definition at line 84 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

84 { if (!unpacked_) unpack(); return p4_; }
PolarLorentzVector p4_
the four vector
virtual double pat::PackedGenParticle::pt ( void  ) const
inlinevirtual
virtual double pat::PackedGenParticle::px ( ) const
inlinevirtual

x coordinate of momentum vector

Implements reco::Candidate.

Definition at line 108 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

108 { if (!unpacked_) unpack(); return p4c_.Px(); }
virtual double pat::PackedGenParticle::py ( ) const
inlinevirtual

y coordinate of momentum vector

Implements reco::Candidate.

Definition at line 110 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

110 { if (!unpacked_) unpack(); return p4c_.Py(); }
virtual double pat::PackedGenParticle::pz ( ) const
inlinevirtual

z coordinate of momentum vector

Implements reco::Candidate.

Definition at line 112 of file PackedGenParticle.h.

References p4c_, unpack(), and unpacked_.

Referenced by setPz().

112 { if (!unpacked_) unpack(); return p4c_.Pz(); }
virtual double pat::PackedGenParticle::rapidity ( ) const
inlinevirtual

rapidity

Implements reco::Candidate.

Definition at line 122 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

122 { if (!unpacked_) unpack(); return p4_.Rapidity(); }
PolarLorentzVector p4_
the four vector
virtual void pat::PackedGenParticle::setCharge ( int  charge)
inlinevirtual

set electric charge

Implements reco::Candidate.

Definition at line 76 of file PackedGenParticle.h.

References charge(), and charge_.

76 {charge_=charge;}
virtual int charge() const
electric charge
virtual void pat::PackedGenParticle::setLongLived ( )
inlinevirtual

set long lived flag

Implements reco::Candidate.

Definition at line 184 of file PackedGenParticle.h.

184 {} /*FIXME*/
virtual void pat::PackedGenParticle::setMass ( double  m)
inlinevirtual

set particle mass

Implements reco::Candidate.

Definition at line 138 of file PackedGenParticle.h.

References visualization-live-secondInstance_cfg::m, p4_, pack(), unpack(), and unpacked_.

138  {
139  if (!unpacked_) unpack();
140  p4_ = PolarLorentzVector(p4_.Pt(), p4_.Eta(), p4_.Phi(), m);
141  pack();
142  }
PolarLorentzVector p4_
the four vector
void pack(bool unpackAfterwards=true)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
virtual void pat::PackedGenParticle::setMassConstraint ( )
inlinevirtual

set mass constraint flag

Implements reco::Candidate.

Definition at line 190 of file PackedGenParticle.h.

190 {} /*FIXME*/
virtual void pat::PackedGenParticle::setP4 ( const LorentzVector p4)
inlinevirtual

set 4-momentum

Implements reco::Candidate.

Definition at line 126 of file PackedGenParticle.h.

References p4_, pack(), and unpack().

126  {
127  unpack(); // changing px,py,pz changes also mapping between dxy,dz and x,y,z
128  p4_ = PolarLorentzVector(p4.Pt(), p4.Eta(), p4.Phi(), p4.M());
129  pack();
130  }
PolarLorentzVector p4_
the four vector
void pack(bool unpackAfterwards=true)
virtual const LorentzVector & p4() const
four-momentum Lorentz vecto r
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
virtual void pat::PackedGenParticle::setP4 ( const PolarLorentzVector p4)
inlinevirtual

set 4-momentum

Definition at line 132 of file PackedGenParticle.h.

References p4(), p4_, pack(), and unpack().

132  {
133  unpack(); // changing px,py,pz changes also mapping between dxy,dz and x,y,z
134  p4_ = p4;
135  pack();
136  }
PolarLorentzVector p4_
the four vector
void pack(bool unpackAfterwards=true)
virtual const LorentzVector & p4() const
four-momentum Lorentz vecto r
virtual void pat::PackedGenParticle::setPdgId ( int  pdgId)
inlinevirtual

Implements reco::Candidate.

Definition at line 176 of file PackedGenParticle.h.

References pdgId(), and pdgId_.

176 { pdgId_ = pdgId; }
int pdgId_
PDG identifier.
virtual int pdgId() const
PDG identifier.
virtual void pat::PackedGenParticle::setPz ( double  pz)
inlinevirtual

Implements reco::Candidate.

Definition at line 143 of file PackedGenParticle.h.

References p4_, p4c_, pack(), pz(), and unpack().

143  {
144  unpack(); // changing px,py,pz changes also mapping between dxy,dz and x,y,z
145  p4c_ = LorentzVector(p4c_.Px(), p4c_.Py(), pz, p4c_.E());
146  p4_ = PolarLorentzVector(p4c_.Pt(), p4c_.Eta(), p4c_.Phi(), p4c_.M());
147  pack();
148  }
virtual double pz() const
z coordinate of momentum vector
PolarLorentzVector p4_
the four vector
void pack(bool unpackAfterwards=true)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual void pat::PackedGenParticle::setStatus ( int  status)
inlinevirtual

set status word

Implements reco::Candidate.

Definition at line 180 of file PackedGenParticle.h.

180 {} /*FIXME*/
virtual void pat::PackedGenParticle::setThreeCharge ( int  threecharge)
inlinevirtual

set electric charge

Implements reco::Candidate.

Definition at line 80 of file PackedGenParticle.h.

80 {}
virtual void pat::PackedGenParticle::setVertex ( const Point vertex)
inlinevirtual

set vertex

Definition at line 158 of file PackedGenParticle.h.

References vertex(), and vertex_.

158 { vertex_ = vertex; }
Point vertex_
vertex position
virtual const Point & vertex() const
vertex position
virtual reco::CandidatePtr pat::PackedGenParticle::sourceCandidatePtr ( size_type  i) const
inlinevirtual

return a Ptr to one of the source Candidates ( the candidates used to construct this Candidate)

Reimplemented from reco::Candidate.

Definition at line 67 of file PackedGenParticle.h.

67  {
68  return reco::CandidatePtr();
69  }
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
Definition: CandidateFwd.h:25
virtual int pat::PackedGenParticle::status ( ) const
inlinevirtual
const reco::GenStatusFlags& pat::PackedGenParticle::statusFlags ( ) const
inline

Definition at line 245 of file PackedGenParticle.h.

References statusFlags_.

245 { return statusFlags_; }
reco::GenStatusFlags statusFlags_
reco::GenStatusFlags& pat::PackedGenParticle::statusFlags ( )
inline

Definition at line 246 of file PackedGenParticle.h.

References statusFlags_.

246 { return statusFlags_; }
reco::GenStatusFlags statusFlags_
virtual double pat::PackedGenParticle::theta ( ) const
inlinevirtual

momentum polar angle

Implements reco::Candidate.

Definition at line 118 of file PackedGenParticle.h.

References p4_, unpack(), and unpacked_.

Referenced by Tau.Tau::zImpact().

118 { if (!unpacked_) unpack(); return p4_.Theta(); }
PolarLorentzVector p4_
the four vector
virtual int pat::PackedGenParticle::threeCharge ( ) const
inlinevirtual

electric charge

Implements reco::Candidate.

Definition at line 78 of file PackedGenParticle.h.

References charge().

78 {return charge()*3;}
virtual int charge() const
electric charge
void pat::PackedGenParticle::unpack ( ) const
protected

Definition at line 16 of file PackedGenParticle.cc.

References eta(), MiniFloatConverter::float16to32(), visualization-live-secondInstance_cfg::m, bookConverter::max, phi, EnergyCorrector::pt, edm::shift, jetcorrextractor::sign(), mathSSE::sqrt(), and detailsBasic3DVector::y.

Referenced by boostToCM(), dxy(), dz(), energy(), eta(), mass(), massSqr(), momentum(), mt(), mtSqr(), p(), p4(), pack(), phi(), polarP4(), pt(), px(), py(), pz(), rapidity(), setMass(), setP4(), setPz(), theta(), and y().

16  {
17  float y = int16_t(packedY_)*6.0f/std::numeric_limits<int16_t>::max();
20  float pz = std::tanh(y)*std::sqrt((m*m+pt*pt)/(1.-std::tanh(y)*std::tanh(y)));
21  float eta = std::asinh(pz/pt);
22  double shift = (pt<1. ? 0.1*pt : 0.1/pt); // shift particle phi to break degeneracies in angular separations
23  double sign = ( ( int(pt*10) % 2 == 0 ) ? 1 : -1 ); // introduce a pseudo-random sign of the shift
24  double phi = int16_t(packedPhi_)*3.2f/std::numeric_limits<int16_t>::max() + sign*shift*3.2/std::numeric_limits<int16_t>::max();
25  p4_ = PolarLorentzVector(pt,eta,phi,m);
26  p4c_ = p4_;
27  unpacked_ = true;
28 }
virtual double pz() const
z coordinate of momentum vector
double sign(double x)
virtual double pt() const
transverse momentum
static float float16to32(uint16_t h)
Definition: libminifloat.h:10
PolarLorentzVector p4_
the four vector
virtual double phi() const
momentum azimuthal angle
virtual double eta() const
momentum pseudorapidity
T sqrt(T t)
Definition: SSEVec.h:48
virtual double y() const
rapidity
static unsigned int const shift
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
virtual const Point& pat::PackedGenParticle::vertex ( ) const
inlinevirtual

vertex position

Implements reco::Candidate.

Definition at line 150 of file PackedGenParticle.h.

References vertex_.

Referenced by Tau.Tau::dxy(), and setVertex().

150 { return vertex_; }//{ if (fromPV_) return Point(0,0,0); else return Point(0,0,100); }
Point vertex_
vertex position
double pat::PackedGenParticle::vertexChi2 ( ) const
virtual

chi-squares

Implements reco::Candidate.

Definition at line 106 of file PackedGenParticle.cc.

106  {
107  return 0;
108 }
double pat::PackedGenParticle::vertexCovariance ( int  i,
int  j 
) const
virtual

(i, j)-th element of error matrix, i, j = 0, ... 2

Implements reco::Candidate.

Definition at line 118 of file PackedGenParticle.cc.

References Exception, and edm::errors::UnimplementedFeature.

118  {
120  << "reco::ConcreteCandidate does not implement vertex covariant matrix.\n";
121 }
CovarianceMatrix pat::PackedGenParticle::vertexCovariance ( ) const
inlinevirtual

return SMatrix

Reimplemented from reco::Candidate.

Definition at line 213 of file PackedGenParticle.h.

References fillVertexCovariance(), and visualization-live-secondInstance_cfg::m.

double pat::PackedGenParticle::vertexNdof ( ) const
virtual

Number of degrees of freedom Meant to be Double32_t for soft-assignment fitters: tracks may contribute to the vertex with fractional weights. The ndof is then = to the sum of the track weights. see e.g. CMS NOTE-2006/032, CMS NOTE-2004/002

Implements reco::Candidate.

Definition at line 110 of file PackedGenParticle.cc.

110  {
111  return 0;
112 }
double pat::PackedGenParticle::vertexNormalizedChi2 ( ) const
virtual

chi-squared divided by n.d.o.f.

Implements reco::Candidate.

Definition at line 114 of file PackedGenParticle.cc.

114  {
115  return 0;
116 }
virtual double pat::PackedGenParticle::vx ( ) const
inlinevirtual

x coordinate of vertex position

Implements reco::Candidate.

Definition at line 152 of file PackedGenParticle.h.

References vertex_.

152 { return vertex_.X(); }//{ return 0; }
Point vertex_
vertex position
virtual double pat::PackedGenParticle::vy ( ) const
inlinevirtual

y coordinate of vertex position

Implements reco::Candidate.

Definition at line 154 of file PackedGenParticle.h.

References vertex_.

154 { return vertex_.Y(); }//{ return 0; }
Point vertex_
vertex position
virtual double pat::PackedGenParticle::vz ( ) const
inlinevirtual

z coordinate of vertex position

Implements reco::Candidate.

Definition at line 156 of file PackedGenParticle.h.

References vertex_.

156 { return vertex_.Z(); }//{ if (fromPV_) return 0; else return 100; }
Point vertex_
vertex position
virtual double pat::PackedGenParticle::y ( ) const
inlinevirtual

Friends And Related Function Documentation

friend class ::OverlapChecker
friend

Definition at line 305 of file PackedGenParticle.h.

template<typename , typename , typename >
friend struct component
friend

Definition at line 304 of file PackedGenParticle.h.

friend class ShallowCloneCandidate
friend

Definition at line 306 of file PackedGenParticle.h.

friend class ShallowClonePtrCandidate
friend

Definition at line 307 of file PackedGenParticle.h.

Member Data Documentation

int8_t pat::PackedGenParticle::charge_
protected

Charge.

Definition at line 294 of file PackedGenParticle.h.

Referenced by charge(), and setCharge().

float pat::PackedGenParticle::dphi_
mutableprotected

Definition at line 290 of file PackedGenParticle.h.

float pat::PackedGenParticle::dxy_
mutableprotected

Definition at line 290 of file PackedGenParticle.h.

Referenced by dxy().

float pat::PackedGenParticle::dz_
mutableprotected

Definition at line 290 of file PackedGenParticle.h.

Referenced by dz().

const unsigned int pat::PackedGenParticle::longLivedTag = 0
static

long lived flag

Definition at line 182 of file PackedGenParticle.h.

const unsigned int pat::PackedGenParticle::massConstraintTag = 0
static

do mass constraint flag

Definition at line 188 of file PackedGenParticle.h.

reco::GenParticleRef pat::PackedGenParticle::mother_
protected

Ref to first mother.

Definition at line 296 of file PackedGenParticle.h.

Referenced by motherRef().

PolarLorentzVector pat::PackedGenParticle::p4_
mutableprotected

the four vector

Definition at line 286 of file PackedGenParticle.h.

Referenced by eta(), mass(), massSqr(), mt(), mtSqr(), pack(), phi(), polarP4(), pt(), rapidity(), setMass(), setP4(), setPz(), theta(), and y().

LorentzVector pat::PackedGenParticle::p4c_
mutableprotected

Definition at line 287 of file PackedGenParticle.h.

Referenced by boostToCM(), energy(), et(), et2(), momentum(), p(), p4(), px(), py(), pz(), and setPz().

uint16_t pat::PackedGenParticle::packedM_
protected

Definition at line 281 of file PackedGenParticle.h.

Referenced by pack().

uint16_t pat::PackedGenParticle::packedPhi_
protected

Definition at line 281 of file PackedGenParticle.h.

Referenced by pack().

uint16_t pat::PackedGenParticle::packedPt_
protected

Definition at line 281 of file PackedGenParticle.h.

Referenced by pack().

uint16_t pat::PackedGenParticle::packedY_
protected

Definition at line 281 of file PackedGenParticle.h.

Referenced by pack().

int pat::PackedGenParticle::pdgId_
protected

PDG identifier.

Definition at line 292 of file PackedGenParticle.h.

Referenced by pdgId(), and setPdgId().

reco::GenStatusFlags pat::PackedGenParticle::statusFlags_
protected
bool pat::PackedGenParticle::unpacked_
mutableprotected
Point pat::PackedGenParticle::vertex_
mutableprotected

vertex position

Definition at line 289 of file PackedGenParticle.h.

Referenced by setVertex(), vertex(), vx(), vy(), and vz().