CMS 3D CMS Logo

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

ParticleBase Class Reference

#include <ParticleBase.h>

Inheritance diagram for ParticleBase:
TrackingParticle

List of all members.

Public Types

typedef int Charge
 electric charge type
typedef math::XYZTLorentzVectorD LorentzVector
 Lorentz vector.
typedef math::XYZPointD Point
 point in the space
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector.
typedef math::XYZVectorD 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
 ParticleBase ()
 default constructor
 ParticleBase (Charge q, const LorentzVector &p4, const Point &vertex=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values
 ParticleBase (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 ~ParticleBase ()
 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

Definition at line 19 of file ParticleBase.h.


Member Typedef Documentation

typedef int ParticleBase::Charge

electric charge type

Definition at line 23 of file ParticleBase.h.

Lorentz vector.

Definition at line 25 of file ParticleBase.h.

point in the space

Definition at line 29 of file ParticleBase.h.

Lorentz vector.

Definition at line 27 of file ParticleBase.h.

point in the space

Definition at line 31 of file ParticleBase.h.


Constructor & Destructor Documentation

ParticleBase::ParticleBase ( ) [inline]

default constructor

Definition at line 33 of file ParticleBase.h.

: cachePolarFixed_( false ) { }
ParticleBase::ParticleBase ( 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 35 of file ParticleBase.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;
    }
ParticleBase::ParticleBase ( 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 44 of file ParticleBase.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 ParticleBase::~ParticleBase ( ) [inline, virtual]

destructor

Definition at line 53 of file ParticleBase.h.

{ }

Member Function Documentation

Vector ParticleBase::boostToCM ( ) const [inline]

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

Definition at line 94 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

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

set internal cache

Definition at line 311 of file ParticleBase.h.

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

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

void ParticleBase::cachePolar ( ) const [inline, protected]

set internal cache

Definition at line 304 of file ParticleBase.h.

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

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

int ParticleBase::charge ( void  ) const [inline]
void ParticleBase::clearCache ( ) const [inline, protected]

clear internal cache

Definition at line 319 of file ParticleBase.h.

References cacheCartesianFixed_, and cachePolarFixed_.

Referenced by setMass().

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

energy

Definition at line 106 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

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

transverse energy

Definition at line 112 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

momentum pseudorapidity

Definition at line 174 of file ParticleBase.h.

References eta_.

Referenced by RecoMuonValidator::MuonME::fill(), and ShallowSimTracksProducer::produce().

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

is long lived?

Definition at line 281 of file ParticleBase.h.

References longLivedTag, and status_.

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

mass

Definition at line 118 of file ParticleBase.h.

References mass_.

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

mass squared

Definition at line 123 of file ParticleBase.h.

References mass_.

    {
        return mass_ * mass_;
    }
Vector ParticleBase::momentum ( ) const [inline]
double ParticleBase::mt ( ) const [inline]

transverse mass

Definition at line 128 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

transverse mass squared

Definition at line 134 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

magnitude of momentum vector

Definition at line 100 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by RecoMuonValidator::MuonME::fill(), and ShallowSimTracksProducer::produce().

    {
        cacheCartesian();
        return p4Cartesian_.P();
    }
const LorentzVector& ParticleBase::p4 ( ) const [inline]

four-momentum Lorentz vector

Definition at line 75 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by operator<<(), and setP4().

    {
        cacheCartesian();
        return p4Cartesian_;
    }
int ParticleBase::pdgId ( ) const [inline]

PDG identifier.

Reimplemented in TrackingParticle.

Definition at line 254 of file ParticleBase.h.

References pdgId_.

Referenced by setPdgId().

    {
        return pdgId_;
    }
double ParticleBase::phi ( void  ) const [inline]

momentum azimuthal angle

Definition at line 163 of file ParticleBase.h.

References phi_.

Referenced by RecoMuonValidator::MuonME::fill(), and ShallowSimTracksProducer::produce().

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

four-momentum Lorentz vector

Definition at line 81 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

transverse momentum

Definition at line 158 of file ParticleBase.h.

References pt_.

Referenced by RecoMuonValidator::MuonME::fill(), and ShallowSimTracksProducer::produce().

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

x coordinate of momentum vector

Definition at line 140 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

y coordinate of momentum vector

Definition at line 146 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

z coordinate of momentum vector

Definition at line 152 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

repidity

Definition at line 179 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

Referenced by y().

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

set electric charge

Definition at line 60 of file ParticleBase.h.

References qx3_.

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

set long lived flag

Definition at line 276 of file ParticleBase.h.

References longLivedTag, and status_.

void ParticleBase::setMass ( double  m) [inline]

set particle mass

Definition at line 213 of file ParticleBase.h.

References clearCache(), m, and mass_.

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

set 4-momentum

Definition at line 202 of file ParticleBase.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 ParticleBase::setP4 ( const LorentzVector p4) [inline]

set 4-momentum

Definition at line 190 of file ParticleBase.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 ParticleBase::setPdgId ( int  pdgId) [inline]

Definition at line 259 of file ParticleBase.h.

References pdgId(), and pdgId_.

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

Definition at line 218 of file ParticleBase.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 ParticleBase::setStatus ( int  status) [inline]

set status word

Definition at line 269 of file ParticleBase.h.

References status(), and status_.

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

set electric charge

Definition at line 70 of file ParticleBase.h.

References qx3_.

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

set vertex

Definition at line 249 of file ParticleBase.h.

References vertex(), and vertex_.

    {
        vertex_ = vertex;
    }
int ParticleBase::status ( void  ) const [inline]

status word

Definition at line 264 of file ParticleBase.h.

References status_.

Referenced by TrackingParticleSelector::operator()(), and setStatus().

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

momentum polar angle

Definition at line 168 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by ShallowSimTracksProducer::produce().

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

electric charge

Definition at line 65 of file ParticleBase.h.

References qx3_.

    {
        return qx3_;
    }
const Point& ParticleBase::vertex ( ) const [inline]
double ParticleBase::vx ( ) const [inline]

x coordinate of vertex position

Definition at line 234 of file ParticleBase.h.

References vertex_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

y coordinate of vertex position

Definition at line 239 of file ParticleBase.h.

References vertex_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

z coordinate of vertex position

Definition at line 244 of file ParticleBase.h.

References vertex_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

repidity

Definition at line 185 of file ParticleBase.h.

References rapidity().

    {
        return rapidity();
    }

Member Data Documentation

Definition at line 302 of file ParticleBase.h.

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

has cache been set?

Definition at line 302 of file ParticleBase.h.

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

float ParticleBase::eta_ [protected]

Definition at line 290 of file ParticleBase.h.

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

const unsigned int ParticleBase::longLivedTag = 65536 [static]

long lived flag

Definition at line 274 of file ParticleBase.h.

Referenced by longLived(), and setLongLived().

float ParticleBase::mass_ [protected]

Definition at line 290 of file ParticleBase.h.

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

internal cache for p4

Definition at line 300 of file ParticleBase.h.

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

internal cache for p4

Definition at line 298 of file ParticleBase.h.

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

int ParticleBase::pdgId_ [protected]

PDG identifier.

Reimplemented in TrackingParticle.

Definition at line 294 of file ParticleBase.h.

Referenced by pdgId(), and setPdgId().

float ParticleBase::phi_ [protected]

Definition at line 290 of file ParticleBase.h.

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

float ParticleBase::pt_ [protected]

four-momentum Lorentz vector

Definition at line 290 of file ParticleBase.h.

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

electric charge

Definition at line 288 of file ParticleBase.h.

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

int ParticleBase::status_ [protected]

status word

Definition at line 296 of file ParticleBase.h.

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

vertex position

Definition at line 292 of file ParticleBase.h.

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