CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes

reco::Particle Class Reference

#include <Particle.h>

List of all members.

Public Types

typedef int Charge
 electric charge type
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector.
typedef math::XYZPoint Point
 point in the space
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector.
typedef math::XYZVector Vector
 point in the space

Public Member Functions

Vector boostToCM () const
int charge () const
 electric charge
double energy () const
 energy
double et () const
 transverse energy
double eta () const
 momentum pseudorapidity
bool longLived () const
 is long lived?
double mass () const
 mass
double massSqr () const
 mass squared
Vector momentum () const
 spatial momentum vector
double mt () const
 transverse mass
double mtSqr () const
 transverse mass squared
double p () const
 magnitude of momentum vector
const LorentzVectorp4 () const
 four-momentum Lorentz vector
 Particle ()
 default constructor
 Particle (Charge q, const LorentzVector &p4, const Point &vertex=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values
 Particle (Charge q, const PolarLorentzVector &p4, const Point &vertex=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values
int pdgId () const
 PDG identifier.
double phi () const
 momentum azimuthal angle
const PolarLorentzVectorpolarP4 () const
 four-momentum Lorentz vector
double pt () const
 transverse momentum
double px () const
 x coordinate of momentum vector
double py () const
 y coordinate of momentum vector
double pz () const
 z coordinate of momentum vector
double rapidity () const
 repidity
void setCharge (Charge q)
 set electric charge
void setLongLived ()
 set long lived flag
void setMass (double m)
 set particle mass
void setP4 (const PolarLorentzVector &p4)
 set 4-momentum
void setP4 (const LorentzVector &p4)
 set 4-momentum
void setPdgId (int pdgId)
void setPz (double pz)
void setStatus (int status)
 set status word
void setThreeCharge (Charge qx3)
 set electric charge
void setVertex (const Point &vertex)
 set vertex
int status () const
 status word
double theta () const
 momentum polar angle
int threeCharge () const
 electric charge
const Pointvertex () const
 vertex position
double vx () const
 x coordinate of vertex position
double vy () const
 y coordinate of vertex position
double vz () const
 z coordinate of vertex position
double y () const
 repidity
virtual ~Particle ()
 destructor

Static Public Attributes

static const unsigned int longLivedTag = 65536
 long lived flag

Protected Member Functions

void cacheCartesian () const
 set internal cache
void cachePolar () const
 set internal cache
void clearCache () const
 clear internal cache

Protected Attributes

edm::BoolCache cacheCartesianFixed_
edm::BoolCache cachePolarFixed_
 has cache been set?
float eta_
float mass_
LorentzVector p4Cartesian_
 internal cache for p4
PolarLorentzVector p4Polar_
 internal cache for p4
int pdgId_
 PDG identifier.
float phi_
float pt_
 four-momentum Lorentz vector
Charge qx3_
 electric charge
int status_
 status word
Point vertex_
 vertex position

Detailed Description

Base class describing a generic reconstructed particle its main subclass is Candidate

Author:
Luca Lista, INFN
Version:
Id:
Particle.h,v 1.28 2009/09/21 08:15:50 llista Exp

Base class describing a generic reconstructed particle its main subclass is Candidate

Author:
Luca Lista, INFN
Version:
Id:
ParticleBase.h,v 1.3 2008/11/26 17:46:46 bazterra Exp

Definition at line 21 of file Particle.h.


Member Typedef Documentation

electric charge type

Definition at line 24 of file Particle.h.

Lorentz vector.

Definition at line 26 of file Particle.h.

point in the space

Definition at line 30 of file Particle.h.

Lorentz vector.

Definition at line 28 of file Particle.h.

point in the space

Definition at line 32 of file Particle.h.


Constructor & Destructor Documentation

reco::Particle::Particle ( ) [inline]

default constructor

Definition at line 34 of file Particle.h.

               :
      qx3_(0), pt_(0), eta_(0), phi_(0), mass_(0), 
      vertex_(0, 0, 0), pdgId_(0), status_(0),
      cachePolarFixed_( false ) { }
reco::Particle::Particle ( Charge  q,
const LorentzVector p4,
const Point vertex = Point( 0, 0, 0 ),
int  pdgId = 0,
int  status = 0,
bool  integerCharge = true 
) [inline]

constructor from values

Definition at line 39 of file Particle.h.

References qx3_.

                                                                         : 
      qx3_( q ), pt_( p4.pt() ), eta_( p4.eta() ), phi_( p4.phi() ), mass_( p4.mass() ),
      vertex_( vertex ), pdgId_( pdgId ), status_( status ),
      cachePolarFixed_( false ), cacheCartesianFixed_( false ) { 
      if ( integerCharge ) qx3_ *= 3;
    }
reco::Particle::Particle ( Charge  q,
const PolarLorentzVector p4,
const Point vertex = Point( 0, 0, 0 ),
int  pdgId = 0,
int  status = 0,
bool  integerCharge = true 
) [inline]

constructor from values

Definition at line 47 of file Particle.h.

References qx3_.

                                                                         : 
      qx3_( q ), pt_( p4.pt() ), eta_( p4.eta() ), phi_( p4.phi() ), mass_( p4.mass() ),
      vertex_( vertex ), pdgId_( pdgId ), status_( status ),
      cachePolarFixed_( false ), cacheCartesianFixed_( false ) { 
      if ( integerCharge ) qx3_ *= 3;
    }
virtual reco::Particle::~Particle ( ) [inline, virtual]

destructor

Definition at line 55 of file Particle.h.

{ }

Member Function Documentation

Vector reco::Particle::boostToCM ( ) const [inline]

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

Definition at line 72 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.BoostToCM(); }
void reco::Particle::cacheCartesian ( ) const [inline, protected]

set internal cache

Definition at line 189 of file Particle.h.

References cacheCartesianFixed_, cachePolar(), p4Cartesian_, and p4Polar_.

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

void reco::Particle::cachePolar ( ) const [inline, protected]

set internal cache

Definition at line 183 of file Particle.h.

References cachePolarFixed_, eta_, mass_, p4Polar_, phi_, and pt_.

Referenced by cacheCartesian(), et(), mt(), mtSqr(), polarP4(), and rapidity().

int reco::Particle::charge ( ) const [inline]

electric charge

Definition at line 57 of file Particle.h.

References qx3_.

{ return qx3_ / 3; }
void reco::Particle::clearCache ( ) const [inline, protected]

clear internal cache

Definition at line 196 of file Particle.h.

References cacheCartesianFixed_, and cachePolarFixed_.

Referenced by setMass().

                                   { 
      cachePolarFixed_ = false;
      cacheCartesianFixed_ = false;
    }
double reco::Particle::energy ( ) const [inline]

energy

Definition at line 76 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by EmDQMReco::analyze().

{ cacheCartesian(); return p4Cartesian_.E(); }  
double reco::Particle::et ( ) const [inline]

transverse energy

Definition at line 78 of file Particle.h.

References cachePolar(), and p4Polar_.

{ cachePolar(); return p4Polar_.Et(); }  
double reco::Particle::eta ( ) const [inline]

momentum pseudorapidity

Definition at line 100 of file Particle.h.

References eta_.

Referenced by TopHLTDiMuonDQM::analyze(), and PFRootEventManager::fillOutEventWithClusters().

{ return eta_; }
bool reco::Particle::longLived ( ) const [inline]

is long lived?

Definition at line 163 of file Particle.h.

References longLivedTag, and status_.

{ return status_ & longLivedTag; }
double reco::Particle::mass ( ) const [inline]

mass

Definition at line 80 of file Particle.h.

References mass_.

{ return mass_; }
double reco::Particle::massSqr ( ) const [inline]

mass squared

Definition at line 82 of file Particle.h.

References mass_.

{ return mass_ * mass_; }
Vector reco::Particle::momentum ( ) const [inline]

spatial momentum vector

Definition at line 69 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.Vect(); }
double reco::Particle::mt ( ) const [inline]

