00001
00002 #ifndef DETDESC_GLOBALTOLOCALDELTA_H
00003 #define DETDESC_GLOBALTOLOCALDELTA_H 1
00004
00005
00006 #include "GaudiKernel/Transform3DTypes.h"
00007
00008
00009 class IDetectorElement;
00010 class IGeometryInfo;
00011
00022 namespace DetDesc {
00023
00024
00039 const Gaudi::Transform3D localDeltaMatrix(const IDetectorElement* DE,
00040 const Gaudi::Transform3D& globalDelta);
00041
00056 const Gaudi::Transform3D localDeltaMatrix(const IGeometryInfo* GI,
00057 const Gaudi::Transform3D& globalDelta);
00058
00059
00074 void localDeltaParameters(const IDetectorElement* DE,
00075 std::vector<double>& trans,
00076 std::vector<double>& rot,
00077 std::vector<double>& pivot);
00078
00092 void localDeltaParameters(const IGeometryInfo* GI,
00093 std::vector<double>& trans,
00094 std::vector<double>& rot,
00095 std::vector<double>& pivot);
00096
00097
00111 const Gaudi::Transform3D localDeltaFromGlobalTransform(const IDetectorElement* DE,
00112 const Gaudi::Transform3D& globalTransform);
00113
00114
00128 const Gaudi::Transform3D localDeltaFromGlobalTransform(const IGeometryInfo* GI,
00129 const Gaudi::Transform3D& globalTransform);
00130
00148 const Gaudi::Transform3D localDeltaFromParentTransform(const IDetectorElement* parentDE,
00149 const IDetectorElement* DE,
00150 const Gaudi::Transform3D& parentTransform);
00151
00152
00170 const Gaudi::Transform3D localDeltaFromParentTransform(const IGeometryInfo* parentGI,
00171 const IGeometryInfo* GI,
00172 const Gaudi::Transform3D& parentTransform);
00173
00174
00192 const Gaudi::Transform3D localDeltaFromAnyFrame(const Gaudi::Transform3D& frame,
00193 const IDetectorElement* DE,
00194 const Gaudi::Transform3D& toGlobalInFrame);
00195
00213 const Gaudi::Transform3D localDeltaFromAnyFrame(const Gaudi::Transform3D& frame,
00214 const IGeometryInfo* GI,
00215 const Gaudi::Transform3D& toGlobalInFrame);
00232 const Gaudi::Transform3D localDeltaFromAnyFrameDelta(const Gaudi::Transform3D& frame,
00233 const IDetectorElement* DE,
00234 const Gaudi::Transform3D& deltaInFrame);
00235
00252 const Gaudi::Transform3D localDeltaFromAnyFrameDelta(const Gaudi::Transform3D& frame,
00253 const IGeometryInfo* GI,
00254 const Gaudi::Transform3D& deltaInFrame);
00255
00276 const Gaudi::Transform3D globalDeltaFromLocalDeltaPrime(const IDetectorElement* DE,
00277 const Gaudi::Transform3D& deltaPrime);
00278
00299 const Gaudi::Transform3D globalDeltaFromLocalDeltaPrime(const IGeometryInfo* GI,
00300 const Gaudi::Transform3D& deltaPrime);
00301
00319 const Gaudi::Transform3D globalDelta(const IDetectorElement* DE);
00320
00338 const Gaudi::Transform3D globalDelta(const IGeometryInfo* GI);
00339
00351 const Gaudi::Transform3D relativeTransformation(const IDetectorElement* referenceDE,
00352 const IDetectorElement* DE);
00353
00354
00355 }
00356 #endif // DETDESC_GLOBALTOLOCALDELTA_H