CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFTrajectoryPoint.h
Go to the documentation of this file.
1 #ifndef DataFormats_ParticleFlowReco_PFTrajectoryPoint_h
2 #define DataFormats_ParticleFlowReco_PFTrajectoryPoint_h
3 
5 #include <vector>
6 #include <map>
7 #include <iosfwd>
8 
10 #include "Rtypes.h"
12 #include "Math/GenVector/PositionVector3D.h"
13 
14 namespace reco {
15 
27 
28  public:
29  typedef ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<Double32_t> > REPPoint;
30 
32  enum LayerType {
37  PS1 = 2,
39  PS2 = 3,
48  HCALExit = 7,
50  HOLayer = 8,
51 
52  NLayers = 9
53  };
54 
57 
61  int layer,
62  const math::XYZPoint& posxyz,
64 
67 
69  virtual ~PFTrajectoryPoint();
70 
71 
73  int detId() const { return detId_; }
74 
76  int layer() const { return layer_; }
77 
79  bool isValid() const {
80  if( layer_ == -1 && detId_ == -1 ) return false;
81  else return true;
82  }
83 
85  bool isTrackerLayer() const {
86  if(detId_ >= 0 ) return true;
87  else return false;
88  }
89 
91  const math::XYZPoint& position() const { return posxyz_; }
92 
94  const REPPoint& positionREP() const { return posrep_; }
95 
98  posrep_.SetCoordinates( posxyz_.Rho(), posxyz_.Eta(), posxyz_.Phi() );
99  }
100 
102  const math::XYZTLorentzVector& momentum() const { return momentum_; }
103 
104  bool operator==(const reco::PFTrajectoryPoint& other) const;
105 
106  friend std::ostream& operator<<(std::ostream& out, const reco::PFTrajectoryPoint& trajPoint);
107 
108  private:
109 
113 
115  int detId_;
116 
118  int layer_;
119 
122 
125 
128 
129  };
130 
131  std::ostream& operator<<(std::ostream& out, const reco::PFTrajectoryPoint& trajPoint);
132 }
133 
134 #endif
const REPPoint & positionREP() const
trajectory position in (rho, eta, phi) base
bool operator==(const reco::PFTrajectoryPoint &other) const
int detId_
detid if measurement is corresponding to a tracker layer
const math::XYZPoint & position() const
cartesian position (x, y, z)
friend std::ostream & operator<<(std::ostream &out, const reco::PFTrajectoryPoint &trajPoint)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
math::XYZPoint posxyz_
cartesian position (x, y, z)
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:71
int layer() const
trajectory point layer
Point of closest approach from beam axis (initial point in the case of PFSimParticle) ...
void calculatePositionREP()
calculate posrep_ once and for all
bool isTrackerLayer() const
is this point corresponding to an intersection with a tracker layer ?
bool isTrackerLayer_
Is the measurement corresponding to a tracker layer? or was it obtained by propagating the track to a...
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< Double32_t > > REPPoint
tuple out
Definition: dbtoconf.py:99
const math::XYZTLorentzVector & momentum() const
4-momenta quadrivector
int layer_
propagated layer
PFTrajectoryPoint()
default constructor. Set variables at default dummy values
bool isValid() const
is this point valid ?
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
math::XYZTLorentzVector momentum_
momentum quadrivector
virtual ~PFTrajectoryPoint()
destructor
A PFTrack holds several trajectory points, which basically contain the position and momentum of a tra...
LayerType
Define the different layers where the track can be propagated.
int detId() const
measurement detId
REPPoint posrep_
position in (rho, eta, phi) base (transient)