39 edm::LogError(
"BeamHaloPropagator")<<
"composite propagator set with inconsistent direction components\n" 41 <<
"\n to be set on: "<<
dir;
47 edm::LogError(
"BeamHaloPropagator")<<
"composite propagator set with inconsistent direction components\n" 49 <<
"\n to be set on: "<<
dir;
86 <<
"and hence "<<((fts.
position().
z()*plane.
position().
z()<0)?
"crossing":
"not crossing");
91 std::pair<TrajectoryStateOnSurface,double>
93 const Plane& plane)
const 101 std::pair<TrajectoryStateOnSurface,double>
108 LogDebug(
"BeamHaloPropagator")<<
"using the EndCap propagator";
113 LogDebug(
"BeamHaloPropagator")<<
"using the Crossing propagator";
virtual void setPropagationDirection(PropagationDirection dir)
Propagator * theCrossTkProp
virtual Propagator * clone() const =0
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 directionCheck(PropagationDirection dir)
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
BeamHaloPropagator * clone() const override
Virtual constructor (using copy c'tor)
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
~BeamHaloPropagator() override
GlobalPoint position() const
const MagneticField * theField
const PositionType & position() const
Propagator * theEndCapTkProp
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override