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

In This Package:

GeometryInfoPlus Class Reference

Based on "most trivial" implementation of Vanya Belyaev and Sebastien Ponce. More...

#include <Lib/GeometryInfoPlus.h>

Inheritance diagram for GeometryInfoPlus:

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

Public Types

typedef std::vector< std::string > ChildName
 type of vector of children's names
typedef std::vector< Gaudi::Transform3D
>::const_iterator 
matrix_iterator
typedef std::vector< IGeometryInfo * > IGIChildren
typedef IGeometryInfo::IGIChildrens::iterator iGInfo_iterator
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

 GeometryInfoPlus (IDetectorElement *de)
 constructor, creates "ghost"
 GeometryInfoPlus (IDetectorElement *de, const std::string &LogVol)
 constructor, creates "orphan"
 GeometryInfoPlus (IDetectorElement *de, const std::string &LogVol, const std::string &Support, const ILVolume::ReplicaPath &ReplicaPath, const std::string &alignmentPath="")
 constructor, create regular element
 GeometryInfoPlus (IDetectorElement *de, const std::string &LogVol, const std::string &Support, const std::string &ReplicaNamePath, const std::string &alignmentPath="")
 constructor, create regular element
virtual ~GeometryInfoPlus ()
 Destructor.
StatusCode initialize ()
StatusCode cache ()
StatusCode updateChildren ()
bool hasLVolume () const
 Is the GeometryInfo object associated with Logical Volume? This is to distinguish the Ghost case from the others.
bool hasSupport () const
 Has the GeometryInfo object support in Geometry tree? distinguish "regular" from others.
const AlignmentConditionalignmentCondition () const
 Access to this IGeometryInfo condition.
const Gaudi::Transform3DtoLocalMatrix () const
 Full transformation matrix from Global Reference System to the local reference system of this Geometry Info object, including misalignments.
const Gaudi::Transform3DtoGlobalMatrix () const
 transformation matrix from Local Reference System to the Global Reference System of this IGeometryInfo.
const Gaudi::Transform3DtoLocalMatrixNominal () const
 Ideal transformation matrix from Global Reference System to the local reference system of this Geometry Info object, excluding misalignments.
const Gaudi::Transform3DtoGlobalMatrixNominal () const
 Ideal transformation matrix from local Reference System to the global reference system of this Geometry Info object, excluding misalignments.
const Gaudi::Transform3DownToLocalMatrixNominal () const
 Ideal transformation matrix from parent Reference System to the local reference system of this Geometry Info object, excluding misalignment.
const Gaudi::Transform3DownToNominalMatrix () const
 Transformation that takes this IGeometryInfoPlus from an off-nominal position within a its parent to the nominal one.
Gaudi::Transform3D ownToOffNominalMatrix () const
 Transformation that takes this IGeometryInfoPlus from a nominal position within a its parent to the off-nominal one.
Gaudi::Transform3D ownMatrix () const
 Transformation from this reference frame to the reference frame of the parent.
StatusCode ownToOffNominalMatrix (const Gaudi::Transform3D &)
 Upate the nominal-> off-nominal 3D transformation of this IGeometryInfo.
StatusCode ownToOffNominalParams (const std::vector< double > &trans, const std::vector< double > &rot, const std::vector< double > &pivot=std::vector< double >(3))
 Update the transformation parametrs describing the nominal->off-nominal 3D transformation of this GeometryInfo.
Gaudi::XYZPoint toLocal (const Gaudi::XYZPoint &globalPoint) const
 Perform transformation of point from the Global Reference System to Local Reference System of Geometry Info object.
Gaudi::XYZPoint toGlobal (const Gaudi::XYZPoint &localPoint) const
 perform transformation of point from the LocalReference System to Global Reference System
Gaudi::XYZVector toLocal (const Gaudi::XYZVector &globalDirection) const
 Perform transformation a vector from the Global Reference System to Local Reference System of Geometry Info object.
Gaudi::XYZVector toGlobal (const Gaudi::XYZVector &localDirection) const
 Perform transformation of a vector from the Local Reference System to the Global Reference System.
bool isInside (const Gaudi::XYZPoint &globalPoint) const
 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.

std::string belongsToPath (const Gaudi::XYZPoint &globalPoint)
 return the name of the daughter element to which the given point belongs to
IGeometryInfobelongsTo (const Gaudi::XYZPoint &globalPoint)
 return the C++ pointer to the daughter element to which the given point belongs to
std::string belongsToPath (const Gaudi::XYZPoint &globalPoint, const int level)
 return the name of the daughter element to which the given point belongs to (taking into account the level)
IGeometryInfobelongsTo (const Gaudi::XYZPoint &globalPoint, const int level)
 return the C++ pointer to the daughter element to which the given point belongs to (taking into account the level)
StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, IGeometryInfo *&start, ILVolume::PVolumePath &volumePath)
 return the full geometry info for a given point in the global reference system
StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, IGeometryInfo *&start, ILVolume::ReplicaPath &volumePath)
 return the full geometry info for a given point in the global reference system
StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, std::string &start, ILVolume::PVolumePath &volumePath)
 return the full geometry info for a given point in the global reference system
