CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StraightLinePropagator.h
Go to the documentation of this file.
1 #ifndef TR_StraightLine_Propagator_H_
2 #define TR_StraightLine_Propagator_H_
3 
7 
8 class MagneticField;
9 
10 
18 
19 private:
20 
23 
24 public:
25 
28  Propagator(aDir), theField(field) {}
29 
31 
32  virtual TSOS propagate(const FreeTrajectoryState& fts,
33  const Surface& surface) const {
34  return Propagator::propagate(fts, surface);
35  }
36 
37  virtual TSOS propagate(const FreeTrajectoryState& fts,
38  const Plane& plane) const {
39  return propagateWithPath(fts,plane).first;
40  }
41 
42  virtual TSOS propagate(const FreeTrajectoryState& fts,
43  const Cylinder& cylinder) const {
44  return propagateWithPath(fts,cylinder).first;
45  }
46 
47  std::pair<TSOS,double> propagateWithPath(const FreeTrajectoryState& fts,
48  const Surface& surface) const {
49  return Propagator::propagateWithPath(fts,surface);
50  }
51 
52  std::pair<TSOS,double> propagateWithPath(const FreeTrajectoryState& fts,
53  const Plane& surface) const;
54 
55  std::pair<TSOS,double> propagateWithPath(const FreeTrajectoryState& fts,
56  const Cylinder& surface) const;
57 
58  virtual StraightLinePropagator * clone() const {
59  return new StraightLinePropagator(*this);
60  }
61 
62 
63  virtual const MagneticField* magneticField() const {return theField;}
64 
65 private:
66 
68 
69  // compute propagated state, with errors if needed
71  const Surface& surface,
72  const AlgebraicMatrix& jacobian,
73  const GlobalPoint& x,
74  const GlobalVector& p) const;
75 
77  const Surface& surface,
78  const AlgebraicMatrix& jacobian,
79  const LocalPoint& x,
80  const LocalVector& p) const;
81 
83  const Surface& surface,
85  const GlobalPoint& x,
86  const GlobalVector& p) const;
87 
89  const Surface& surface,
91  const LocalPoint& x,
92  const LocalVector& p) const;
93 
94 
95  // compute jacobian of transform
96  AlgebraicMatrix55 jacobian(double& s) const;
97  AlgebraicMatrix jacobian_old(double& s) const;
98 
99  // compute propagated x and p and path s, return true when propagation is OK
101  const Cylinder& cylinder,
102  GlobalPoint& x,
103  GlobalVector& p,
104  double& s) const;
105 
106  // compute propagated x and p and path s, return true when propagation is OK
108  const Plane& plane,
109  LocalPoint& x,
110  LocalVector& p,
111  double& s) const;
112 
113 };
114 
115 #endif
bool propagateParametersOnCylinder(const FreeTrajectoryState &fts, const Cylinder &cylinder, GlobalPoint &x, GlobalVector &p, double &s) const
virtual TSOS propagate(const FreeTrajectoryState &fts, const Plane &plane) const
virtual const MagneticField * magneticField() const
virtual TSOS propagate(const FreeTrajectoryState &fts, const Surface &surface) const
PropagationDirection
Definition: Plane.h:17
virtual TSOS propagate(const FreeTrajectoryState &fts, const Cylinder &cylinder) const
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
CLHEP::HepMatrix AlgebraicMatrix
TrajectoryStateOnSurface propagatedState(const FreeTrajectoryState &fts, const Surface &surface, const AlgebraicMatrix &jacobian, const GlobalPoint &x, const GlobalVector &p) const
const MagneticField * theField
virtual StraightLinePropagator * clone() const
std::pair< TSOS, double > propagateWithPath(const FreeTrajectoryState &fts, const Surface &surface) const
AlgebraicMatrix55 jacobian(double &s) const
TrajectoryStateOnSurface TSOS
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
AlgebraicMatrix jacobian_old(double &s) const
string s
Definition: asciidump.py:422
Definition: DDAxes.h:10
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
StraightLinePropagator(const MagneticField *field, PropagationDirection aDir=alongMomentum)
bool propagateParametersOnPlane(const FreeTrajectoryState &fts, const Plane &plane, LocalPoint &x, LocalVector &p, double &s) const