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

bool cacheCartesianFixed_
bool 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 18 of file ParticleBase.h.


Member Typedef Documentation

typedef int ParticleBase::Charge

electric charge type

Definition at line 22 of file ParticleBase.h.

Lorentz vector.

Definition at line 24 of file ParticleBase.h.

point in the space

Definition at line 28 of file ParticleBase.h.

Lorentz vector.

Definition at line 26 of file ParticleBase.h.

point in the space

Definition at line 30 of file ParticleBase.h.


Constructor & Destructor Documentation

ParticleBase::ParticleBase ( ) [inline]

default constructor

Definition at line 32 of file ParticleBase.h.

: cachePolarFixed_( false ), cacheCartesianFixed_( 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 34 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 43 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 52 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 93 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

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

set internal cache

Definition at line 310 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 303 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 318 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 105 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

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

transverse energy

Definition at line 111 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

momentum pseudorapidity

Definition at line 173 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 280 of file ParticleBase.h.

References longLivedTag, and status_.

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

mass

Definition at line 117 of file ParticleBase.h.

References mass_.

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

mass squared

Definition at line 122 of file ParticleBase.h.

References mass_.

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

transverse mass

Definition at line 127 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

transverse mass squared

Definition at line 133 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

magnitude of momentum vector

Definition at line 99 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 74 of file ParticleBase.h.

References cacheCartesian(), and p4Cartesian_.

Referenced by MuonMCClassifier::convertAndPush(), operator<<(), and setP4().

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

PDG identifier.

Reimplemented in TrackingParticle.

Definition at line 253 of file ParticleBase.h.

References pdgId_.

Referenced by setPdgId().

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

momentum azimuthal angle

Definition at line 162 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 80 of file ParticleBase.h.

References cachePolar(), and p4Polar_.

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

transverse momentum

Definition at line 157 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 139 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 145 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 151 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 178 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 59 of file ParticleBase.h.

References qx3_.

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

set long lived flag

Definition at line 275 of file ParticleBase.h.

References longLivedTag, and status_.

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

set particle mass

Definition at line 212 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 201 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 189 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 258 of file ParticleBase.h.

References pdgId(), and pdgId_.

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

Definition at line 217 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 268 of file ParticleBase.h.

References status(), and status_.

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

set electric charge

Definition at line 69 of file ParticleBase.h.

References qx3_.

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

set vertex

Definition at line 248 of file ParticleBase.h.

References vertex(), and vertex_.

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

status word

Definition at line 263 of file ParticleBase.h.

References status_.

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

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

momentum polar angle

Definition at line 167 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 64 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 233 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 238 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 243 of file ParticleBase.h.

References vertex_.

Referenced by FWTrackingParticleProxyBuilder::build().

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

repidity

Definition at line 184 of file ParticleBase.h.

References rapidity().

    {
        return rapidity();
    }

Member Data Documentation

bool ParticleBase::cacheCartesianFixed_ [mutable, protected]

Definition at line 301 of file ParticleBase.h.

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

bool ParticleBase::cachePolarFixed_ [mutable, protected]

has cache been set?

Definition at line 301 of file ParticleBase.h.

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

float ParticleBase::eta_ [protected]

Definition at line 289 of file ParticleBase.h.

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

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

long lived flag

Definition at line 273 of file ParticleBase.h.

Referenced by longLived(), and setLongLived().

float ParticleBase::mass_ [protected]

Definition at line 289 of file ParticleBase.h.

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

internal cache for p4

Definition at line 299 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 297 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 293 of file ParticleBase.h.

Referenced by pdgId(), and setPdgId().

float ParticleBase::phi_ [protected]

Definition at line 289 of file ParticleBase.h.

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

float ParticleBase::pt_ [protected]

four-momentum Lorentz vector

Definition at line 289 of file ParticleBase.h.

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

electric charge

Definition at line 287 of file ParticleBase.h.

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

int ParticleBase::status_ [protected]

status word

Definition at line 295 of file ParticleBase.h.

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

vertex position

Definition at line 291 of file ParticleBase.h.

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