StatusCode fullGeoInfoForPoint (const Gaudi::XYZPoint &point, const int level, std::string &start, ILVolume::ReplicaPath &volumePath)
 return the full geometry info for a given point in the global reference system
const std::string & lvolumeName () const
 return the name of the assosiated logical volume
const ILVolumelvolume () const
 return the C++ pointer4 to the assosiated logical volume
StatusCode location (IGeometryInfo *&start, ILVolume::ReplicaPath &replicaPath) const
 return the location (address) of this geometry object
StatusCode location (std::string &start, ILVolume::ReplicaPath &replicaPath) const
 return the location (address) of this geometry object
IGeometryInfosupportIGeometryInfo () const
 return the IGeometryInfo supporting this one.
std::string lvolumePath (const std::string &start, const ILVolume::ReplicaPath &replicaPath)
 return the name of the logical volume with a given address
const ILVolumelvolume (const std::string &start, const ILVolume::ReplicaPath &replicaPath)
 return the C++ pointer to the logical volume with a given address
std::string lvolumePath (IGeometryInfo *start, const ILVolume::ReplicaPath &replicaPath)
 return the name of the logical volume with a given address
const ILVolumelvolume (IGeometryInfo *start, const ILVolume::ReplicaPath &replicaPath)
 return the C++ pointer to the logical volume with a given address
const ILVolume::ReplicaPathsupportPath () const
 retrive reference to replica path (mistrerious "rpath" or "npath")
IGeometryInfoparentIGeometryInfo ()
 pointer to the parent IGeometryInfo
const IGeometryInfoparentIGeometryInfo () const
 pointer to the parent IGeometryInfo (const version)
IGeometryInfo::IGIChildrenschildIGeometryInfos ()
 (reference to) container of children IGeometryInfo
const IGeometryInfo::IGIChildrenschildIGeometryInfos () const
 (reference to) container of children IGeometryInfo
IGeometryInfo::IGIChildrens::const_iterator childBegin () const
 iterators for manipulation of daughter elements begin iterator
IGeometryInfo::IGIChildrens::iterator childBegin ()
 begin iterator (const version)
IGeometryInfo::IGIChildrens::iterator childEnd ()
 end iterator
IGeometryInfo::IGIChildrens::const_iterator childEnd () const
 end iterator (const version)
std::ostream & printOut (std::ostream &) const
 overloades printout to std::ostream
MsgStreamprintOut (MsgStream &) const
 overloaded printout to the MsgStream
IGeometryInforeset ()
 reset to the initial state
StatusCode queryInterface (const InterfaceID &ID, void **ppI)
 query the interface
unsigned long addRef ()
 add reference
unsigned long release ()
 release

Static Public Member Functions

static const InterfaceIDinterfaceID ()
 retrieve the uniqie interface identifier

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Private Member Functions

IMessageSvcmsgSvc () const
IDataProviderSvcdataSvc () const
ISvcLocatorsvcLocator () const
IUpdateManagerSvcupdMgrSvc (bool create=false) const
MsgStreamlog () const
bool isInsideDaughter (const Gaudi::XYZPoint &globalPoint) const
bool childLoaded () const
StatusCode registerSupportGI ()
 Register the parent IGeometryInfo.
StatusCode calculateMatrices ()
StatusCode combineMatrices (matrix_iterator deltaFirst, matrix_iterator deltaEnd, matrix_iterator pvFirst, matrix_iterator pvEnd)
StatusCode calculateFullMatrices (matrix_iterator deltaFirst, matrix_iterator deltaEnd, matrix_iterator pvFirst)
 Calculate the combined ideal and delta matrix connecting this IGeometryInfo to the global frame.
void calculateIdealMatrix (matrix_iterator pvFirst, matrix_iterator pvEnd)
 Calculate the total ideal matrix connecting this IGeometryInfo to the global frame.
StatusCode setLocalOffNominalDeltaMatrix (const Gaudi::Transform3D &newDelta)
 Force the local delta matrix to be newDelta and re-do all necessary matrix calculations.
StatusCode getAlignmentCondition ()
StatusCode registerCondition ()
void clearMatrices ()
bool needsAlignmentCondition () const
void needsAlignmentCondition (const bool &needsAlignment)
bool hasAlignmentCondition () const
void hasAlignmentCondition (const bool &hasAlignment)
AlignmentConditionmyAlignmentCondition () const
IDetectorElementparentIDetectorElement (IDetectorElement *iDetElem)
IGeometryInfogeoByName (const std::string &name) const
ILVolumefindLogical () const
StatusCode loadChildren () const
 could throw GeometryInfoException
IDetectorElementdetElem () const
void Assert (bool assertion, const std::string &name) const
 Assertion JUAN: beware: dummies do nothing!
void Assert (bool assertion, const std::string &name, const GaudiException &ge) const
 Assertion.
Gaudi::Transform3DaccumulateMatrices (const ILVolume::PVolumePath &volumePath) const
bool idealMatrixLoaded ()
matrix_iterator idealBegin () const
matrix_iterator idealEnd () const
matrix_iterator deltaBegin () const
matrix_iterator deltaEnd () const

Private Attributes

MsgStreamm_log
bool m_gi_has_logical
 flag for logical volume association
