CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef NavVolumeSide_H
00002 #define NavVolumeSide_H
00003 
00004 #include "TrackPropagation/NavGeometry/interface/NavSurface.h"
00005 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
00006 
00015 class NavVolumeSide {
00016 public:
00017   typedef SurfaceOrientation::GlobalFace GlobalFace;
00018   typedef SurfaceOrientation::Side Side;
00019   
00020   typedef ReferenceCountingPointer<NavSurface>    SurfacePointer;
00021 
00022   NavVolumeSide( NavSurface* surf, GlobalFace gSide, Side sSide) : 
00023     theSurface( surf),  theGlobalFace( gSide), theSurfaceSide( sSide) {}
00024 
00025   NavVolumeSide( SurfacePointer surf, GlobalFace gSide, Side sSide) : 
00026     theSurface( surf),  theGlobalFace( gSide), theSurfaceSide( sSide) {}
00027 
00028   NavSurface& mutableSurface() const {return *theSurface;}
00029 
00030   const NavSurface& surface() const {return *theSurface;}
00031 
00032   GlobalFace globalFace() const { return theGlobalFace;}
00033 
00034   Side  surfaceSide() const {return theSurfaceSide;}
00035 
00036 private:
00037 
00038   SurfacePointer theSurface;
00039   GlobalFace     theGlobalFace;
00040   Side           theSurfaceSide;
00041 
00042 };
00043 
00044 
00045 #endif