transverse mass

Definition at line 84 of file Particle.h.

References cachePolar(), and p4Polar_.

{ cachePolar(); return p4Polar_.Mt(); }
double reco::Particle::mtSqr ( ) const [inline]

transverse mass squared

Definition at line 86 of file Particle.h.

References cachePolar(), and p4Polar_.

{ cachePolar(); return p4Polar_.Mt2(); }
double reco::Particle::p ( ) const [inline]

magnitude of momentum vector

Definition at line 74 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.P(); }
const LorentzVector& reco::Particle::p4 ( ) const [inline]
int reco::Particle::pdgId ( ) const [inline]

PDG identifier.

Definition at line 151 of file Particle.h.

References pdgId_.

Referenced by TopHLTDiMuonDQM::analyze(), and setPdgId().

{ return pdgId_; }
double reco::Particle::phi ( ) const [inline]

momentum azimuthal angle

Definition at line 96 of file Particle.h.

References phi_.

Referenced by TopHLTDiMuonDQM::analyze(), and PFRootEventManager::fillOutEventWithClusters().

{ return phi_; }
const PolarLorentzVector& reco::Particle::polarP4 ( ) const [inline]

four-momentum Lorentz vector

Definition at line 67 of file Particle.h.

References cachePolar(), and p4Polar_.

