CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
BoundCylinder Class Reference

#include <BoundCylinder.h>

Inheritance diagram for BoundCylinder:
Cylinder BoundSurface Surface Surface GloballyPositioned< float > BasicReferenceCounted GloballyPositioned< float > BasicReferenceCounted

Public Types

typedef
ReferenceCountingPointer
< BoundCylinder
BoundCylinderPointer
 
typedef
ConstReferenceCountingPointer
< BoundCylinder
ConstBoundCylinderPointer
 
- Public Types inherited from Cylinder
typedef
ConstReferenceCountingPointer
< Cylinder
ConstCylinderPointer
 
typedef
ReferenceCountingPointer
< Cylinder
CylinderPointer
 
- Public Types inherited from Surface
typedef GloballyPositioned< float > Base
 
typedef SurfaceOrientation::Side Side
 
- Public Types inherited from GloballyPositioned< float >
typedef Point3DBase< float,
GlobalTag
GlobalPoint
 
typedef Vector3DBase< float,
GlobalTag
GlobalVector
 
typedef Point3DBase< float,
LocalTag
LocalPoint
 
typedef Vector3DBase< float,
LocalTag
LocalVector
 
typedef Point3DBase< float,
GlobalTag
PositionType
 
typedef TkRotation< float > RotationType
 
typedef float Scalar
 

Public Member Functions

 BoundCylinder (const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds &bounds)
 
 BoundCylinder (const PositionType &pos, const RotationType &rot, Scalar radius, MediumProperties *mp, const Bounds &bounds)
 
 BoundCylinder (const PositionType &pos, const RotationType &rot, const Bounds *bounds)
 Obsolete constructor, radius should be given explicitly. More...
 
 BoundCylinder (const PositionType &pos, const RotationType &rot, const Bounds &bounds)
 Obsolete constructor, radius should be given explicitly. More...
 
virtual ~BoundCylinder ()
 
- Public Member Functions inherited from Cylinder
 Cylinder (const PositionType &pos, const RotationType &rot, Scalar radius)
 
 Cylinder (const PositionType &pos, const RotationType &rot, Scalar radius, MediumProperties *mp)
 
Plane fastTangent (const GlobalPoint &aPoint) const
 tangent plane to surface from global point More...
 
Plane fastTangent (const LocalPoint &aPoint) const
 tangent plane to surface from local point More...
 
Scalar radius () const
 Radius of the cylinder. More...
 
virtual Side side (const LocalPoint &p, Scalar toler) const
 
virtual
ReferenceCountingPointer
< TangentPlane
tangentPlane (const GlobalPoint &) const
 tangent plane to surface from global point More...
 
virtual
ReferenceCountingPointer
< TangentPlane
tangentPlane (const LocalPoint &) const
 tangent plane to surface from local point More...
 
- Public Member Functions inherited from Surface
const MediumPropertiesmediumProperties () const
 
void setMediumProperties (const MediumProperties &mp)
 
void setMediumProperties (MediumProperties *mp)
 
virtual Side side (const GlobalPoint &p, Scalar tolerance=0) const
 
 Surface (const PositionType &pos, const RotationType &rot)
 
 Surface (const PositionType &pos, const RotationType &rot, MediumProperties *mp)
 
 Surface (const PositionType &pos, const RotationType &rot, MediumProperties mp)
 
 Surface (const Surface &iSurface)
 
GlobalPoint toGlobal (const Point2DBase< Scalar, LocalTag > lp) const
 
virtual ~Surface ()=0
 
- Public Member Functions inherited from GloballyPositioned< float >
float eta () const
 
 GloballyPositioned (const PositionType &pos, const RotationType &rot)
 
void move (const GlobalVector &displacement)
 
float phi () const
 
const PositionTypeposition () const
 
void rotate (const RotationType &rotation)
 
const RotationTyperotation () const
 
GlobalPoint toGlobal (const LocalPoint &lp) const
 
Point3DBase< U, GlobalTagtoGlobal (const Point3DBase< U, LocalTag > &lp) const
 
GlobalVector toGlobal (const LocalVector &lv) const
 
