| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

IGeometryInfo Interface Reference

An abstract interface to get all geometry information for detector element. More...

#include <DetDesc/IGeometryInfo.h>

Inheritance diagram for IGeometryInfo:

[legend]
Collaboration diagram for IGeometryInfo:
[legend]
List of all members.

Public Types

typedef std::vector< IGeometryInfo * > IGIChildrens
 type of vector of daughter elements
typedef IGeometryInfo::IGIChildrens::iterator IGIChildrenIterator
typedef IGeometryInfo::IGIChildrens::const_iterator IGIChildrenConstIterator
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

virtual StatusCode cache ()=0
virtual StatusCode updateChildren ()=0
virtual bool hasLVolume () const =0
 Is the GeometryInfo object associated with Logical Volume? This is to distinguish the Ghost case from the others.
virtual bool hasSupport () const =0
 Has the GeometryInfo object support in Geometry tree? distinguish "regular" from others.
virtual const AlignmentConditionalignmentCondition () const =0
 Access to this IGeometryInfo condition.
virtual const Gaudi::Transform3DtoLocalMatrix () const =0
 Full transformation matrix from Global Reference System to the local reference system of this Geometry Info object, including misalignments.
virtual const Gaudi::Transform3DtoLocalMatrixNominal () const =0
 Ideal transformation matrix from Global Reference System to the local reference system of this Geometry Info object, excluding misalignments.
virtual const Gaudi::Transform3DtoGlobalMatrixNominal () const =0
 Ideal transformation matrix from local Reference System to the global reference system of this Geometry Info object, excluding misalignments.
virtual const Gaudi::Transform3DownToLocalMatrixNominal () const =0
 Ideal transformation matrix from parent Reference System to the local reference system of this Geometry Info object, excluding misalignment.
virtual const Gaudi::Transform3DownToNominalMatrix () const =0
 Transformation that takes this IGeometryInfoPlus from an off-nominal position within a its parent to the nominal one.
virtual Gaudi::Transform3D ownToOffNominalMatrix () const =0
 Transformation that takes this IGeometryInfoPlus from a nominal position within a its parent to the off-nominal one.
virtual Gaudi::Transform3D ownMatrix () const =0
 Transformation from this reference frame to the reference frame of the parent.
virtual StatusCode ownToOffNominalMatrix (const Gaudi::Transform3D &)=0
 Upate the nominal-> off-nominal 3D transformation of this IGeometryInfo.
virtual StatusCode ownToOffNominalParams (const std::vector< double > &trans, const std::vector< double > &rot, const std::vector< double > &pivot=std::vector< double >(3))=0
 Update the transformation parametrs describing the nominal->off-nominal 3D transformation of this GeometryInfo.
virtual const Gaudi::Transform3DtoGlobalMatrix () const =0
 transformation matrix from Local Reference System to the Global Reference System of this IGeometryInfo.
virtual Gaudi::XYZPoint toLocal (const Gaudi::XYZPoint &globalPoint) const =0
 Perform transformation of point from the Global Reference System to Local Reference System of Geometry Info object.
virtual Gaudi::XYZPoint toGlobal (const Gaudi::XYZPoint &localPoint) const =0
 perform transformation of point from the LocalReference System to Global Reference System
virtual Gaudi::XYZVector toLocal (const Gaudi::XYZVector &globalDirection) const =0
 Perform transformation a vector from the Global Reference System to Local Reference System of Geometry Info object.
virtual Gaudi::XYZVector toGlobal (const Gaudi::XYZVector &localDirection) const =0
 Perform transformation of a vector from the Local Reference System to the Global Reference System.
virtual bool isInside (const Gaudi::XYZPoint &globalPoint) const =0
 Check for given 3D-point - "Is inside the volume?"
  • For regular case the defnition "is inside" is trivial
  • For "orphan" case the definition is less trivial but also can be defined in a proper way, e.g.

virtual std::string belongsToPath (const Gaudi::XYZPoint &globalPoint)=0
 To which daughter the given global point belongs to?