{ cachePolar(); return p4Polar_; }
double reco::Particle::pt ( ) const [inline]

transverse momentum

Definition at line 94 of file Particle.h.

References pt_.

Referenced by IsMuMatchedToHLTSingleMu().

{ return pt_; }
double reco::Particle::px ( ) const [inline]

x coordinate of momentum vector

Definition at line 88 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.Px(); }
double reco::Particle::py ( ) const [inline]

y coordinate of momentum vector

Definition at line 90 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.Py(); }
double reco::Particle::pz ( ) const [inline]

z coordinate of momentum vector

Definition at line 92 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.Pz(); }
double reco::Particle::rapidity ( ) const [inline]

repidity

Definition at line 102 of file Particle.h.

References cachePolar(), and p4Polar_.

Referenced by y().

{ cachePolar(); return p4Polar_.Rapidity(); }
void reco::Particle::setCharge ( Charge  q) [inline]

set electric charge

Definition at line 59 of file Particle.h.

References qx3_.

{ qx3_ = q * 3; }
void reco::Particle::setLongLived ( ) [inline]

set long lived flag

Definition at line 161 of file Particle.h.

References longLivedTag, and status_.

void reco::Particle::setMass ( double  m) [inline]

set particle mass

Definition at line 127 of file Particle.h.

References clearCache(), m, and mass_.

                             { 
      mass_ = m; 
      clearCache(); 
    }
void reco::Particle::setP4 ( const PolarLorentzVector p4) [inline]

set 4-momentum

Definition at line 117 of file Particle.h.

References cacheCartesianFixed_, cachePolarFixed_, eta_, mass_, p4(), p4Polar_, phi_, and pt_.

                                                { 
      p4Polar_ = p4;
      pt_ = p4Polar_.pt();
      eta_ = p4Polar_.eta();
      phi_ = p4Polar_.phi();
      mass_ = p4Polar_.mass();
      cachePolarFixed_ = true;
      cacheCartesianFixed_ = false;            
    }
void reco::Particle::setP4 ( const LorentzVector p4) [inline]

set 4-momentum

Definition at line 106 of file Particle.h.

References cacheCartesianFixed_, cachePolarFixed_, eta_, mass_, p4(), p4Cartesian_, p4Polar_, phi_, and pt_.

                                           { 
      p4Cartesian_ = p4;
      p4Polar_ = p4;
      pt_ = p4Polar_.pt();
      eta_ = p4Polar_.eta();
      phi_ = p4Polar_.phi();
      mass_ = p4Polar_.mass();
      cachePolarFixed_ = true;
      cacheCartesianFixed_ = true;      
    }
void reco::Particle::setPdgId ( int  pdgId) [inline]

Definition at line 153 of file Particle.h.

References pdgId(), and pdgId_.

Referenced by TtDilepEvtSolution::getLeptNeg(), and TtDilepEvtSolution::getLeptPos().

{ pdgId_ = pdgId; }
void reco::Particle::setPz ( double  pz) [inline]

Definition at line 131 of file Particle.h.

References cacheCartesian(), eta_, mass_, p4Cartesian_, p4Polar_, phi_, and pt_.

                            {
      cacheCartesian();
      p4Cartesian_.SetPz(pz);
      p4Polar_ = p4Cartesian_;
      pt_ = p4Polar_.pt();
      eta_ = p4Polar_.eta();
      phi_ = p4Polar_.phi();
      mass_ = p4Polar_.mass();
    }