Vector3DBase< U, GlobalTagtoGlobal (const Vector3DBase< U, LocalTag > &lv) const
 
LocalPoint toLocal (const GlobalPoint &gp) const
 
Point3DBase< U, LocalTagtoLocal (const Point3DBase< U, GlobalTag > &gp) const
 
LocalVector toLocal (const GlobalVector &gv) const
 
Vector3DBase< U, LocalTagtoLocal (const Vector3DBase< U, GlobalTag > &gv) const
 
virtual ~GloballyPositioned ()
 
- Public Member Functions inherited from BasicReferenceCounted
void addReference () const
 
 BasicReferenceCounted ()
 
 BasicReferenceCounted (const BasicReferenceCounted &iRHS)
 
const BasicReferenceCountedoperator= (const BasicReferenceCounted &)
 
unsigned int references () const
 
void removeReference () const
 
virtual ~BasicReferenceCounted ()
 
- Public Member Functions inherited from BoundSurface
const Boundsbounds () const
 
 BoundSurface (const PositionType &pos, const RotationType &rot, const Bounds *bounds)
 
 BoundSurface (const PositionType &pos, const RotationType &rot, const Bounds &bounds)
 
 BoundSurface (const PositionType &pos, const RotationType &rot, const Bounds *bounds, MediumProperties *mp)
 
 BoundSurface (const PositionType &pos, const RotationType &rot, const Bounds &bounds, MediumProperties *mp)
 
 BoundSurface (const BoundSurface &iToCopy)
 
const BoundSurfaceoperator= (const BoundSurface &iRHS)
 
std::pair< float, float > const & phiSpan () const
 
std::pair< float, float > const & rSpan () const
 
std::pair< float, float > const & zSpan () const
 

Static Public Member Functions

static BoundCylinderPointer build (const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds *bounds, MediumProperties *mp=0)
 
static BoundCylinderPointer build (const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds &bounds, MediumProperties *mp=0)
 
- Static Public Member Functions inherited from Cylinder
static CylinderPointer build (const PositionType &pos, const RotationType &rot, Scalar radius, MediumProperties *mp=0)
 
- Static Public Member Functions inherited from GloballyPositioned< float >
static float iniEta ()
 
static float iniPhi ()
 

Protected Member Functions

 BoundCylinder (const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds *bounds, MediumProperties *mp=0)
 
- Protected Member Functions inherited from BoundSurface
void computeSpan ()
 

Detailed Description

A Cylinder with Bounds.

Warning
Surfaces are reference counted, so only ReferenceCountingPointer should be used to point to them. For this reason, they should be using the static build() method. (The normal constructor will become private in the future).
Date:
2007/10/06 20:21:23
Revision:
1.3

Definition at line 21 of file BoundCylinder.h.

Member Typedef Documentation

Definition at line 24 of file BoundCylinder.h.

Definition at line 25 of file BoundCylinder.h.

Constructor & Destructor Documentation

virtual BoundCylinder::~BoundCylinder ( )
inlinevirtual

Definition at line 48 of file BoundCylinder.h.

48 {}
BoundCylinder::BoundCylinder ( const PositionType pos,
const RotationType rot,
Scalar  radius,
const Bounds bounds 
)
inline

Do not use this constructor directly; use the static build method, which returns a ReferenceCountingPointer. This constructor will soon become private

Definition at line 55 of file BoundCylinder.h.

Referenced by build().

58  :
59  Surface( pos,rot ),
60  Cylinder( pos, rot, radius),
61  BoundSurface(pos, rot, bounds)
62  { }
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds)
Definition: BoundSurface.h:22
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
Cylinder(const PositionType &pos, const RotationType &rot, Scalar radius)
Definition: Cylinder.h:42
Surface(const PositionType &pos, const RotationType &rot)
Definition: Surface.h:40
BoundCylinder::BoundCylinder ( const PositionType pos,
const RotationType rot,
Scalar  radius,
MediumProperties mp,
const Bounds bounds 
)
inline

Do not use this constructor directly; use the static build method, which returns a ReferenceCountingPointer. This constructor will soon become private