std::string m_gi_lvolumeName
 name of logical volume ( full path (address) in the Transient Store )
ILVolumem_gi_lvolume
 C++ pointer to the logical volume (loaded on demand only!).
bool m_hasAlignment
std::string m_alignmentPath
bool m_hasAlignmentPath
AlignmentConditionm_alignmentCondition
Gaudi::Transform3Dm_matrix
 Transformation from the global reference system to the local reference system.
Gaudi::Transform3Dm_idealMatrix
 Transformation from the global reference system to the local reference system.
Gaudi::Transform3Dm_localIdealMatrix
Gaudi::Transform3Dm_localDeltaMatrix
Gaudi::Transform3Dm_matrixInv
 transformation FROM local reference system to the global reference system
Gaudi::Transform3Dm_idealMatrixInv
bool m_gi_has_support
 flag for support association
std::string m_gi_supportName
 name of DetectorElement (full path(address) in the Transient Store) , which supports the addres)
IGeometryInfom_gi_support
 C++ pointer to element, which supports the address (loaded on demand).
ILVolume::ReplicaPath m_gi_supportPath
 the address itself (numeric replic apath)
std::string m_gi_supportNamePath
 another form of address (name replica path)
IDetectorElementm_gi_iDetectorElement
 The corresponding IDtectorElement object.
bool m_gi_parentLoaded
 flag for parent object
IGeometryInfom_gi_parent
 C++ pointer to parent object (resolved on demand only).
bool m_gi_childLoaded
 flag for children objects
IGeometryInfo::IGIChildrens m_gi_childrens
 container of pointers to children objects (resolved on demand only)
GeometryInfoPlus::ChildName m_gi_childrensNames
 container of names of children objects (resolved on demand only)
DetDesc::Servicesm_services
 reference to services
std::vector< Gaudi::Transform3Dm_pvMatrices
 Keep for now the local and all the parents ideal and delta transformation matrices.
std::vector< Gaudi::Transform3Dm_deltaMatrices
bool m_has_condition
 flag for alignment condition
std::string m_gi_condPath
 Path on data store where alignment condition is to be found.

Static Private Attributes

static unsigned long m_count
 object/reference counter

Friends

class DetectorElement
 friend class

Detailed Description

Based on "most trivial" implementation of Vanya Belyaev and Sebastien Ponce.

Author:
Vanya Belyaev

Sebastien Ponce

Juan PALACIOS

Date:
2005-04-28

Definition at line 45 of file GeometryInfoPlus.h.


Member Typedef Documentation

typedef std::vector<std::string> GeometryInfoPlus::ChildName

type of vector of children's names

Definition at line 53 of file GeometryInfoPlus.h.

typedef std::vector<Gaudi::Transform3D>::const_iterator GeometryInfoPlus::matrix_iterator

Definition at line 55 of file GeometryInfoPlus.h.

typedef std::vector<IGeometryInfo*> GeometryInfoPlus::IGIChildren

Definition at line 57 of file GeometryInfoPlus.h.

typedef IGeometryInfo::IGIChildrens::iterator GeometryInfoPlus::iGInfo_iterator

Definition at line 58 of file GeometryInfoPlus.h.

typedef std::vector<IGeometryInfo*> IGeometryInfo::IGIChildrens [inherited]

type of vector of daughter elements

Definition at line 39 of file IGeometryInfo.h.

typedef IGeometryInfo::IGIChildrens::iterator IGeometryInfo::IGIChildrenIterator [inherited]

Definition at line 40 of file IGeometryInfo.h.

typedef IGeometryInfo::IGIChildrens::const_iterator IGeometryInfo::IGIChildrenConstIterator [inherited]

Definition at line 41 of file IGeometryInfo.h.


Constructor & Destructor Documentation

GeometryInfoPlus::GeometryInfoPlus ( IDetectorElement de  ) 

constructor, creates "ghost"

Parameters:
de pointer to detector element

GeometryInfoPlus::GeometryInfoPlus ( IDetectorElement de,
const std::string &  LogVol 
)

constructor, creates "orphan"

Parameters:
de pointer to detector element
LogVol name of logical volume

GeometryInfoPlus::GeometryInfoPlus ( IDetectorElement de,
const std::string &  LogVol,
const std::string &  Support,
const ILVolume::ReplicaPath ReplicaPath,
const std::string &  alignmentPath = "" 
)

constructor, create regular element

Parameters:
de pointer to detector element
LogVol name of logical volume
Support name of support element
ReplicaPath replica path/address
alignmentPath alignment path/address

GeometryInfoPlus::GeometryInfoPlus ( IDetectorElement de,
const std::string &  LogVol,
const std::string &  Support,
const std::string &  ReplicaNamePath,
const std::string &  alignmentPath = "" 
)

constructor, create regular element

Parameters:
de pointer to detector element
LogVol name of logical volume
Support name of support element
ReplicaNamePath replica path/address
alignmentPath alignment path/address

virtual GeometryInfoPlus::~GeometryInfoPlus (  )  [virtual]

Destructor.


Member Function Documentation

StatusCode GeometryInfoPlus::initialize (  ) 

StatusCode GeometryInfoPlus::cache (  )  [virtual]

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::updateChildren (  )  [virtual]

Implements IGeometryInfo.

