CMS 3D CMS Logo

Public Member Functions | Private Attributes

NavCylinder Class Reference

#include <NavCylinder.h>

Inheritance diagram for NavCylinder:
NavSurface BasicReferenceCounted

List of all members.

Public Member Functions

virtual void addVolume (const NavVolume *vol, const Bounds *bounds, SurfaceOrientation::Side side)
 NavVolumes are supposed to call this method to "register" with the NavSurface.
virtual const Boundsbounds (const NavVolume *vol)
 Bounds corresponding to a NavVolume if present.
virtual std::pair< bool, double > distanceAlongLine (const NavSurface::GlobalPoint &pos, const NavSurface::GlobalVector &dir) const
 NavCylinder (const Cylinder *cylinder)
virtual const NavVolumenextVolume (const NavSurface::LocalPoint &point, SurfaceOrientation::Side side) const
virtual TrajectoryStateOnSurface propagate (const Propagator &prop, const TrajectoryStateOnSurface &startingState) const
 hook for double dispatch to avoid propagation to generic surface.
virtual NavSurface::TSOSwithPath propagateWithPath (const Propagator &prop, const TrajectoryStateOnSurface &startingState) const
 hook for double dispatch to avoid propagation to generic surface.
virtual const Surfacesurface () const
 Access to actual surface.

Private Attributes

LinearSearchNavSurfaceImpl theImpl
ConstReferenceCountingPointer
< Cylinder
theSurfaceP

Detailed Description

Definition at line 12 of file NavCylinder.h.


Constructor & Destructor Documentation

NavCylinder::NavCylinder ( const Cylinder cylinder) [inline]

Definition at line 18 of file NavCylinder.h.

: theSurfaceP(cylinder) {}

Member Function Documentation

virtual void NavCylinder::addVolume ( const NavVolume vol,
const Bounds bounds,
SurfaceOrientation::Side  side 
) [inline, virtual]

NavVolumes are supposed to call this method to "register" with the NavSurface.

Implements NavSurface.

Definition at line 37 of file NavCylinder.h.

References LinearSearchNavSurfaceImpl::addVolume(), and theImpl.

                                                         {
        theImpl.addVolume( vol, bounds, side);
    }
virtual const Bounds* NavCylinder::bounds ( const NavVolume vol) [inline, virtual]

Bounds corresponding to a NavVolume if present.

Implements NavSurface.

Definition at line 35 of file NavCylinder.h.

References LinearSearchNavSurfaceImpl::bounds(), and theImpl.

{ return theImpl.bounds(vol);}
std::pair< bool, double > NavCylinder::distanceAlongLine ( const NavSurface::GlobalPoint pos,
const NavSurface::GlobalVector dir 
) const [virtual]

Distance to surface from point pos along line dir. If the half-line does not cross the surface the returned value is (false,undefined), otherwise the returned value is (true,distance)

Implements NavSurface.

Definition at line 22 of file NavCylinder.cc.

References StraightLineCylinderCrossing::pathLength(), theSurfaceP, and NavSurface::toLocal().

{
    StraightLineCylinderCrossing pc( toLocal(pos), toLocal(dir));
    return pc.pathLength(*theSurfaceP);
}
virtual const NavVolume* NavCylinder::nextVolume ( const NavSurface::LocalPoint point,
SurfaceOrientation::Side  side 
) const [inline, virtual]

Implements NavSurface.

Definition at line 24 of file NavCylinder.h.

References LinearSearchNavSurfaceImpl::nextVolume(), and theImpl.

                                                                            {
        return theImpl.nextVolume( point,side);
    }
TrajectoryStateOnSurface NavCylinder::propagate ( const Propagator prop,
const TrajectoryStateOnSurface startingState 
) const [virtual]

hook for double dispatch to avoid propagation to generic surface.

Implements NavSurface.

Definition at line 8 of file NavCylinder.cc.

References Propagator::propagate(), and theSurfaceP.

{
    return prop.propagate( startingState, *theSurfaceP); 
}
std::pair< TrajectoryStateOnSurface, double > NavCylinder::propagateWithPath ( const Propagator prop,
const TrajectoryStateOnSurface startingState 
) const [virtual]

hook for double dispatch to avoid propagation to generic surface.

Implements NavSurface.

Definition at line 15 of file NavCylinder.cc.

References Propagator::propagateWithPath(), and theSurfaceP.

{
    return prop.propagateWithPath( startingState, *theSurfaceP); 
}
virtual const Surface& NavCylinder::surface ( ) const [inline, virtual]

Access to actual surface.

Implements NavSurface.

Definition at line 22 of file NavCylinder.h.

References theSurfaceP.

{return *theSurfaceP;} 

Member Data Documentation

Definition at line 48 of file NavCylinder.h.

Referenced by addVolume(), bounds(), and nextVolume().

Definition at line 47 of file NavCylinder.h.

Referenced by distanceAlongLine(), propagate(), propagateWithPath(), and surface().