CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Attributes | Friends
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 <PFTrajectoryPoint.h>

Public Types

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

Public Member Functions

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

Static Public Member Functions

static LayerType layerTypeByName (const std::string &name)
 

Static Public Attributes

static const std::array
< std::string, NLayers
layerTypeNames
 

Private Attributes

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

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.

Author
Renaud Bruneliere
Date
July 2006

Definition at line 26 of file PFTrajectoryPoint.h.

Member Typedef Documentation

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

Definition at line 31 of file PFTrajectoryPoint.h.

Member Enumeration Documentation

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

HCALEntrance 

HCAL front face.

HCALExit 

HCAL exit.

HOLayer 

HO layer.

VFcalEntrance 

VFcal(HF) front face.

NLayers 
Unknown 

Definition at line 34 of file PFTrajectoryPoint.h.

34  {
36  ClosestApproach = 0,
39  PS1 = 2,
41  PS2 = 3,
43  ECALEntrance = 4,
46  ECALShowerMax = 5,
48  HCALEntrance = 6,
50  HCALExit = 7,
52  HOLayer = 8,
54  VFcalEntrance = 9,
55  // Number of valid layers
56  NLayers = 10,
57  // Unknown
58  Unknown = -1
59  };
Point of closest approach from beam axis (initial point in the case of PFSimParticle) ...

Constructor & Destructor Documentation

PFTrajectoryPoint::PFTrajectoryPoint ( )

default constructor. Set variables at default dummy values

Definition at line 20 of file PFTrajectoryPoint.cc.

20 : isTrackerLayer_(false), detId_(-1), layer_(-1) {}
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...
int layer_
propagated layer
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 22 of file PFTrajectoryPoint.cc.

References isTrackerLayer_, posrep_, and posxyz_.

27  if (detId)
28  isTrackerLayer_ = true;
29  posrep_.SetCoordinates(posxyz_.Rho(), posxyz_.Eta(), posxyz_.Phi());
30 }
int detId_
detid if measurement is corresponding to a tracker layer
math::XYZPoint posxyz_
cartesian position (x, y, z)
int layer() const
trajectory point layer
bool isTrackerLayer_
Is the measurement corresponding to a tracker layer? or was it obtained by propagating the track to a...
const math::XYZTLorentzVector & momentum() const
4-momenta quadrivector
int layer_
propagated layer
math::XYZTLorentzVector momentum_
momentum quadrivector
int detId() const
measurement detId
REPPoint posrep_
position in (rho, eta, phi) base (transient)
PFTrajectoryPoint::PFTrajectoryPoint ( const PFTrajectoryPoint other)

copy

Definition at line 32 of file PFTrajectoryPoint.cc.

34  detId_(other.detId_),
35  layer_(other.layer_),
36  posxyz_(other.posxyz_),
37  posrep_(other.posrep_),
38  momentum_(other.momentum_) {}
int detId_
detid if measurement is corresponding to a tracker layer
math::XYZPoint posxyz_
cartesian position (x, y, z)
bool isTrackerLayer_
Is the measurement corresponding to a tracker layer? or was it obtained by propagating the track to a...
int layer_
propagated layer
math::XYZTLorentzVector momentum_
momentum quadrivector
REPPoint posrep_
position in (rho, eta, phi) base (transient)
PFTrajectoryPoint::~PFTrajectoryPoint ( )
virtual

destructor

Definition at line 40 of file PFTrajectoryPoint.cc.

40 {}

Member Function Documentation

void reco::PFTrajectoryPoint::calculatePositionREP ( )
inline

calculate posrep_ once and for all

Definition at line 106 of file PFTrajectoryPoint.h.

References posrep_, and posxyz_.

106 { posrep_.SetCoordinates(posxyz_.Rho(), posxyz_.Eta(), posxyz_.Phi()); }
math::XYZPoint posxyz_
cartesian position (x, y, z)
REPPoint posrep_
position in (rho, eta, phi) base (transient)
int reco::PFTrajectoryPoint::detId ( ) const
inline

measurement detId

Definition at line 78 of file PFTrajectoryPoint.h.

References detId_.

Referenced by reco::operator<<().

78 { return detId_; }
int detId_
detid if measurement is corresponding to a tracker layer
bool reco::PFTrajectoryPoint::isTrackerLayer ( ) const
inline

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