bool GeometryInfoPlus::hasLVolume (  )  const [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.

Implements IGeometryInfo.

bool GeometryInfoPlus::hasSupport (  )  const [virtual]

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

Implements IGeometryInfo.

const AlignmentCondition* GeometryInfoPlus::alignmentCondition (  )  const [virtual]

Access to this IGeometryInfo condition.

Implements IGeometryInfo.

const Gaudi::Transform3D& GeometryInfoPlus::toLocalMatrix (  )  const [virtual]

Full transformation matrix from Global Reference System to the local reference system of this Geometry Info object, including misalignments.

Implements IGeometryInfo.

const Gaudi::Transform3D& GeometryInfoPlus::toGlobalMatrix (  )  const [virtual]

transformation matrix from Local Reference System to the Global Reference System of this IGeometryInfo.

See also:
toLocalMatrix()
  • for "ghosts","orphans" and top-level elements it is just an Identity transformation
Returns:
the 3D transformation from the local to the global reference system

Implements IGeometryInfo.

const Gaudi::Transform3D& GeometryInfoPlus::toLocalMatrixNominal (  )  const [virtual]

Ideal transformation matrix from Global Reference System to the local reference system of this Geometry Info object, excluding misalignments.

See also:
toGlobalMatrixNominal()
Returns:
the 3D transformation from the "Global" reference system in the nominal frame.

Implements IGeometryInfo.

const Gaudi::Transform3D& GeometryInfoPlus::toGlobalMatrixNominal (  )  const [virtual]

Ideal transformation matrix from local Reference System to the global reference system of this Geometry Info object, excluding misalignments.

See also:
toLocalMatrixNominal()
Returns:
the 3D transformation from "Local" system in the nominal frame.

Implements IGeometryInfo.

const Gaudi::Transform3D& GeometryInfoPlus::ownToLocalMatrixNominal (  )  const [virtual]

Ideal transformation matrix from parent Reference System to the local reference system of this Geometry Info object, excluding misalignment.

See also:
ownToGlobalMatrixNominal()
Returns:
the transformation from parent's reference system in the nominal frame.

Implements IGeometryInfo.

const Gaudi::Transform3D& GeometryInfoPlus::ownToNominalMatrix (  )  const [virtual]

Transformation that takes this IGeometryInfoPlus from an off-nominal position within a its parent to the nominal one.

It can be thought of as the inverse of the "delta" matrix.

Returns:
the 3D transformation that returns an off-nominal position to the nominal position in the frame of the parent

Implements IGeometryInfo.

Gaudi::Transform3D GeometryInfoPlus::ownToOffNominalMatrix (  )  const [virtual]

Transformation that takes this IGeometryInfoPlus from a nominal position within a its parent to the off-nominal one.

It can be thought of as the "delta" matrix.

Returns:
the 3D transformation that returns a nominal position to the off-nominal position in the frame of the parent

Implements IGeometryInfo.

Gaudi::Transform3D GeometryInfoPlus::ownMatrix (  )  const [virtual]

Transformation from this reference frame to the reference frame of the parent.

Includes local misalignment.

Returns:
the 3D transrmation taking this frame to the frame of the parent.

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::ownToOffNominalMatrix ( const Gaudi::Transform3D  )  [virtual]

Upate the nominal-> off-nominal 3D transformation of this IGeometryInfo.

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::ownToOffNominalParams ( const std::vector< double > &  trans,
const std::vector< double > &  rot,
const std::vector< double > &  pivot = std::vector< double >(3) 
) [virtual]

Update the transformation parametrs describing the nominal->off-nominal 3D transformation of this GeometryInfo.

Implements IGeometryInfo.

Gaudi::XYZPoint GeometryInfoPlus::toLocal ( const Gaudi::XYZPoint globalPoint  )  const [virtual]

Perform transformation of point from the Global Reference System to Local Reference System of Geometry Info object.

See also:
toLocalMatrix()

toGlobalMatrix()

toGlobal( const Gaudi::XYZPoint&)

Parameters:
globalPoint point in Global Reference System
Returns:
point in Local reference system

Implements IGeometryInfo.

Gaudi::XYZPoint GeometryInfoPlus::toGlobal ( const Gaudi::XYZPoint localPoint  )  const [virtual]

perform transformation of point from the LocalReference System to Global Reference System

See also:
toLocalMatrix()

toGlobalMatrix()

toLocal( const Gaudi::XYZPoint&)

Parameters:
localPoint point in Local Reference System
Returns:
point in Global reference system

Implements IGeometryInfo.

Gaudi::XYZVector GeometryInfoPlus::toLocal ( const Gaudi::XYZVector globalDirection  )  const [virtual]

Perform transformation a vector from the Global Reference System to Local Reference System of Geometry Info object.

See also:
toLocalMatrix()

toGlobalMatrix()

toGlobal( const Gaudi::XYZVector&)

Parameters:
globalDirection vector in Global Reference System
Returns:
vector in Local reference system direction

Implements IGeometryInfo.

Gaudi::XYZVector GeometryInfoPlus::toGlobal ( const Gaudi::XYZVector localDirection  )  const [virtual]

Perform transformation of a vector from the Local Reference System to the Global Reference System.

See also:
toLocalMatrix()

toGlobalMatrix()

toLocal( const Gaudi::XYZVector&)

Parameters:
localDirection vector in Local Reference System
Returns:
vector in Global reference system direction

Implements IGeometryInfo.

bool GeometryInfoPlus::isInside ( const Gaudi::XYZPoint globalPoint  )  const [virtual]

Check for given 3D-point - "Is inside the volume?"

by considering the point as "local point". Within this approach the previous case is just the combination of transformation into local frame and then *is inside* method for pseudo-orphan.

Implements IGeometryInfo.

std::string GeometryInfoPlus::belongsToPath ( const Gaudi::XYZPoint globalPoint  )  [virtual]

return the name of the daughter element to which the given point belongs to

Implements IGeometryInfo.

IGeometryInfo* GeometryInfoPlus::belongsTo ( const Gaudi::XYZPoint globalPoint  )  [virtual]

return the C++ pointer to the daughter element to which the given point belongs to

Implements IGeometryInfo.

std::string GeometryInfoPlus::belongsToPath ( const Gaudi::XYZPoint globalPoint,
const int  level 
) [virtual]

return the name of the daughter element to which the given point belongs to (taking into account the level)

Implements IGeometryInfo.

IGeometryInfo* GeometryInfoPlus::belongsTo ( const Gaudi::XYZPoint globalPoint,
const int  level 
) [virtual]

return the C++ pointer to the daughter element to which the given point belongs to (taking into account the level)

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::fullGeoInfoForPoint ( const Gaudi::XYZPoint point,
const int  level,
IGeometryInfo *&  start,
ILVolume::PVolumePath volumePath 
) [virtual]

return the full geometry info for a given point in the global reference system

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::fullGeoInfoForPoint ( const Gaudi::XYZPoint point,
const int  level,
IGeometryInfo *&  start,
ILVolume::ReplicaPath volumePath 
) [virtual]

return the full geometry info for a given point in the global reference system

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::fullGeoInfoForPoint ( const Gaudi::XYZPoint point,
const int  level,
std::string &  start,
ILVolume::PVolumePath volumePath 
) [virtual]

return the full geometry info for a given point in the global reference system

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::fullGeoInfoForPoint ( const Gaudi::XYZPoint point,
const int  level,
std::string &  start,
ILVolume::ReplicaPath volumePath 
) [virtual]

return the full geometry info for a given point in the global reference system

Implements IGeometryInfo.

const std::string& GeometryInfoPlus::lvolumeName (  )  const [inline, virtual]

return the name of the assosiated logical volume

Implements IGeometryInfo.

Definition at line 201 of file GeometryInfoPlus.h.

00201 { return m_gi_lvolumeName; }

const ILVolume* GeometryInfoPlus::lvolume (  )  const [virtual]

return the C++ pointer4 to the assosiated logical volume

Implements IGeometryInfo.

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

return the location (address) of this geometry object

Implements IGeometryInfo.

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

return the location (address) of this geometry object

Implements IGeometryInfo.

IGeometryInfo* GeometryInfoPlus::supportIGeometryInfo (  )  const [virtual]

return the IGeometryInfo supporting this one.

Implements IGeometryInfo.

std::string GeometryInfoPlus::lvolumePath ( const std::string &  start,
const ILVolume::ReplicaPath replicaPath 
) [virtual]

return the name of the logical volume with a given address

Implements IGeometryInfo.

const ILVolume* GeometryInfoPlus::lvolume ( const std::string &  start,
const ILVolume::ReplicaPath replicaPath 
) [virtual]

return the C++ pointer to the logical volume with a given address

Implements IGeometryInfo.

std::string GeometryInfoPlus::lvolumePath ( IGeometryInfo start,
const ILVolume::ReplicaPath replicaPath 
) [virtual]

return the name of the logical volume with a given address

Implements IGeometryInfo.

const ILVolume* GeometryInfoPlus::lvolume ( IGeometryInfo start,
const ILVolume::ReplicaPath replicaPath 
) [virtual]

return the C++ pointer to the logical volume with a given address

Implements IGeometryInfo.

const ILVolume::ReplicaPath& GeometryInfoPlus::supportPath (  )  const [virtual]

retrive reference to replica path (mistrerious "rpath" or "npath")

Implements IGeometryInfo.

IGeometryInfo* GeometryInfoPlus::parentIGeometryInfo (  )  [virtual]

pointer to the parent IGeometryInfo

Implements IGeometryInfo.

const IGeometryInfo* GeometryInfoPlus::parentIGeometryInfo (  )  const [virtual]

pointer to the parent IGeometryInfo (const version)

Implements IGeometryInfo.

IGeometryInfo::IGIChildrens& GeometryInfoPlus::childIGeometryInfos (  )  [inline, virtual]

(reference to) container of children IGeometryInfo

Implements IGeometryInfo.

Definition at line 246 of file GeometryInfoPlus.h.

00247   {
00248     if( !m_gi_childLoaded ) loadChildren(); 
00249     return m_gi_childrens; 
00250   }

const IGeometryInfo::IGIChildrens& GeometryInfoPlus::childIGeometryInfos (  )  const [inline, virtual]

(reference to) container of children IGeometryInfo

Implements IGeometryInfo.

Definition at line 252 of file GeometryInfoPlus.h.

00253   {
00254     if( !m_gi_childLoaded ) loadChildren();
00255     return m_gi_childrens; 
00256   }

IGeometryInfo::IGIChildrens::const_iterator GeometryInfoPlus::childBegin (  )  const [inline, virtual]

iterators for manipulation of daughter elements begin iterator

Implements IGeometryInfo.

Definition at line 259 of file GeometryInfoPlus.h.

00260   {
00261      if( !m_gi_childLoaded ) {  
00262        try{ loadChildren(); }
00263        catch(...) { return m_gi_childrens.end(); }
00264      }
00265      return m_gi_childrens.begin();
00266   }

IGeometryInfo::IGIChildrens::iterator GeometryInfoPlus::childBegin (  )  [inline, virtual]

begin iterator (const version)

Implements IGeometryInfo.

Definition at line 270 of file GeometryInfoPlus.h.

00271   {  
00272     if( !m_gi_childLoaded ) 
00273     {  try{ loadChildren(); } catch(...){ return m_gi_childrens.end(); }  }
00274     return m_gi_childrens.begin(); 
00275   }

IGeometryInfo::IGIChildrens::iterator GeometryInfoPlus::childEnd (  )  [inline, virtual]

end iterator

Implements IGeometryInfo.

Definition at line 278 of file GeometryInfoPlus.h.

00279   {
00280     if( !m_gi_childLoaded ) 
00281     {  try{ loadChildren(); } catch(...){ return m_gi_childrens.end(); }  }
00282     return m_gi_childrens.end(); 
00283   }

IGeometryInfo::IGIChildrens::const_iterator GeometryInfoPlus::childEnd (  )  const [inline, virtual]

end iterator (const version)

Implements IGeometryInfo.

Definition at line 287 of file GeometryInfoPlus.h.

00288   {
00289     if( !m_gi_childLoaded ) 
00290     {  try{ loadChildren(); } catch(...){ return m_gi_childrens.end(); }  }
00291     return m_gi_childrens.end(); 
00292   }

std::ostream& GeometryInfoPlus::printOut ( std::ostream &   )  const [virtual]

overloades printout to std::ostream

Implements IGeometryInfo.

MsgStream& GeometryInfoPlus::printOut ( MsgStream  )  const [virtual]

overloaded printout to the MsgStream

Implements IGeometryInfo.

IGeometryInfo* GeometryInfoPlus::reset (  )  [virtual]

reset to the initial state

Implements IGeometryInfo.

StatusCode GeometryInfoPlus::queryInterface ( const InterfaceID ID,
void **  ppI 
) [virtual]

query the interface

Parameters:
ID interface identifier
ppI placeholder for returned interface
Returns:
status code

Implements IInterface.

unsigned long GeometryInfoPlus::addRef (  )  [inline, virtual]

add reference

Implements IInterface.

Definition at line 308 of file GeometryInfoPlus.h.

00309   {
00310     return 0;
00311   }

unsigned long GeometryInfoPlus::release (  )  [inline, virtual]

release

Implements IInterface.

Definition at line 314 of file GeometryInfoPlus.h.

00315   {
00316     return 0;
00317   }

IMessageSvc* GeometryInfoPlus::msgSvc (  )  const [inline, private]

Definition at line 327 of file GeometryInfoPlus.h.

00327                                            {
00328     return m_services->msgSvc();
00329   }

IDataProviderSvc* GeometryInfoPlus::dataSvc (  )  const [inline, private]

Definition at line 330 of file GeometryInfoPlus.h.

00330                                             {
00331     return m_services->detSvc();
00332   }

ISvcLocator* GeometryInfoPlus::svcLocator (  )  const [inline, private]

Definition at line 333 of file GeometryInfoPlus.h.

00333                                                {
00334     return m_services->svcLocator();
00335   }

IUpdateManagerSvc* GeometryInfoPlus::updMgrSvc ( bool  create = false  )  const [inline, private]

Definition at line 336 of file GeometryInfoPlus.h.

00336                                                                  {
00337     return m_services->updMgrSvc(create);
00338   }

MsgStream& GeometryInfoPlus::log (  )  const [inline, private]

Definition at line 340 of file GeometryInfoPlus.h.

00340 { return *m_log; }

bool GeometryInfoPlus::isInsideDaughter ( const Gaudi::XYZPoint globalPoint  )  const [inline, private]

Definition at line 342 of file GeometryInfoPlus.h.

00343   {
00344     if( !childLoaded() || loadChildren().isFailure() )  return false;
00345     IGeometryInfo::IGIChildrens::const_iterator it = 
00346       std::find_if( childBegin() , childEnd  () , 
00347                     IGeometryInfo_isInside( globalPoint ) ) ;  
00348     return ( ( childEnd() == it ) ? false : true );
00349   }

bool GeometryInfoPlus::childLoaded (  )  const [inline, private]

Definition at line 351 of file GeometryInfoPlus.h.

00351 { return m_gi_childLoaded ; }

StatusCode GeometryInfoPlus::registerSupportGI (  )  [private]

Register the parent IGeometryInfo.

This should trigger a re-cahing if a parent changes its validity.

StatusCode GeometryInfoPlus::calculateMatrices (  )  [private]

StatusCode GeometryInfoPlus::combineMatrices ( matrix_iterator  deltaFirst,
matrix_iterator  deltaEnd,
matrix_iterator  pvFirst,
matrix_iterator  pvEnd 
) [private]

StatusCode GeometryInfoPlus::calculateFullMatrices ( matrix_iterator  deltaFirst,
matrix_iterator  deltaEnd,
matrix_iterator  pvFirst 
) [private]

Calculate the combined ideal and delta matrix connecting this IGeometryInfo to the global frame.

Set the corresponding inverse matrix.

void GeometryInfoPlus::calculateIdealMatrix ( matrix_iterator  pvFirst,
matrix_iterator  pvEnd 
) [private]

Calculate the total ideal matrix connecting this IGeometryInfo to the global frame.

Set the corresponding inverse matrix.

StatusCode GeometryInfoPlus::setLocalOffNominalDeltaMatrix ( const Gaudi::Transform3D newDelta  )  [private]

Force the local delta matrix to be newDelta and re-do all necessary matrix calculations.

StatusCode GeometryInfoPlus::getAlignmentCondition (  )  [private]

StatusCode GeometryInfoPlus::registerCondition (  )  [private]

void GeometryInfoPlus::clearMatrices (  )  [private]

bool GeometryInfoPlus::needsAlignmentCondition (  )  const [inline, private]

Definition at line 389 of file GeometryInfoPlus.h.

00390   {
00391     return m_hasAlignmentPath;
00392   }

void GeometryInfoPlus::needsAlignmentCondition ( const bool &  needsAlignment  )  [inline, private]

Definition at line 394 of file GeometryInfoPlus.h.

00395   {
00396     m_hasAlignmentPath = needsAlignment;
00397   }

bool GeometryInfoPlus::hasAlignmentCondition (  )  const [inline, private]

Definition at line 399 of file GeometryInfoPlus.h.

00400   {
00401     return m_hasAlignment;
00402   }

void GeometryInfoPlus::hasAlignmentCondition ( const bool &  hasAlignment  )  [inline, private]

Definition at line 404 of file GeometryInfoPlus.h.

00405   {
00406     m_hasAlignment = hasAlignment;
00407   }

AlignmentCondition* GeometryInfoPlus::myAlignmentCondition (  )  const [inline, private]

Definition at line 409 of file GeometryInfoPlus.h.

00410   {
00411     return m_alignmentCondition;
00412   }  

IDetectorElement* GeometryInfoPlus::parentIDetectorElement ( IDetectorElement iDetElem  )  [inline, private]

Definition at line 414 of file GeometryInfoPlus.h.

00415   {
00416     return (0!=iDetElem) ? iDetElem->parentIDetectorElement() : 0; 
00417   }

IGeometryInfo* GeometryInfoPlus::geoByName ( const std::string &  name  )  const [private]

ILVolume* GeometryInfoPlus::findLogical (  )  const [private]

StatusCode GeometryInfoPlus::loadChildren (  )  const [private]

could throw GeometryInfoException

IDetectorElement* GeometryInfoPlus::detElem (  )  const [inline, private]

Definition at line 425 of file GeometryInfoPlus.h.

00425                                            { 
00426     return m_gi_iDetectorElement ;
00427   }

void GeometryInfoPlus::Assert ( bool  assertion,
const std::string &  name 
) const [inline, private]

Assertion JUAN: beware: dummies do nothing!

Definition at line 430 of file GeometryInfoPlus.h.

00431                                                     {
00432     if( !assertion ) { throw GeometryInfoException( name , this ); }
00433   }; 

void GeometryInfoPlus::Assert ( bool  assertion,
const std::string &  name,
const GaudiException ge 
) const [inline, private]

Assertion.

Definition at line 436 of file GeometryInfoPlus.h.

00437                                                        {
00438     if( !assertion ) { throw GeometryInfoException( name , ge , this ); }
00439   };

Gaudi::Transform3D* GeometryInfoPlus::accumulateMatrices ( const ILVolume::PVolumePath volumePath  )  const [private]

bool GeometryInfoPlus::idealMatrixLoaded (  )  [inline, private]

Definition at line 445 of file GeometryInfoPlus.h.

00445 { return (0!= m_idealMatrix); }

matrix_iterator GeometryInfoPlus::idealBegin (  )  const [inline, private]

Definition at line 543 of file GeometryInfoPlus.h.

00544   {
00545     return m_pvMatrices.begin();
00546   }

matrix_iterator GeometryInfoPlus::idealEnd (  )  const [inline, private]

Definition at line 548 of file GeometryInfoPlus.h.

00549   {
00550     return m_pvMatrices.end();
00551   }

matrix_iterator GeometryInfoPlus::deltaBegin (  )  const [inline, private]

Definition at line 553 of file GeometryInfoPlus.h.

00554   {
00555     return m_deltaMatrices.begin();
00556   }

matrix_iterator GeometryInfoPlus::deltaEnd (  )  const [inline, private]

Definition at line 558 of file GeometryInfoPlus.h.

00559   {
00560     return m_deltaMatrices.end();
00561   }

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

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; }


