CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackPropagation/NavGeometry/interface/LinearSearchNavSurfaceImpl.h

Go to the documentation of this file.
00001 #ifndef LinearSearchNavSurfaceImpl_H
00002 #define LinearSearchNavSurfaceImpl_H
00003 
00004 #include "TrackPropagation/NavGeometry/interface/NavSurface.h"
00005 #include <vector>
00006 
00007 class NavVolume;
00008 class Bounds;
00009 
00010 class LinearSearchNavSurfaceImpl {
00011 public:
00012 
00013     const NavVolume* nextVolume( const NavSurface::LocalPoint& point, 
00014                                          SurfaceOrientation::Side side) const;
00015 
00016     const Bounds* bounds( const NavVolume* vol);
00017 
00018     void addVolume( const NavVolume* vol, const Bounds* bounds, 
00019                     SurfaceOrientation::Side side);
00020 
00021 private:
00022 
00023     typedef std::pair< const NavVolume*, const Bounds*>        VolumeAndBounds;
00024     typedef std::vector< VolumeAndBounds>                      VolumeContainer;
00025 
00026     VolumeContainer thePosVolumes;
00027     VolumeContainer theNegVolumes;
00028 
00029     const NavVolume* findVolume( const NavSurface::LocalPoint& point,
00030                                  const VolumeContainer& volumes) const;
00031 
00032 };
00033 
00034 #endif