Definition at line 92 of file PFTrajectoryPoint.h.

References detId_.

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

92  {
93  if (detId_ >= 0)
94  return true;
95  else
96  return false;
97  }
int detId_
detid if measurement is corresponding to a tracker layer
bool reco::PFTrajectoryPoint::isValid ( void  ) const
inline
int reco::PFTrajectoryPoint::layer ( ) const
inline

trajectory point layer

Definition at line 81 of file PFTrajectoryPoint.h.

References layer_.

Referenced by geometryXMLparser.DTAlignable::index(), geometryXMLparser.CSCAlignable::index(), and reco::operator<<().

81 { return layer_; }
int layer_
propagated layer
PFTrajectoryPoint::LayerType PFTrajectoryPoint::layerTypeByName ( const std::string &  name)
static

Definition at line 42 of file PFTrajectoryPoint.cc.

References HLT_FULL_cff::distance, spr::find(), layerTypeNames, mergeVDriftHistosByStation::name, and Unknown.

Referenced by KDTreeLinkerTrackHcal::KDTreeLinkerTrackHcal(), and TrackAndHCALLinker::TrackAndHCALLinker().

42  {
43  auto it = std::find(layerTypeNames.begin(), layerTypeNames.end(), name);
44  if (it == layerTypeNames.end()) {
45  return Unknown; // better this or throw()?
46  }
47  int index = std::distance(layerTypeNames.begin(), it);
48  return LayerType(index);
49 }
static const std::array< std::string, NLayers > layerTypeNames
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
LayerType
Define the different layers where the track can be propagated.
const math::XYZTLorentzVector& reco::PFTrajectoryPoint::momentum ( ) const
inline

4-momenta quadrivector

Definition at line 109 of file PFTrajectoryPoint.h.

References momentum_.

Referenced by reco::operator<<(), ConvBremPFTrackFinder::runConvBremFinder(), KDTreeLinkerTrackEcal::searchLinks(), and LinkByRecHit::testTrackAndClusterByRecHit().

109 { return momentum_; }
math::XYZTLorentzVector momentum_
momentum quadrivector
bool PFTrajectoryPoint::operator== ( const reco::PFTrajectoryPoint other) const

Definition at line 51 of file PFTrajectoryPoint.cc.

References momentum_, and posxyz_.

51  {
52  if (posxyz_ == other.posxyz_ && momentum_ == other.momentum_)
53  return true;
54  else
55  return false;
56 }
math::XYZPoint posxyz_
cartesian position (x, y, z)
math::XYZTLorentzVector momentum_
momentum quadrivector
const math::XYZPoint& reco::PFTrajectoryPoint::position ( ) const
inline
const REPPoint& reco::PFTrajectoryPoint::positionREP ( ) const
inline

Friends And Related Function Documentation

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

Member Data Documentation

int reco::PFTrajectoryPoint::detId_
private

detid if measurement is corresponding to a tracker layer

Definition at line 121 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 118 of file PFTrajectoryPoint.h.

Referenced by PFTrajectoryPoint().

int reco::PFTrajectoryPoint::layer_
private

propagated layer

Definition at line 124 of file PFTrajectoryPoint.h.

Referenced by isValid(), and layer().

std::array< std::string, PFTrajectoryPoint::NLayers > const PFTrajectoryPoint::layerTypeNames
static
Initial value:
{{"ClosestApproach",
"BeamPipeOrEndVertex",
"PS1",
"PS2",
"ECALEntrance",
"ECALShowerMax",
"HCALEntrance",
"HCALExit",
"HOLayer",
"VFcalEntrance"}}

Definition at line 61 of file PFTrajectoryPoint.h.

Referenced by layerTypeByName().

math::XYZTLorentzVector reco::PFTrajectoryPoint::momentum_
private

momentum quadrivector

Definition at line 133 of file PFTrajectoryPoint.h.

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

REPPoint reco::PFTrajectoryPoint::posrep_
private

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

Definition at line 130 of file PFTrajectoryPoint.h.

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

math::XYZPoint reco::PFTrajectoryPoint::posxyz_
private

cartesian position (x, y, z)

Definition at line 127 of file PFTrajectoryPoint.h.

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