Friends And Related Function Documentation

friend class DetectorElement [friend]

friend class

Definition at line 48 of file GeometryInfoPlus.h.


Member Data Documentation

MsgStream* GeometryInfoPlus::m_log [private]

Definition at line 449 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_gi_has_logical [private]

flag for logical volume association

Definition at line 452 of file GeometryInfoPlus.h.

std::string GeometryInfoPlus::m_gi_lvolumeName [private]

name of logical volume ( full path (address) in the Transient Store )

Definition at line 456 of file GeometryInfoPlus.h.

ILVolume* GeometryInfoPlus::m_gi_lvolume [mutable, private]

C++ pointer to the logical volume (loaded on demand only!).

Definition at line 458 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_hasAlignment [private]

Definition at line 460 of file GeometryInfoPlus.h.

std::string GeometryInfoPlus::m_alignmentPath [private]

Definition at line 462 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_hasAlignmentPath [private]

Definition at line 464 of file GeometryInfoPlus.h.

AlignmentCondition* GeometryInfoPlus::m_alignmentCondition [private]

Definition at line 466 of file GeometryInfoPlus.h.

Gaudi::Transform3D* GeometryInfoPlus::m_matrix [mutable, private]

Transformation from the global reference system to the local reference system.

Total matrix, including ideal alignment plus deltas.

