00001 #include "TrackPropagation/NavGeometry/interface/NavCylinder.h" 00002 #include "TrackingTools/GeomPropagators/interface/Propagator.h" 00003 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00004 #include "DataFormats/GeometrySurface/interface/Bounds.h" 00005 #include "TrackingTools/GeomPropagators/interface/StraightLineCylinderCrossing.h" 00006 00007 TrajectoryStateOnSurface 00008 NavCylinder::propagate( const Propagator& prop, 00009 const TrajectoryStateOnSurface& startingState) const 00010 { 00011 return prop.propagate( startingState, *theSurfaceP); 00012 } 00013 00014 std::pair<TrajectoryStateOnSurface,double> 00015 NavCylinder::propagateWithPath( const Propagator& prop, 00016 const TrajectoryStateOnSurface& startingState) const 00017 { 00018 return prop.propagateWithPath( startingState, *theSurfaceP); 00019 } 00020 00021 std::pair<bool,double> 00022 NavCylinder::distanceAlongLine( const NavSurface::GlobalPoint& pos, 00023 const NavSurface::GlobalVector& dir) const 00024 { 00025 StraightLineCylinderCrossing pc( toLocal(pos), toLocal(dir)); 00026 return pc.pathLength(*theSurfaceP); 00027 }