"Find daughter by point" family
If we are clever enough to define *isInside(.
virtual IGeometryInfobelongsTo (const Gaudi::XYZPoint &globalPoint)=0
 To which daughter the given global point belongs to?
"Find daughter by point" family
If we are clever enough to define *isInside(.
virtual std::string belongsToPath (const Gaudi::XYZPoint &globalPoint, const int level)=0
 To which daughter the given global point belongs to?
"Find daughter by point" family
If we are clever enough to define *isInside(.
virtual IGeometryInfobelongsTo (const Gaudi::XYZPoint &globalPoint, const int level)=0
 To which daughter the given global point belongs to?
"Find daughter by point" family
If we are clever enough to define *isInside(.
virtual StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, IGeometryInfo *&start, ILVolume::PVolumePath &volumePath)=0
 find full geometry information for given point
virtual StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, IGeometryInfo *&start, ILVolume::ReplicaPath &replicaPath)=0
 find full geometry information for given point
virtual StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, std::string &start, ILVolume::PVolumePath &volumePath)=0
 find full geometry information for given point
virtual StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, std::string &start, ILVolume::ReplicaPath &replicaPath)=0
 find full geometry information for given point
virtual const std::string & lvolumeName () const =0
 the name of associated Logical Volume
virtual const ILVolumelvolume () const =0
 associated Logical Volume
virtual StatusCode location (IGeometryInfo *&start, ILVolume::ReplicaPath &replicaPath) const =0
 the information about the support
virtual StatusCode location (std::string &start, ILVolume::ReplicaPath &replicaPath) const =0
 the information about the support
virtual std::string lvolumePath (const std::string &start, const ILVolume::ReplicaPath &replicaPath)=0
 the name of Logical Volume, addressed by start and Replica Path
virtual const ILVolumelvolume (const std::string &start, const ILVolume::ReplicaPath &replicaPath)=0
 the Logical Volume, addressed by start and Replica Path
virtual std::string lvolumePath (IGeometryInfo *start, const ILVolume::ReplicaPath &replicaPath)=0
 the name of Logical Volume, addressed by start and Replica Path
virtual const ILVolumelvolume (IGeometryInfo *start, const ILVolume::ReplicaPath &replicaPath)=0
 the Logical Volume, addressed by start and Replica Path
virtual const ILVolume::ReplicaPathsupportPath () const =0
 retrive reference to replica path (mistrerious "rpath" or "npath")
virtual IGeometryInfoparentIGeometryInfo ()=0
 pointer to the parent IGeometryInfo
virtual const IGeometryInfoparentIGeometryInfo () const =0
 pointer to the parent IGeometryInfo (const version)
virtual IGeometryInfosupportIGeometryInfo () const =0
virtual IGeometryInfo::IGIChildrenschildIGeometryInfos ()=0
 (reference to) container of children IGeometryInfo return reference to container of children IGeometryInfo
virtual const IGeometryInfo::IGIChildrenschildIGeometryInfos () const =0
 (reference to) container of children IGeometryInfo (const version) return reference to container of children IGeometryInfo
virtual IGeometryInfo::IGIChildrens::iterator childBegin ()=0
 "begin" iterator for manipulation of daughter elements return "begin" iterator
virtual IGeometryInfo::IGIChildrens::const_iterator childBegin () const =0
 "begin" iterator for manipulation of daughter elements (const version) return "begin" iterator
virtual IGeometryInfo::IGIChildrens::iterator childEnd ()=0
 "end" iterator for manipulation of daughter elements return "end" iterator
virtual IGeometryInfo::IGIChildrens::const_iterator childEnd () const =0
 "end" iterator for manipulation of daughter elements (const version) return "end" iterator
virtual std::ostream & printOut (std::ostream &os=std::cout) const =0
 printOut to STD/STL stream
virtual MsgStreamprintOut (MsgStream &) const =0
 printOut to Message stream return reference to Message stream
virtual IGeometryInforeset ()=0
 reset to the initial state, clear cache
virtual ~IGeometryInfo ()
 The 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 InterfaceIDinterfaceID ()
 retrieve the uniqie interface identifier

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Detailed Description

