CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/TrackPropagation/NavGeometry/interface/SurfaceAndBounds.h

Go to the documentation of this file.
00001 #ifndef SurfaceAndBounds_H
00002 #define SurfaceAndBounds_H
00003 
00004 #include "TrackPropagation/NavGeometry/interface/NavSurface.h"
00005 
00006 class NavSurface;
00007 class Bounds;
00008 
00009 class SurfaceAndBounds  {
00010 
00011  public:
00012 
00013 
00014   typedef SurfaceOrientation::GlobalFace GlobalFace;
00015   typedef SurfaceOrientation::Side Side;
00016   typedef ConstReferenceCountingPointer<NavSurface> NavSurfacePointer;
00017 
00018   SurfaceAndBounds( const NavSurface* navsurf, const Bounds* bounds, Side side, GlobalFace face) : 
00019     theNavSurfaceP(navsurf) , theBoundsP(bounds) , theSide(side) , theGlobalFace(face) { };
00020   
00021   // Default constructor needed in /usr/include/c++/3.2.3/bits/stl_map.h:225 --> to use SurfaceAndBounds in sorted container
00022   //  SurfaceAndBounds() :  theNavSurfaceP(0) , theBoundsP(0) , 
00023   //  theSide(SurfaceOrientation::onSurface) , theGlobalFace(SurfaceOrientation::outer) {};
00024   //
00025   SurfaceAndBounds() {};
00026 
00027 
00029   const NavSurface& surface() const {return *theNavSurfaceP ;} 
00030   
00032   const Bounds& bounds() const {return *theBoundsP ;}
00033   
00035   const SurfaceOrientation::Side side() const {return theSide;} 
00036 
00037   ~SurfaceAndBounds() {} 
00038 
00039 
00040  private:
00041 
00042   NavSurfacePointer    theNavSurfaceP;
00043   const Bounds*        theBoundsP;
00044   Side                 theSide;
00045   GlobalFace           theGlobalFace;
00046 
00047 };
00048 
00049 #endif