#include <DetDesc/ISolid.h>
Inheritance diagram for ISolid:
Public Types | |
| typedef double | Tick |
| useful type definition for dealing with intersections of the solid and the line | |
| typedef StaticArray< Tick, 64 > | Ticks |
| SUCCESS | |
| NO_INTERFACE | |
| VERSMISMATCH | |
| LAST_ERROR | |
| enum | Status |
Public Member Functions | |
| virtual const std::string & | name () const =0 |
| retrieve the specific name of the solid object | |
| virtual std::string | typeName () const =0 |
| retrieve the specific type of the solid object | |
| virtual bool | isInside (const Gaudi::XYZPoint &point) const =0 |
| check for the given 3D-point. | |
| virtual bool | isInside (const Gaudi::Polar3DPoint &point) const =0 |
| virtual bool | isInside (const Gaudi::RhoZPhiPoint &point) const =0 |
| virtual const ISolid * | cover () const =0 |
| retrieve the pointer to "simplified" solid. | |
| virtual const ISolid * | coverTop () const =0 |
| retrieve the pointer to "the most simplified cover", ideally to something like "the bounding box" | |
| virtual std::ostream & | printOut (std::ostream &os=std::cout) const =0 |
| printout to STD/STL stream | |
| virtual MsgStream & | printOut (MsgStream &os) const =0 |
| printout to Gaudi stream | |
| virtual ISolid * | reset ()=0 |
| reset solid to its inititial state, remove all auxillary data fields and pointers. | |
| virtual unsigned int | intersectionTicks (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, Ticks &ticks) const =0 |
| calculate the intersection points("ticks") of the solid objects with given line. | |
| virtual unsigned int | intersectionTicks (const Gaudi::Polar3DPoint &Point, const Gaudi::Polar3DVector &Vector, Ticks &ticks) const =0 |
| virtual unsigned int | intersectionTicks (const Gaudi::RhoZPhiPoint &Point, const Gaudi::RhoZPhiVector &Vector, Ticks &ticks) const =0 |
| virtual unsigned int | intersectionTicks (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, const Tick &tickMin, const Tick &tickMax, Ticks &ticks) const =0 |
| calculate the intersection points("ticks") of the solid objects with given line. | |
| virtual unsigned int | intersectionTicks (const Gaudi::Polar3DPoint &Point, const Gaudi::Polar3DVector &Vector, const Tick &tickMin, const Tick &tickMax, Ticks &ticks) const =0 |
| virtual unsigned int | intersectionTicks (const Gaudi::RhoZPhiPoint &Point, const Gaudi::RhoZPhiVector &Vector, const Tick &tickMin, const Tick &tickMax, Ticks &ticks) const =0 |
| virtual Ticks::size_type | maxNumberOfTicks () const =0 |
| Calculate the maximum number of ticks that a straight line could make with this solid. | |
| virtual | ~ISolid () |
| virtual destructor | |
| virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvInterface)=0 |
| virtual unsigned long | addRef ()=0 |
| virtual unsigned long | release ()=0 |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
| retrieve the uninque interface identifier | |
Public Attributes | |
| SUCCESS | |
| NO_INTERFACE | |
| VERSMISMATCH | |
| LAST_ERROR | |
Definition at line 28 of file ISolid.h.
| typedef double ISolid::Tick |
| typedef StaticArray<Tick,64> ISolid::Ticks |
| virtual ISolid::~ISolid | ( | ) | [virtual] |
| static const InterfaceID& ISolid::interfaceID | ( | ) | [inline, static] |
retrieve the uninque interface identifier
Reimplemented from IInterface.
Definition at line 44 of file ISolid.h.
00044 { return IID_ISolid; }
| virtual const std::string& ISolid::name | ( | ) | const [pure virtual] |
retrieve the specific name of the solid object
Implemented in SolidBase.
| virtual std::string ISolid::typeName | ( | ) | const [pure virtual] |
retrieve the specific type of the solid object
Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidSphere, SolidSubtraction, SolidTrap, SolidTrd, SolidTubs, and SolidUnion.
| virtual bool ISolid::isInside | ( | const Gaudi::XYZPoint & | point | ) | const [pure virtual] |
check for the given 3D-point.
Point coordinated are in the local reference frame of the solid.
| point | point (in local reference system of the solid) |
Implemented in SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidPolyHedronHelper, SolidSphere, SolidSubtraction, SolidTubs, and SolidUnion.
| virtual bool ISolid::isInside | ( | const Gaudi::Polar3DPoint & | point | ) | const [pure virtual] |
Implemented in SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidPolyHedronHelper, SolidSphere, SolidSubtraction, SolidTubs, and SolidUnion.
| virtual bool ISolid::isInside | ( | const Gaudi::RhoZPhiPoint & | point | ) | const [pure virtual] |
Implemented in SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidPolyHedronHelper, SolidSphere, SolidSubtraction, SolidTubs, and SolidUnion.
| virtual const ISolid* ISolid::cover | ( | ) | const [pure virtual] |
retrieve the pointer to "simplified" solid.
Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.
| virtual const ISolid* ISolid::coverTop | ( | ) | const [pure virtual] |
retrieve the pointer to "the most simplified cover", ideally to something like "the bounding box"
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, and SolidUnion.
| virtual std::ostream& ISolid::printOut | ( | std::ostream & | os = std::cout |
) | const [pure virtual] |
printout to STD/STL stream
| os | STD/STL stream |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.
printout to Gaudi stream
| os | Gaudi stream |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.
| virtual ISolid* ISolid::reset | ( | ) | [pure virtual] |
reset solid to its inititial state, remove all auxillary data fields and pointers.
Implemented in SolidBase, SolidBoolean, and SolidChild.
| virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::XYZPoint & | Point, | |
| const Gaudi::XYZVector & | Vector, | |||
| Ticks & | ticks | |||
| ) | const [pure virtual] |
calculate the intersection points("ticks") of the solid objects with given line.

