CMS 3D CMS Logo

RectangularPlaneBounds Class Reference

Rectangular plane bounds. More...

#include <DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h>

Inheritance diagram for RectangularPlaneBounds:

Bounds

List of all members.

Public Member Functions

virtual Boundsclone () const
virtual bool inside (const Local2DPoint &p, const LocalError &err, float scale=1.) const
 Determine if a 2D point is inside the bounds, taking error into account.
virtual bool inside (const Local3DPoint &p, const LocalError &err, float scale=1.) const
 Determine if a point is inside the bounds, taking error into account.
virtual bool inside (const Local3DPoint &p) const
 Determine if the point is inside the bounds.
virtual bool inside (const Local2DPoint &p) const
virtual float length () const
 Lenght along local Y.
 RectangularPlaneBounds (float w, float h, float t)
 Construct from half width (extension in local X), half length (Y) and half thickness (Z).
virtual float thickness () const
 Thickness of the volume in local Z.
virtual float width () const
 Width along local X.

Private Attributes

float halfLength
float halfThickness
float halfWidth


Detailed Description

Rectangular plane bounds.

Local Coordinate system coincides with center of the box with X axis along the width and Y axis along the lenght.

Definition at line 14 of file RectangularPlaneBounds.h.


Constructor & Destructor Documentation

RectangularPlaneBounds::RectangularPlaneBounds ( float  w,
float  h,
float  t 
)

Construct from half width (extension in local X), half length (Y) and half thickness (Z).

Definition at line 5 of file RectangularPlaneBounds.cc.

Referenced by clone().

00005                                                                          : 
00006   halfWidth(w), halfLength(h), halfThickness(t) {}


Member Function Documentation

Bounds * RectangularPlaneBounds::clone ( void   )  const [virtual]

Implements Bounds.

Definition at line 35 of file RectangularPlaneBounds.cc.

References RectangularPlaneBounds().

00035                                             { 
00036   return new RectangularPlaneBounds(*this);
00037 }

bool RectangularPlaneBounds::inside ( const Local2DPoint p,
const LocalError err,
float  scale = 1. 
) const [virtual]

Determine if a 2D point is inside the bounds, taking error into account.

Reimplemented from Bounds.

Definition at line 28 of file RectangularPlaneBounds.cc.

References halfLength, halfWidth, funct::sqrt(), PV2DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV2DBase< T, PVType, FrameType >::y(), and LocalError::yy().

00029                                                         {
00030   return 
00031     (fabs(p.x()) < halfWidth  || fabs(p.x()) < halfWidth  + std::sqrt(err.xx())*scale) &&
00032     (fabs(p.y()) < halfLength || fabs(p.y()) < halfLength + std::sqrt(err.yy())*scale);
00033 }

bool RectangularPlaneBounds::inside ( const Local3DPoint ,
const LocalError ,
float  scale = 1. 
) const [virtual]

Determine if a point is inside the bounds, taking error into account.

Implements Bounds.

Definition at line 20 of file RectangularPlaneBounds.cc.

References halfLength, halfThickness, halfWidth, funct::sqrt(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

00021                                                        {
00022   return 
00023     fabs(p.z()) < halfThickness &&
00024     (fabs(p.x()) < halfWidth  || fabs(p.x()) < halfWidth  + std::sqrt(err.xx())*scale) &&
00025     (fabs(p.y()) < halfLength || fabs(p.y()) < halfLength + std::sqrt(err.yy())*scale);
00026 }

bool RectangularPlaneBounds::inside ( const Local3DPoint  )  const [virtual]

Determine if the point is inside the bounds.

Implements Bounds.

Definition at line 13 of file RectangularPlaneBounds.cc.

References halfLength, halfThickness, halfWidth, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

00013                                                                 {
00014   return 
00015     fabs(p.x()) < halfWidth && 
00016     fabs(p.y()) < halfLength &&
00017     fabs(p.z()) < halfThickness;
00018 }

bool RectangularPlaneBounds::inside ( const Local2DPoint p  )  const [virtual]

Reimplemented from Bounds.

Definition at line 9 of file RectangularPlaneBounds.cc.

References halfLength, halfWidth, PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().

00009                                                                 {
00010   return fabs(p.x()) <= halfWidth && fabs(p.y()) <= halfLength;
00011 }

virtual float RectangularPlaneBounds::length (  )  const [inline, virtual]

Lenght along local Y.

Implements Bounds.

Definition at line 22 of file RectangularPlaneBounds.h.

References halfLength.

Referenced by VisRPCDigiTwig::update().

00022 { return 2*halfLength;}

virtual float RectangularPlaneBounds::thickness (  )  const [inline, virtual]

Thickness of the volume in local Z.

Implements Bounds.

Definition at line 26 of file RectangularPlaneBounds.h.

References halfThickness.

00026 { return 2*halfThickness;}

virtual float RectangularPlaneBounds::width (  )  const [inline, virtual]

Width along local X.

Implements Bounds.

Definition at line 24 of file RectangularPlaneBounds.h.

References halfWidth.

Referenced by VisRPCDigiTwig::update().

00024 { return 2*halfWidth;}


Member Data Documentation

float RectangularPlaneBounds::halfLength [private]

Definition at line 42 of file RectangularPlaneBounds.h.

Referenced by inside(), and length().

float RectangularPlaneBounds::halfThickness [private]

Definition at line 43 of file RectangularPlaneBounds.h.

Referenced by inside(), and thickness().

float RectangularPlaneBounds::halfWidth [private]

Definition at line 41 of file RectangularPlaneBounds.h.

Referenced by inside(), and width().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:30:41 2009 for CMSSW by  doxygen 1.5.4