00001 #ifndef Geom_RectangularPlaneBounds_H 00002 #define Geom_RectangularPlaneBounds_H 00003 00004 00005 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00006 #include "DataFormats/GeometrySurface/interface/Bounds.h" 00007 00008 00014 class RectangularPlaneBounds : public Bounds { 00015 public: 00016 00019 RectangularPlaneBounds( float w, float h, float t); 00020 00022 virtual float length() const { return 2*halfLength;} 00024 virtual float width() const { return 2*halfWidth;} 00026 virtual float thickness() const { return 2*halfThickness;} 00027 00028 // basic bounds function 00029 virtual bool inside( const Local2DPoint& p) const; 00030 00031 virtual bool inside( const Local3DPoint& p) const; 00032 00033 virtual bool inside(const Local2DPoint& p, float tollerance) const; 00034 00035 00036 virtual bool inside( const Local3DPoint& p, const LocalError& err, 00037 float scale=1.) const; 00038 00039 virtual bool inside( const Local2DPoint& p, const LocalError& err, float scale=1.) const; 00040 00041 virtual Bounds* clone() const; 00042 00043 private: 00044 float halfWidth; 00045 float halfLength; 00046 float halfThickness; 00047 00048 }; 00049 00050 #endif