void reco::Particle::setStatus ( int  status) [inline]

set status word

Definition at line 157 of file Particle.h.

References status(), and status_.

{ status_ = status; }
void reco::Particle::setThreeCharge ( Charge  qx3) [inline]

set electric charge

Definition at line 63 of file Particle.h.

References qx3_.

{ qx3_ = qx3; }
void reco::Particle::setVertex ( const Point vertex) [inline]

set vertex

Definition at line 149 of file Particle.h.

References vertex(), and vertex_.

{ vertex_ = vertex; }
int reco::Particle::status ( ) const [inline]

status word

Definition at line 155 of file Particle.h.

References status_.

Referenced by setStatus().

{ return status_; }
double reco::Particle::theta ( ) const [inline]

momentum polar angle

Definition at line 98 of file Particle.h.

References cacheCartesian(), and p4Cartesian_.

{ cacheCartesian(); return p4Cartesian_.Theta(); }
int reco::Particle::threeCharge ( ) const [inline]

electric charge

Definition at line 61 of file Particle.h.

References qx3_.

{ return qx3_; }
const Point& reco::Particle::vertex ( ) const [inline]

vertex position

Definition at line 141 of file Particle.h.

References vertex_.

Referenced by setVertex().

{ return vertex_; }
double reco::Particle::vx ( ) const [inline]

x coordinate of vertex position

Definition at line 143 of file Particle.h.

References vertex_.

{ return vertex_.X(); }
double reco::Particle::vy ( ) const [inline]

y coordinate of vertex position

Definition at line 145 of file Particle.h.

References vertex_.

{ return vertex_.Y(); }
double reco::Particle::vz ( ) const [inline]

z coordinate of vertex position

Definition at line 147 of file Particle.h.

References vertex_.

{ return vertex_.Z(); }
double reco::Particle::y ( ) const [inline]

repidity

Definition at line 104 of file Particle.h.

References rapidity().

{ return rapidity(); }

Member Data Documentation

Definition at line 181 of file Particle.h.

Referenced by cacheCartesian(), clearCache(), and setP4().

has cache been set?

Definition at line 181 of file Particle.h.

Referenced by cachePolar(), clearCache(), and setP4().

float reco::Particle::eta_ [protected]

Definition at line 169 of file Particle.h.

Referenced by cachePolar(), eta(), setP4(), and setPz().

const unsigned int reco::Particle::longLivedTag = 65536 [static]

long lived flag

Definition at line 159 of file Particle.h.

Referenced by longLived(), and setLongLived().

float reco::Particle::mass_ [protected]

Definition at line 169 of file Particle.h.

Referenced by cachePolar(), mass(), massSqr(), setMass(), setP4(), and setPz().

internal cache for p4

Definition at line 179 of file Particle.h.

Referenced by boostToCM(), cacheCartesian(), energy(), momentum(), p(), p4(), px(), py(), pz(), setP4(), setPz(), and theta().

internal cache for p4

Definition at line 177 of file Particle.h.

Referenced by cacheCartesian(), cachePolar(), et(), mt(), mtSqr(), polarP4(), rapidity(), setP4(), and setPz().

int reco::Particle::pdgId_ [protected]

PDG identifier.

Definition at line 173 of file Particle.h.

Referenced by pdgId(), and setPdgId().

float reco::Particle::phi_ [protected]

Definition at line 169 of file Particle.h.

Referenced by cachePolar(), phi(), setP4(), and setPz().

float reco::Particle::pt_ [protected]

four-momentum Lorentz vector

Definition at line 169 of file Particle.h.

Referenced by cachePolar(), pt(), setP4(), and setPz().

electric charge

Definition at line 167 of file Particle.h.

Referenced by charge(), Particle(), setCharge(), setThreeCharge(), and threeCharge().

int reco::Particle::status_ [protected]

status word

Definition at line 175 of file Particle.h.

Referenced by longLived(), setLongLived(), setStatus(), and status().

vertex position

Definition at line 171 of file Particle.h.

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