CMS 3D CMS Logo

reco::PFTrajectoryPoint Class Reference

A PFTrack holds several trajectory points, which basically contain the position and momentum of a track at a given position. More...

#include <DataFormats/ParticleFlowReco/interface/PFTrajectoryPoint.h>

List of all members.

Public Types

enum  LayerType {
  ClosestApproach = 0, BeamPipeOrEndVertex = 1, PS1 = 2, PS2 = 3,
  ECALEntrance = 4, ECALShowerMax = 5, HCALEntrance = 6, HCALExit = 7,
  NLayers = 8
}
 Define the different layers where the track can be propagated. More...
typedef
ROOT::Math::PositionVector3D
< ROOT::Math::CylindricalEta3D
< Double32_t > > 
REPPoint

Public Member Functions

void calculatePositionREP ()
 calculate posrep_ once and for all
int detId () const
 measurement detId
bool isTrackerLayer () const
 is this point corresponding to an intersection with a tracker layer ?
bool isValid () const
 is this point valid ?
int layer () const
 trajectory point layer
const math::XYZTLorentzVectormomentum () const
 4-momenta quadrivector
bool operator== (const reco::PFTrajectoryPoint &other) const
 PFTrajectoryPoint (const PFTrajectoryPoint &other)
 copy
 PFTrajectoryPoint (int detId, int layer, const math::XYZPoint &posxyz, const math::XYZTLorentzVector &momentum)
 constructor from values.
 PFTrajectoryPoint ()
 default constructor. Set variables at default dummy values
const math::XYZPointposition () const
 cartesian position (x, y, z)
const REPPointpositionREP () const
 trajectory position in (rho, eta, phi) base
virtual ~PFTrajectoryPoint ()
 destructor

Private Attributes

int detId_
 detid if measurement is corresponding to a tracker layer
bool isTrackerLayer_
 Is the measurement corresponding to a tracker layer? or was it obtained by propagating the track to a certain position?
int layer_
 propagated layer
math::XYZTLorentzVector momentum_
 momentum quadrivector
REPPoint posrep_
 position in (rho, eta, phi) base (transient)
math::XYZPoint posxyz_
 cartesian position (x, y, z)

Friends

std::ostream & operator<< (std::ostream &out, const reco::PFTrajectoryPoint &trajPoint)


Detailed Description

A PFTrack holds several trajectory points, which basically contain the position and momentum of a track at a given position.

Todo:
detId_, layer_, isTrackerLayer_ seem to be redundant
Todo:
deal with origin and end vertices of PFSimParticles
Todo:
remove HCAL exit
Author:
Renaud Bruneliere
Date:
July 2006

Definition at line 26 of file PFTrajectoryPoint.h.


Member Typedef Documentation

typedef ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<Double32_t> > reco::PFTrajectoryPoint::REPPoint

Definition at line 29 of file PFTrajectoryPoint.h.


Member Enumeration Documentation

enum reco::PFTrajectoryPoint::LayerType

Define the different layers where the track can be propagated.

Enumerator:
ClosestApproach  Point of closest approach from beam axis (initial point in the case of PFSimParticle).
BeamPipeOrEndVertex 
PS1  Preshower layer 1.
PS2  Preshower layer 2.
ECALEntrance  ECAL front face.
ECALShowerMax  expected maximum of the shower in ECAL, for an e/gamma particle

Todo:
: add an ECALShowerMaxHadrons
HCALEntrance  HCAL front face.
HCALExit  HCAL exit.
NLayers 

Definition at line 32 of file PFTrajectoryPoint.h.

00032                    {
00034       ClosestApproach = 0,
00035       BeamPipeOrEndVertex = 1,       
00037       PS1 = 2,             
00039       PS2 = 3,             
00041       ECALEntrance = 4,  
00044       ECALShowerMax = 5,   
00046       HCALEntrance = 6,
00048       HCALExit = 7,
00049       NLayers = 8
00050     };


Constructor & Destructor Documentation

PFTrajectoryPoint::PFTrajectoryPoint (  ) 

default constructor. Set variables at default dummy values

Definition at line 5 of file PFTrajectoryPoint.cc.

