1 #ifndef GeomPropagators_SmartPropagator_H
2 #define GeomPropagators_SmartPropagator_H
56 return new SmartPropagator(getTkPropagator(),getGenPropagator(),magneticField());
63 getTkPropagator()->setPropagationDirection(dir);
64 getGenPropagator()->setPropagationDirection(dir);
78 const Plane& plane)
const;
81 const Plane& plane)
const {
93 std::pair<TrajectoryStateOnSurface,double>
99 std::pair<TrajectoryStateOnSurface,double>
101 const Surface& surface)
const {
105 std::pair<TrajectoryStateOnSurface,double>
107 const Plane& plane)
const;
109 std::pair<TrajectoryStateOnSurface,double>
111 const Plane& plane)
const {
115 std::pair<TrajectoryStateOnSurface,double>
119 std::pair<TrajectoryStateOnSurface,double>
128 bool insideTkVol(
const Surface& surface)
const ;
130 bool insideTkVol(
const Cylinder& cylin)
const ;
132 bool insideTkVol(
const Plane& plane)
const ;
143 void initTkVolume(
float epsilon);
154 #endif // SMARTPROPAGATOR_H
ReferenceCountingPointer< Cylinder > theTkVolume
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
void setPropagationDirection(PropagationDirection dir) const
setting the direction fo both components
virtual SmartPropagator * clone() const
Virtual constructor (using copy c'tor)
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
virtual const MagneticField * magneticField() const
return the magneticField
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual void setPropagationDirection(PropagationDirection dir) const
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Surface &surface) const
Unlimited (trivial) bounds.