CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/MagneticField/VolumeGeometry/interface/VolumeSide.h

Go to the documentation of this file.
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