CMS 3D CMS Logo

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 
16 class StraightLinePropagator final : public Propagator {
17 private:
20 
21 public:
23  : Propagator(aDir), theField(field) {}
24 
26 
29 
30  std::pair<TSOS, double> propagateWithPath(const FreeTrajectoryState& fts, const Plane& surface) const override;
31 
32  std::pair<TSOS, double> propagateWithPath(const FreeTrajectoryState& fts, const Cylinder& surface) const override;
33 
34  StraightLinePropagator* clone() const override { return new StraightLinePropagator(*this); }
35 
36  const MagneticField* magneticField() const override { return theField; }
37 
38 private:
40 
41  // compute propagated state, with errors if needed
43  const Surface& surface,
45  const GlobalPoint& x,
46  const GlobalVector& p) const;
47 
49  const Surface& surface,
51  const LocalPoint& x,
52  const LocalVector& p) const;
53 
54  // compute jacobian of transform
55  AlgebraicMatrix55 jacobian(double& s) const;
56 
57  // compute propagated x and p and path s, return true when propagation is OK
59  const FreeTrajectoryState& fts, const Cylinder& cylinder, GlobalPoint& x, GlobalVector& p, double& s) const;
60 
61  // compute propagated x and p and path s, return true when propagation is OK
63  const FreeTrajectoryState& fts, const Plane& plane, LocalPoint& x, LocalVector& p, double& s) const;
64 };
65 
66 #endif
Vector3DBase
Definition: Vector3DBase.h:8
Propagator.h
StraightLinePropagator::~StraightLinePropagator
~StraightLinePropagator() override
Definition: StraightLinePropagator.h:25
TrajectoryStateOnSurface.h
StraightLinePropagator::FTS
FreeTrajectoryState FTS
Definition: StraightLinePropagator.h:18
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
StraightLinePropagator::propagateWithPath
std::pair< TSOS, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &surface) const override
Definition: StraightLinePropagator.cc:8
StraightLinePropagator::StraightLinePropagator
StraightLinePropagator(const MagneticField *field, PropagationDirection aDir=alongMomentum)
Definition: StraightLinePropagator.h:22
Surface
Definition: Surface.h:36
StraightLinePropagator::theField
const MagneticField * theField
Definition: StraightLinePropagator.h:39
DDAxes::x
StraightLinePropagator::jacobian
AlgebraicMatrix55 jacobian(double &s) const
Definition: StraightLinePropagator.cc:86
Propagator
Definition: Propagator.h:44
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
alignCSCRings.s
s
Definition: alignCSCRings.py:92
AlgebraicMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
Definition: AlgebraicROOTObjects.h:55
StraightLinePropagator::propagateParametersOnCylinder
bool propagateParametersOnCylinder(const FreeTrajectoryState &fts, const Cylinder &cylinder, GlobalPoint &x, GlobalVector &p, double &s) const
Definition: StraightLinePropagator.cc:100
StraightLinePropagator::propagateParametersOnPlane
bool propagateParametersOnPlane(const FreeTrajectoryState &fts, const Plane &plane, LocalPoint &x, LocalVector &p, double &s) const
Definition: StraightLinePropagator.cc:121
Point3DBase< float, GlobalTag >
StraightLinePropagator
Definition: StraightLinePropagator.h:16
StraightLinePropagator::magneticField
const MagneticField * magneticField() const override
Definition: StraightLinePropagator.h:36
Propagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
PropagationDirection.h
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
StraightLinePropagator::TSOS
TrajectoryStateOnSurface TSOS
Definition: StraightLinePropagator.h:19
StraightLinePropagator::propagatedState
TrajectoryStateOnSurface propagatedState(const FreeTrajectoryState &fts, const Surface &surface, const AlgebraicMatrix55 &jacobian, const GlobalPoint &x, const GlobalVector &p) const
Definition: StraightLinePropagator.cc:65
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
Plane
Definition: Plane.h:16
Propagator::propagateWithPath
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
Definition: Propagator.cc:10
StraightLinePropagator::clone
StraightLinePropagator * clone() const override
Definition: StraightLinePropagator.h:34
Cylinder
Definition: Cylinder.h:19
MagneticField
Definition: MagneticField.h:19
alongMomentum
Definition: PropagationDirection.h:4