Definition at line 471 of file GeometryInfoPlus.h.

Gaudi::Transform3D* GeometryInfoPlus::m_idealMatrix [mutable, private]

Transformation from the global reference system to the local reference system.

Ideal geometry with no misalignments.

Definition at line 476 of file GeometryInfoPlus.h.

Gaudi::Transform3D* GeometryInfoPlus::m_localIdealMatrix [mutable, private]

Definition at line 478 of file GeometryInfoPlus.h.

Gaudi::Transform3D* GeometryInfoPlus::m_localDeltaMatrix [mutable, private]

Definition at line 479 of file GeometryInfoPlus.h.

Gaudi::Transform3D* GeometryInfoPlus::m_matrixInv [mutable, private]

transformation FROM local reference system to the global reference system

Definition at line 489 of file GeometryInfoPlus.h.

Gaudi::Transform3D* GeometryInfoPlus::m_idealMatrixInv [mutable, private]

Definition at line 490 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_gi_has_support [private]

flag for support association

Definition at line 493 of file GeometryInfoPlus.h.

std::string GeometryInfoPlus::m_gi_supportName [private]

name of DetectorElement (full path(address) in the Transient Store) , which supports the addres)

Definition at line 497 of file GeometryInfoPlus.h.

IGeometryInfo* GeometryInfoPlus::m_gi_support [mutable, private]

