CMS 3D CMS Logo

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  public:
28  // Next typedef uses double in ROOT 6 rather than Double32_t due to a bug in ROOT 5,
29  // which otherwise would make ROOT5 files unreadable in ROOT6. This does not increase
30  // the size on disk, because due to the bug, double was actually stored on disk in ROOT 5.
31  typedef ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> > REPPoint;
32 
34  enum LayerType {
39  PS1 = 2,
41  PS2 = 3,
50  HCALExit = 7,
52  HOLayer = 8,
55  // Number of valid layers
56  NLayers = 10,
57  // Unknown
58  Unknown = -1
59  };
60 
61  static const std::array<std::string, NLayers> layerTypeNames;
63 
66 
70 
73 
75  virtual ~PFTrajectoryPoint();
76 
78  int detId() const { return detId_; }
79 
81  int layer() const { return layer_; }
82 
84  bool isValid() const {
85  if (layer_ == -1 && detId_ == -1)
86  return false;
87  else
88  return true;
89  }
90 
92  bool isTrackerLayer() const {
93  if (detId_ >= 0)
94  return true;
95  else
96  return false;
97  }
98 
100  const math::XYZPoint& position() const { return posxyz_; }
101 
103  const REPPoint& positionREP() const { return posrep_; }
104 
106  void calculatePositionREP() { posrep_.SetCoordinates(posxyz_.Rho(), posxyz_.Eta(), posxyz_.Phi()); }
107 
109  const math::XYZTLorentzVector& momentum() const { return momentum_; }
110 
111  bool operator==(const reco::PFTrajectoryPoint& other) const;
112 
113  friend std::ostream& operator<<(std::ostream& out, const reco::PFTrajectoryPoint& trajPoint);
114 
115  private:
119 
121  int detId_;
122 
124  int layer_;
125 
128 
131 
134  };
135 
136  std::ostream& operator<<(std::ostream& out, const reco::PFTrajectoryPoint& trajPoint);
137 } // namespace reco
138 
139 #endif
reco::PFTrajectoryPoint::momentum
const math::XYZTLorentzVector & momentum() const
4-momenta quadrivector
Definition: PFTrajectoryPoint.h:109
reco::PFTrajectoryPoint::posxyz_
math::XYZPoint posxyz_
cartesian position (x, y, z)
Definition: PFTrajectoryPoint.h:127
reco::PFTrajectoryPoint::operator<<
friend std::ostream & operator<<(std::ostream &out, const reco::PFTrajectoryPoint &trajPoint)
reco::PFTrajectoryPoint::HCALExit
HCAL exit.
Definition: PFTrajectoryPoint.h:50
reco::PFTrajectoryPoint::HOLayer
HO layer.
Definition: PFTrajectoryPoint.h:52
reco::PFTrajectoryPoint::layer
int layer() const
trajectory point layer
Definition: PFTrajectoryPoint.h:81
reco::PFTrajectoryPoint::detId_
int detId_
detid if measurement is corresponding to a tracker layer
Definition: PFTrajectoryPoint.h:121
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
reco::PFTrajectoryPoint::isTrackerLayer_
bool isTrackerLayer_
Is the measurement corresponding to a tracker layer? or was it obtained by propagating the track to a...
Definition: PFTrajectoryPoint.h:118
reco::PFTrajectoryPoint::NLayers
Definition: PFTrajectoryPoint.h:56
reco::PFTrajectoryPoint::positionREP
const REPPoint & positionREP() const
trajectory position in (rho, eta, phi) base
Definition: PFTrajectoryPoint.h:103
reco::PFTrajectoryPoint::BeamPipeOrEndVertex
Definition: PFTrajectoryPoint.h:37
reco::PFTrajectoryPoint::REPPoint
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
Definition: PFTrajectoryPoint.h:31
reco::PFTrajectoryPoint::ECALShowerMax
Definition: PFTrajectoryPoint.h:46
reco::PFTrajectoryPoint::calculatePositionREP
void calculatePositionREP()
calculate posrep_ once and for all
Definition: PFTrajectoryPoint.h:106
reco::PFTrajectoryPoint::momentum_
math::XYZTLorentzVector momentum_
momentum quadrivector
Definition: PFTrajectoryPoint.h:133
trackingPlots.other
other
Definition: trackingPlots.py:1467
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
reco::PFTrajectoryPoint::position
const math::XYZPoint & position() const
cartesian position (x, y, z)
Definition: PFTrajectoryPoint.h:100
reco::PFTrajectoryPoint::HCALEntrance
HCAL front face.
Definition: PFTrajectoryPoint.h:48
LorentzVector.h
reco::PFTrajectoryPoint::PS2
Preshower layer 2.
Definition: PFTrajectoryPoint.h:41
reco::PFTrajectoryPoint::layerTypeNames
static const std::array< std::string, NLayers > layerTypeNames
Definition: PFTrajectoryPoint.h:61
reco::PFTrajectoryPoint::LayerType
LayerType
Define the different layers where the track can be propagated.
Definition: PFTrajectoryPoint.h:34
reco::operator<<
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:66
reco::PFTrajectoryPoint::layerTypeByName
static LayerType layerTypeByName(const std::string &name)
Definition: PFTrajectoryPoint.cc:42
reco::PFTrajectoryPoint::posrep_
REPPoint posrep_
position in (rho, eta, phi) base (transient)
Definition: PFTrajectoryPoint.h:130
reco::PFTrajectoryPoint::isValid
bool isValid() const
is this point valid ?
Definition: PFTrajectoryPoint.h:84
reco::PFTrajectoryPoint::PS1
Preshower layer 1.
Definition: PFTrajectoryPoint.h:39
reco::PFTrajectoryPoint::~PFTrajectoryPoint
virtual ~PFTrajectoryPoint()
destructor
Definition: PFTrajectoryPoint.cc:40
reco::PFTrajectoryPoint::ECALEntrance
ECAL front face.
Definition: PFTrajectoryPoint.h:43
reco::PFTrajectoryPoint::VFcalEntrance
VFcal(HF) front face.
Definition: PFTrajectoryPoint.h:54
reco::PFTrajectoryPoint::detId
int detId() const
measurement detId
Definition: PFTrajectoryPoint.h:78
reco::PFTrajectoryPoint::layer_
int layer_
propagated layer
Definition: PFTrajectoryPoint.h:124
reco::PFTrajectoryPoint::Unknown
Definition: PFTrajectoryPoint.h:58
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
reco::PFTrajectoryPoint::PFTrajectoryPoint
PFTrajectoryPoint()
default constructor. Set variables at default dummy values
Definition: PFTrajectoryPoint.cc:20
reco::PFTrajectoryPoint
A PFTrack holds several trajectory points, which basically contain the position and momentum of a tra...
Definition: PFTrajectoryPoint.h:26
Point3D.h
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
reco::PFTrajectoryPoint::ClosestApproach
Point of closest approach from beam axis (initial point in the case of PFSimParticle)
Definition: PFTrajectoryPoint.h:36
reco::PFTrajectoryPoint::operator==
bool operator==(const reco::PFTrajectoryPoint &other) const
Definition: PFTrajectoryPoint.cc:51
reco::PFTrajectoryPoint::isTrackerLayer
bool isTrackerLayer() const
is this point corresponding to an intersection with a tracker layer ?
Definition: PFTrajectoryPoint.h:92