00005                                      : 
00006   isTrackerLayer_(false),
00007   detId_(-1),
00008   layer_(-1) {}

PFTrajectoryPoint::PFTrajectoryPoint ( int  detId,
int  layer,
const math::XYZPoint posxyz,
const math::XYZTLorentzVector momentum 
)

constructor from values.

set detId to -1 if this point is not from a tracker layer

Definition at line 11 of file PFTrajectoryPoint.cc.

References isTrackerLayer_, posrep_, and posxyz_.

00014                                                                             :
00015   isTrackerLayer_(false),
00016   detId_(detId),
00017   layer_(layer),
00018   posxyz_(posxyz),
00019   momentum_(momentum) 
00020 { 
00021   if (detId) isTrackerLayer_ = true;
00022   posrep_.SetCoordinates(posxyz_.Rho(), posxyz_.Eta(), posxyz_.Phi()); 
00023 }

PFTrajectoryPoint::PFTrajectoryPoint ( const PFTrajectoryPoint other  ) 

copy

Definition at line 26 of file PFTrajectoryPoint.cc.

00026                                                                    :
00027   isTrackerLayer_(other.isTrackerLayer_),
00028   detId_(other.detId_), 
00029   layer_(other.layer_), 
00030   posxyz_(other.posxyz_), 
00031   posrep_(other.posrep_),
00032   momentum_(other.momentum_) { }

PFTrajectoryPoint::~PFTrajectoryPoint (  )  [virtual]

destructor

Definition at line 35 of file PFTrajectoryPoint.cc.

00036 {}


Member Function Documentation

void reco::PFTrajectoryPoint::calculatePositionREP (  )  [inline]

calculate posrep_ once and for all

Definition at line 94 of file PFTrajectoryPoint.h.

References posrep_, and posxyz_.

00094                                 {
00095       posrep_.SetCoordinates( posxyz_.Rho(), posxyz_.Eta(), posxyz_.Phi() );
00096     }

int reco::PFTrajectoryPoint::detId (  )  const [inline]

measurement detId

Definition at line 70 of file PFTrajectoryPoint.h.

References detId_.

Referenced by reco::operator<<().

00070 { return detId_; }

bool reco::PFTrajectoryPoint::isTrackerLayer (  )  const [inline]

is this point corresponding to an intersection with a tracker layer ?

Definition at line 82 of file PFTrajectoryPoint.h.

References detId_.

Referenced by reco::PFTrack::addPoint().

00082                                 {
00083       if(detId_ >= 0 ) return true; 
00084       else return false;
00085     }

bool reco::PFTrajectoryPoint::isValid ( void   )  const [inline]

is this point valid ?

Definition at line 76 of file PFTrajectoryPoint.h.

References detId_, and layer_.

Referenced by PFAlgo::isSatelliteCluster(), reco::PFBlockElementGsfTrack::PFBlockElementGsfTrack(), reco::PFBlockElementTrack::PFBlockElementTrack(), PFBlockAlgo::testLinkByRecHit(), PFBlockAlgo::testTrackAndECAL(), PFBlockAlgo::testTrackAndHCAL(), and PFBlockAlgo::testTrackAndPS().

00076                              {
00077       if( layer_ == -1 && detId_ == -1 ) return false;
00078       else return true;
00079     }

int reco::PFTrajectoryPoint::layer (  )  const [inline]

trajectory point layer

Definition at line 73 of file PFTrajectoryPoint.h.

References layer_.

Referenced by reco::operator<<().

00073 { return layer_; }

const math::XYZTLorentzVector& reco::PFTrajectoryPoint::momentum (  )  const [inline]

4-momenta quadrivector

Definition at line 99 of file PFTrajectoryPoint.h.

References momentum_.

Referenced by PFRootEventManager::closestParticle(), PFRootEventManager::fillOutEventWithSimParticles(), EFilter::filter(), DisplayManager::loadGRecTracks(), DisplayManager::loadGSimParticles(), reco::operator<<(), PFRootEventManager::tauBenchmark(), PFBlockAlgo::testTrackAndECAL(), VisGsfPFRecTrackTwig::update(), and VisPFRecTrackTwig::update().