C++ pointer to element, which supports the address (loaded on demand).

Definition at line 499 of file GeometryInfoPlus.h.

ILVolume::ReplicaPath GeometryInfoPlus::m_gi_supportPath [mutable, private]

the address itself (numeric replic apath)

Definition at line 501 of file GeometryInfoPlus.h.

std::string GeometryInfoPlus::m_gi_supportNamePath [private]

another form of address (name replica path)

Definition at line 503 of file GeometryInfoPlus.h.

IDetectorElement* GeometryInfoPlus::m_gi_iDetectorElement [mutable, private]

The corresponding IDtectorElement object.

Definition at line 506 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_gi_parentLoaded [mutable, private]

flag for parent object

Definition at line 509 of file GeometryInfoPlus.h.

IGeometryInfo* GeometryInfoPlus::m_gi_parent [mutable, private]

C++ pointer to parent object (resolved on demand only).

Definition at line 511 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_gi_childLoaded [mutable, private]

flag for children objects

Definition at line 513 of file GeometryInfoPlus.h.

IGeometryInfo::IGIChildrens GeometryInfoPlus::m_gi_childrens [mutable, private]

container of pointers to children objects (resolved on demand only)

Definition at line 517 of file GeometryInfoPlus.h.

GeometryInfoPlus::ChildName GeometryInfoPlus::m_gi_childrensNames [mutable, private]

container of names of children objects (resolved on demand only)

Definition at line 521 of file GeometryInfoPlus.h.

unsigned long GeometryInfoPlus::m_count [static, private]

object/reference counter

Definition at line 524 of file GeometryInfoPlus.h.

DetDesc::Services* GeometryInfoPlus::m_services [private]

reference to services

Definition at line 527 of file GeometryInfoPlus.h.

std::vector<Gaudi::Transform3D> GeometryInfoPlus::m_pvMatrices [private]

Keep for now the local and all the parents ideal and delta transformation matrices.

The code is written such that these could become automatic, temporary objects in one algorithm. Juan.

Definition at line 533 of file GeometryInfoPlus.h.

std::vector<Gaudi::Transform3D> GeometryInfoPlus::m_deltaMatrices [private]

Definition at line 534 of file GeometryInfoPlus.h.

bool GeometryInfoPlus::m_has_condition [private]

flag for alignment condition

Definition at line 538 of file GeometryInfoPlus.h.

std::string GeometryInfoPlus::m_gi_condPath [private]

Path on data store where alignment condition is to be found.

Definition at line 540 of file GeometryInfoPlus.h.


The documentation for this class 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