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