is a point on the line
is a vector along the line
) and Vector (
) are defined in local reference system of the solid | Point | initial point for the line | |
| Vector | vector along the line | |
| ticks | output container of "Ticks" |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
| virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::Polar3DPoint & | Point, | |
| const Gaudi::Polar3DVector & | Vector, | |||
| Ticks & | ticks | |||
| ) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
| virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::RhoZPhiPoint & | Point, | |
| const Gaudi::RhoZPhiVector & | Vector, | |||
| Ticks & | ticks | |||
| ) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
| virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::XYZPoint & | Point, | |
| const Gaudi::XYZVector & | Vector, | |||
| const Tick & | tickMin, | |||
| const Tick & | tickMax, | |||
| Ticks & | ticks | |||
| ) | const [pure virtual] |
calculate the intersection points("ticks") of the solid objects with given line.

is a point on the line
is a vector along the line
) and Vector (
) are defined in local reference system of the solid Only intersection ticks within the range tickMin and tickMax are taken into account. | Point | initial point for the line | |
| Vector | vector along the line | |
| tickMin | minimum value of Tick | |
| tickMax | maximu value of Tick | |
| ticks | output container of "Ticks" |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidCons, and SolidTubs.
| virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::Polar3DPoint & | Point, | |
| const Gaudi::Polar3DVector & | Vector, | |||
| const Tick & | tickMin, | |||
| const Tick & | tickMax, | |||
| Ticks & | ticks | |||
| ) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidCons, and SolidTubs.
| virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::RhoZPhiPoint & | Point, | |
| const Gaudi::RhoZPhiVector & | Vector, | |||
| const Tick & | tickMin, | |||
| const Tick & | tickMax, | |||
| Ticks & | ticks | |||
| ) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidCons, and SolidTubs.
| virtual Ticks::size_type ISolid::maxNumberOfTicks | ( | ) | const [pure virtual] |
Calculate the maximum number of ticks that a straight line could make with this solid.
Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
1.4.7