An abstract interface to get all geometry information for detector element.

Version:
3
Author:
Vanya Belyaev Ivan.Belyaev@itep.ru

Juan Palacios juancho@nikhef.nl

Date:
xx/xx/xxxx

Definition at line 34 of file IGeometryInfo.h.


Member Typedef Documentation

typedef std::vector<IGeometryInfo*> IGeometryInfo::IGIChildrens

type of vector of daughter elements

Definition at line 39 of file IGeometryInfo.h.

typedef IGeometryInfo::IGIChildrens::iterator IGeometryInfo::IGIChildrenIterator

Definition at line 40 of file IGeometryInfo.h.

typedef IGeometryInfo::IGIChildrens::const_iterator IGeometryInfo::IGIChildrenConstIterator

Definition at line 41 of file IGeometryInfo.h.


Constructor & Destructor Documentation

virtual IGeometryInfo::~IGeometryInfo (  )  [virtual]

The virtual destructor.


Member Function Documentation

static const InterfaceID& IGeometryInfo::interfaceID (  )  [inline, static]

retrieve the uniqie interface identifier

Returns:
the unique interface identifier

Reimplemented from IInterface.

Definition at line 45 of file IGeometryInfo.h.

00045 { return IID_IGeometryInfo; }

virtual StatusCode IGeometryInfo::cache (  )  [pure virtual]

Implemented in GeometryInfoPlus.

virtual StatusCode IGeometryInfo::updateChildren (  )  [pure virtual]

Implemented in GeometryInfoPlus.

virtual bool IGeometryInfo::hasLVolume (  )  const [pure virtual]

Is the GeometryInfo object associated with Logical Volume? This is to distinguish the Ghost case from the others.

A Detector Element ( or any arbitrary "Geometry Object") can be associated with Logical Volume in a Geometry Tree almost all behaviour of all other functions depends on the fact of this association.

There can be 3 types of such "association":

  1. "Regular case":
    • An Logical Volume embedded into the overall geometry tree is associated with this element.
  2. "Orphan":
    • A standalone Logical Volume ( which is not embedded into overall geometry tree ) is associated with this "geometry object". An interesting case: a "top" volume acts like "orphan" :-))
  3. "Ghost": No any Logical Volume is associated with this "geometry element". Can be useful for naming, grouping and classification and navigation.

Implemented in GeometryInfoPlus.

virtual bool IGeometryInfo::hasSupport (  )  const [pure virtual]

Has the GeometryInfo object support in Geometry tree? distinguish "regular" from others.

Implemented in GeometryInfoPlus.

virtual const AlignmentCondition* IGeometryInfo::alignmentCondition (  )  const [pure virtual]

Access to this IGeometryInfo condition.

Implemented in GeometryInfoPlus.

virtual const std::string& IGeometryInfo::lvolumeName (  )  const [pure virtual]

the name of associated Logical Volume

Returns:
the name of associated Logical Volume

Implemented in GeometryInfoPlus.

virtual const ILVolume* IGeometryInfo::lvolume (  )  const [pure virtual]

associated Logical Volume

Returns:
the pointer to associated Logical Volume

Implemented in GeometryInfoPlus.

virtual StatusCode IGeometryInfo::location ( IGeometryInfo *&  start,
ILVolume::ReplicaPath replicaPath 
) const [pure virtual]

the information about the support

Parameters:
start "start" geometry info
replicaPath replica path
Returns:
status code

Implemented in GeometryInfoPlus.

virtual StatusCode IGeometryInfo::location ( std::string &  start,
ILVolume::ReplicaPath replicaPath 
) const [pure virtual]

the information about the support

Parameters:
start "start" geometry info
replicaPath replica path
Returns:
status code

Implemented in GeometryInfoPlus.

virtual IGeometryInfo* IGeometryInfo::reset (  )  [pure virtual]

reset to the initial state, clear cache

Returns:
self-reference

Implemented in GeometryInfoPlus.


The documentation for this interface was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:18 2011 for DetDesc by doxygen 1.4.7