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