1 #ifndef GeomPropagators_SmartPropagator_H
2 #define GeomPropagators_SmartPropagator_H
56 return new SmartPropagator(getTkPropagator(),getGenPropagator(),magneticField());
63 theTkProp->setPropagationDirection(dir);
64 theGenProp->setPropagationDirection(dir);
74 std::pair<TrajectoryStateOnSurface,double>
76 const Plane& plane)
const override;
79 std::pair<TrajectoryStateOnSurface,double>
81 const Cylinder& cylinder)
const override;
83 virtual std::pair< TrajectoryStateOnSurface, double>
86 virtual std::pair< TrajectoryStateOnSurface, double>
94 bool insideTkVol(
const Surface& surface)
const ;
96 bool insideTkVol(
const Cylinder& cylin)
const ;
98 bool insideTkVol(
const Plane& plane)
const ;
109 void initTkVolume(
float epsilon);
120 #endif // SMARTPROPAGATOR_H
virtual void setPropagationDirection(PropagationDirection dir)
ReferenceCountingPointer< Cylinder > theTkVolume
virtual SmartPropagator * clone() const
Virtual constructor (using copy c'tor)
void setPropagationDirection(PropagationDirection dir) override
setting the direction fo both components
virtual const MagneticField * magneticField() const
return the magneticField
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Unlimited (trivial) bounds.