00099 { return momentum_; }

bool PFTrajectoryPoint::operator== ( const reco::PFTrajectoryPoint other  )  const

Definition at line 39 of file PFTrajectoryPoint.cc.

References momentum_, and posxyz_.

00039                                                                              {
00040   if( posxyz_ == other.posxyz_ && 
00041       momentum_ == other.momentum_ ) return true;
00042   else return false;
00043 }

const math::XYZPoint& reco::PFTrajectoryPoint::position (  )  const [inline]

cartesian position (x, y, z)

Definition at line 88 of file PFTrajectoryPoint.h.

References posxyz_.

Referenced by PFRootEventManager::closestParticle(), PFRootEventManager::fillOutEventWithSimParticles(), PFAlgo::isSatelliteCluster(), DisplayManager::loadGSimParticles(), reco::operator<<(), reco::PFBlockElementGsfTrack::PFBlockElementGsfTrack(), reco::PFBlockElementTrack::PFBlockElementTrack(), PFBlockAlgo::testLinkByRecHit(), PFBlockAlgo::testTrackAndECAL(), PFBlockAlgo::testTrackAndPS(), VisGsfPFRecTrackTwig::update(), and VisPFRecTrackTwig::update().

00088 { return posxyz_; }

const REPPoint& reco::PFTrajectoryPoint::positionREP (  )  const [inline]

trajectory position in (rho, eta, phi) base

Definition at line 91 of file PFTrajectoryPoint.h.

References posrep_.

Referenced by PFBlockAlgo::testLinkByRecHit(), PFBlockAlgo::testTrackAndECAL(), and PFBlockAlgo::testTrackAndHCAL().

00091 { return posrep_; }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const reco::PFTrajectoryPoint trajPoint 
) [friend]

Definition at line 45 of file PFTrajectoryPoint.cc.

00046                                                                        {
00047   if(!out) return out;
00048   
00049   const math::XYZPoint& posxyz = trajPoint.position();
00050   
00051   out<<"Traj point id = "<<trajPoint.detId()
00052      <<", layer = "<<trajPoint.layer()
00053      <<", Eta,Phi = "<<posxyz.Eta()<<","<<posxyz.Phi()
00054      <<", X,Y = "<<posxyz.X()<<","<<posxyz.Y()
00055      <<", R,Z = "<<posxyz.Rho()<<","<<posxyz.Z()
00056      <<", E,Pt = "<<trajPoint.momentum().E()<<","<<trajPoint.momentum().Pt();
00057   
00058   return out;
00059 }


Member Data Documentation

int reco::PFTrajectoryPoint::detId_ [private]

detid if measurement is corresponding to a tracker layer

Definition at line 112 of file PFTrajectoryPoint.h.

Referenced by detId(), isTrackerLayer(), and isValid().

bool reco::PFTrajectoryPoint::isTrackerLayer_ [private]

Is the measurement corresponding to a tracker layer? or was it obtained by propagating the track to a certain position?

Definition at line 109 of file PFTrajectoryPoint.h.

Referenced by PFTrajectoryPoint().

int reco::PFTrajectoryPoint::layer_ [private]

propagated layer

Definition at line 115 of file PFTrajectoryPoint.h.

Referenced by isValid(), and layer().

math::XYZTLorentzVector reco::PFTrajectoryPoint::momentum_ [private]

momentum quadrivector

Definition at line 124 of file PFTrajectoryPoint.h.

Referenced by momentum(), and operator==().

REPPoint reco::PFTrajectoryPoint::posrep_ [private]

position in (rho, eta, phi) base (transient)

Definition at line 121 of file PFTrajectoryPoint.h.

Referenced by calculatePositionREP(), PFTrajectoryPoint(), and positionREP().

math::XYZPoint reco::PFTrajectoryPoint::posxyz_ [private]

cartesian position (x, y, z)

Definition at line 118 of file PFTrajectoryPoint.h.

Referenced by calculatePositionREP(), operator==(), PFTrajectoryPoint(), and position().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:51:22 2009 for CMSSW by  doxygen 1.5.4