1 #ifndef GeomPropagators_BeamHaloPropagator_H 2 #define GeomPropagators_BeamHaloPropagator_H 62 std::pair<TrajectoryStateOnSurface,double>
64 const Plane& plane)
const override;
67 std::pair<TrajectoryStateOnSurface,double>
69 const Cylinder& cylinder)
const override;
virtual const MagneticField * magneticField() const override
return the magneticField
virtual void setPropagationDirection(PropagationDirection dir)
Propagator * theCrossTkProp
const Propagator * getCrossTkPropagator() const
return the propagator used to cross the tracker
BeamHaloPropagator(const Propagator *aEndCapTkProp, const Propagator *aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum)
Defines which propagator is used inside endcap and in barrel.
void setPropagationDirection(PropagationDirection dir) override
void directionCheck(PropagationDirection dir)
virtual ~BeamHaloPropagator()
virtual PropagationDirection propagationDirection() const final
const Propagator * getEndCapTkPropagator() const
return the propagator used in endcaps
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
const MagneticField * theField
virtual BeamHaloPropagator * clone() const override
Virtual constructor (using copy c'tor)
Propagator * theEndCapTkProp
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override