#include <Lib/GeometryInfoPlus.h>
Inheritance diagram for GeometryInfoPlus:
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 AlignmentCondition * | alignmentCondition () const |
Access to this IGeometryInfo condition. | |
const Gaudi::Transform3D & | toLocalMatrix () const |
Full transformation matrix from Global Reference System to the local reference system of this Geometry Info object, including misalignments. | |
const Gaudi::Transform3D & | toGlobalMatrix () const |
transformation matrix from Local Reference System to the Global Reference System of this IGeometryInfo. | |
const Gaudi::Transform3D & | toLocalMatrixNominal () const |
Ideal transformation matrix from Global Reference System to the local reference system of this Geometry Info object, excluding misalignments. | |
const Gaudi::Transform3D & | toGlobalMatrixNominal () const |
Ideal transformation matrix from local Reference System to the global reference system of this Geometry Info object, excluding misalignments. | |
const Gaudi::Transform3D & | ownToLocalMatrixNominal () const |
Ideal transformation matrix from parent Reference System to the local reference system of this Geometry Info object, excluding misalignment. | |
const Gaudi::Transform3D & | ownToNominalMatrix () 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?"
| |
std::string | belongsToPath (const Gaudi::XYZPoint &globalPoint) |
return the name of the daughter element to which the given point belongs to | |
IGeometryInfo * | belongsTo (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) | |
IGeometryInfo * | belongsTo (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 ILVolume * | lvolume () 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 | |
IGeometryInfo * | supportIGeometryInfo () 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 ILVolume * | lvolume (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 ILVolume * | lvolume (IGeometryInfo *start, const ILVolume::ReplicaPath &replicaPath) |
return the C++ pointer to the logical volume with a given address | |
const ILVolume::ReplicaPath & | supportPath () const |
retrive reference to replica path (mistrerious "rpath" or "npath") | |
IGeometryInfo * | parentIGeometryInfo () |
pointer to the parent IGeometryInfo | |
const IGeometryInfo * | parentIGeometryInfo () const |
pointer to the parent IGeometryInfo (const version) | |
IGeometryInfo::IGIChildrens & | childIGeometryInfos () |
(reference to) container of children IGeometryInfo | |
const IGeometryInfo::IGIChildrens & | childIGeometryInfos () 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 | |
MsgStream & | printOut (MsgStream &) const |
overloaded printout to the MsgStream | |
IGeometryInfo * | reset () |
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 InterfaceID & | interfaceID () |
retrieve the uniqie interface identifier | |
Public Attributes | |
SUCCESS | |
NO_INTERFACE | |
VERSMISMATCH | |
LAST_ERROR | |
Private Member Functions | |
IMessageSvc * | msgSvc () const |
IDataProviderSvc * | dataSvc () const |
ISvcLocator * | svcLocator () const |
IUpdateManagerSvc * | updMgrSvc (bool create=false) const |
MsgStream & | log () 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) |
AlignmentCondition * | myAlignmentCondition () const |
IDetectorElement * | parentIDetectorElement (IDetectorElement *iDetElem) |
IGeometryInfo * | geoByName (const std::string &name) const |
ILVolume * | findLogical () const |
StatusCode | loadChildren () const |
could throw GeometryInfoException | |
IDetectorElement * | detElem () 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::Transform3D * | accumulateMatrices (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 | |
MsgStream * | m_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 ) | |
ILVolume * | m_gi_lvolume |
C++ pointer to the logical volume (loaded on demand only!). | |
bool | m_hasAlignment |
std::string | m_alignmentPath |
bool | m_hasAlignmentPath |
AlignmentCondition * | m_alignmentCondition |
Gaudi::Transform3D * | m_matrix |
Transformation from the global reference system to the local reference system. | |
Gaudi::Transform3D * | m_idealMatrix |
Transformation from the global reference system to the local reference system. | |
Gaudi::Transform3D * | m_localIdealMatrix |
Gaudi::Transform3D * | m_localDeltaMatrix |
Gaudi::Transform3D * | m_matrixInv |
transformation FROM local reference system to the global reference system | |
Gaudi::Transform3D * | m_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) | |
IGeometryInfo * | m_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) | |
IDetectorElement * | m_gi_iDetectorElement |
The corresponding IDtectorElement object. | |
bool | m_gi_parentLoaded |
flag for parent object | |
IGeometryInfo * | m_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::Services * | m_services |
reference to services | |
std::vector< Gaudi::Transform3D > | m_pvMatrices |
Keep for now the local and all the parents ideal and delta transformation matrices. | |
std::vector< Gaudi::Transform3D > | m_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 |
Sebastien Ponce
Juan PALACIOS
Definition at line 45 of file GeometryInfoPlus.h.
typedef std::vector<std::string> GeometryInfoPlus::ChildName |
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] |
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.
GeometryInfoPlus::GeometryInfoPlus | ( | IDetectorElement * | de | ) |
constructor, creates "ghost"
de | pointer to detector element |
GeometryInfoPlus::GeometryInfoPlus | ( | IDetectorElement * | de, | |
const std::string & | LogVol | |||
) |
constructor, creates "orphan"
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
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
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.
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":
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] |
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.
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.
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.
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.
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.
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.
Implements IGeometryInfo.
Gaudi::Transform3D GeometryInfoPlus::ownMatrix | ( | ) | const [virtual] |
Transformation from this reference frame to the reference frame of the parent.
Includes local misalignment.
Implements IGeometryInfo.
StatusCode GeometryInfoPlus::ownToOffNominalMatrix | ( | const Gaudi::Transform3D & | ) | [virtual] |
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.
toGlobal( const Gaudi::XYZPoint&)
globalPoint | point in Global 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
toLocal( const Gaudi::XYZPoint&)
localPoint | point in Local 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.
toGlobal( const Gaudi::XYZVector&)
globalDirection | vector in Global Reference System |
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.
toLocal( const Gaudi::XYZVector&)
localDirection | vector in Local Reference System |
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.
toGlobal( const Gaudi::XYZPoint& )
globalPoint | point in Global Referency System |
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] |
StatusCode GeometryInfoPlus::location | ( | IGeometryInfo *& | start, | |
ILVolume::ReplicaPath & | replicaPath | |||
) | const [virtual] |
StatusCode GeometryInfoPlus::location | ( | std::string & | start, | |
ILVolume::ReplicaPath & | replicaPath | |||
) | const [virtual] |
IGeometryInfo* GeometryInfoPlus::supportIGeometryInfo | ( | ) | const [virtual] |
std::string GeometryInfoPlus::lvolumePath | ( | const std::string & | start, | |
const ILVolume::ReplicaPath & | replicaPath | |||
) | [virtual] |
const ILVolume* GeometryInfoPlus::lvolume | ( | const std::string & | start, | |
const ILVolume::ReplicaPath & | replicaPath | |||
) | [virtual] |
std::string GeometryInfoPlus::lvolumePath | ( | IGeometryInfo * | start, | |
const ILVolume::ReplicaPath & | replicaPath | |||
) | [virtual] |
const ILVolume* GeometryInfoPlus::lvolume | ( | IGeometryInfo * | start, | |
const ILVolume::ReplicaPath & | replicaPath | |||
) | [virtual] |
const ILVolume::ReplicaPath& GeometryInfoPlus::supportPath | ( | ) | const [virtual] |
IGeometryInfo* GeometryInfoPlus::parentIGeometryInfo | ( | ) | [virtual] |
const IGeometryInfo* GeometryInfoPlus::parentIGeometryInfo | ( | ) | const [virtual] |
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] |
IGeometryInfo* GeometryInfoPlus::reset | ( | ) | [virtual] |
StatusCode GeometryInfoPlus::queryInterface | ( | const InterfaceID & | ID, | |
void ** | ppI | |||
) | [virtual] |
query the interface
ID | interface identifier | |
ppI | placeholder for returned interface |
Implements IInterface.
unsigned long GeometryInfoPlus::addRef | ( | ) | [inline, virtual] |
unsigned long GeometryInfoPlus::release | ( | ) | [inline, virtual] |
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] |
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] |
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] |
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] |
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] |
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] |
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
Reimplemented from IInterface.
Definition at line 45 of file IGeometryInfo.h.
00045 { return IID_IGeometryInfo; }
friend class DetectorElement [friend] |
MsgStream* GeometryInfoPlus::m_log [private] |
Definition at line 449 of file GeometryInfoPlus.h.
bool GeometryInfoPlus::m_gi_has_logical [private] |
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.
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] |
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] |
std::string GeometryInfoPlus::m_gi_supportNamePath [private] |
IDetectorElement* GeometryInfoPlus::m_gi_iDetectorElement [mutable, private] |
bool GeometryInfoPlus::m_gi_parentLoaded [mutable, private] |
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] |
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] |
DetDesc::Services* GeometryInfoPlus::m_services [private] |
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] |
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.