Definition at line 67 of file BoundCylinder.h.

71  :
72  Surface( pos,rot ),
73  Cylinder( pos, rot, radius, mp ),
74  BoundSurface( pos, rot, bounds )
75  { }
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds)
Definition: BoundSurface.h:22
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
Cylinder(const PositionType &pos, const RotationType &rot, Scalar radius)
Definition: Cylinder.h:42
Surface(const PositionType &pos, const RotationType &rot)
Definition: Surface.h:40
BoundCylinder::BoundCylinder ( const PositionType pos,
const RotationType rot,
const Bounds bounds 
)

Obsolete constructor, radius should be given explicitly.

Definition at line 3 of file BoundCylinder.cc.

5  :
6  Surface( pos,rot ),
7  Cylinder( pos, rot, bounds->width()/2. - bounds->thickness()/2.),
8  BoundSurface( pos, rot, bounds )
9 { }
virtual float thickness() const =0
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds)
Definition: BoundSurface.h:22
Cylinder(const PositionType &pos, const RotationType &rot, Scalar radius)
Definition: Cylinder.h:42
virtual float width() const =0
Surface(const PositionType &pos, const RotationType &rot)
Definition: Surface.h:40
BoundCylinder::BoundCylinder ( const PositionType pos,
const RotationType rot,
const Bounds bounds 
)

Obsolete constructor, radius should be given explicitly.

Definition at line 11 of file BoundCylinder.cc.

13  :
14  Surface( pos,rot ),
15  Cylinder( pos, rot, bounds.width()/2. - bounds.thickness()/2.),
16  BoundSurface( pos, rot, bounds )
17 { }
virtual float thickness() const =0
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds)
Definition: BoundSurface.h:22
Cylinder(const PositionType &pos, const RotationType &rot, Scalar radius)
Definition: Cylinder.h:42
virtual float width() const =0
Surface(const PositionType &pos, const RotationType &rot)
Definition: Surface.h:40
BoundCylinder::BoundCylinder ( const PositionType pos,
const RotationType rot,
Scalar  radius,
const Bounds bounds,
MediumProperties mp = 0 
)
inlineprotected

Definition at line 89 of file BoundCylinder.h.

93  :
94  Surface( pos,rot ),
95  Cylinder(pos, rot, radius, mp),
96  BoundSurface(pos, rot, bounds, mp)
97  { }
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds)
Definition: BoundSurface.h:22
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
Cylinder(const PositionType &pos, const RotationType &rot, Scalar radius)
Definition: Cylinder.h:42
Surface(const PositionType &pos, const RotationType &rot)
Definition: Surface.h:40

Member Function Documentation

static BoundCylinderPointer BoundCylinder::build ( const PositionType pos,
const RotationType rot,
Scalar  radius,
const Bounds bounds,
MediumProperties mp = 0 
)
inlinestatic

Construct a cylinder with origin at pos and with rotation matrix rot, with bounds. The bounds you provide are cloned.

Definition at line 29 of file BoundCylinder.h.

References BoundCylinder().

Referenced by SmartPropagator::initTkVolume().

33  {
34  return BoundCylinderPointer(new BoundCylinder(pos, rot, radius, bounds, mp));
35  }
ReferenceCountingPointer< BoundCylinder > BoundCylinderPointer
Definition: BoundCylinder.h:24
BoundCylinder(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds &bounds)
Definition: BoundCylinder.h:55
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
static BoundCylinderPointer BoundCylinder::build ( const PositionType pos,
const RotationType rot,
Scalar  radius,
const Bounds bounds,
MediumProperties mp = 0 
)
inlinestatic

Construct a cylinder with origin at pos and with rotation matrix rot, with bounds. The bounds you provide are cloned.

Definition at line 40 of file BoundCylinder.h.

References BoundCylinder().

44  {
45  return BoundCylinderPointer(new BoundCylinder(pos, rot, radius, &bounds, mp));
46  }
ReferenceCountingPointer< BoundCylinder > BoundCylinderPointer
Definition: BoundCylinder.h:24
BoundCylinder(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds &bounds)
Definition: BoundCylinder.h:55
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55