CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackPropagation/NavGeometry/src/NavCylinder.cc

Go to the documentation of this file.
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 }