00001 // $Id: SU2LHCb.h,v 1.5 2007/03/16 15:57:09 cattanem Exp $ 00002 #ifndef V16R7_SU2LHCB_H 00003 #define V16R7_SU2LHCB_H 1 00004 00005 // Include files 00006 #include "GaudiKernel/Transform3DTypes.h" 00007 #include "GaudiKernel/Point3DTypes.h" 00008 #include "GaudiKernel/PhysicalConstants.h" 00020 namespace DetDesc { 00021 00032 const Gaudi::Transform3D LHCb2SU() 00033 { 00034 return Gaudi::Transform3D( Gaudi::RotationY( -0.5*Gaudi::Units::pi) * 00035 Gaudi::RotationZ( -0.5*Gaudi::Units::pi) * 00036 Gaudi::RotationX( -3.601*Gaudi::Units::mrad) ); 00037 00038 00039 } 00050 const Gaudi::Transform3D SU2LHCb() 00051 { 00052 return Gaudi::Transform3D( Gaudi::RotationX( 3.601*Gaudi::Units::mrad) * 00053 Gaudi::RotationZ( 0.5*Gaudi::Units::pi) * 00054 Gaudi::RotationY( 0.5*Gaudi::Units::pi) ); 00055 } 00056 00070 template <typename Point> 00071 const Point LHCb2SU(const Point& point) 00072 { 00073 return LHCb2SU()*point; 00074 } 00075 00089 template <typename Point> 00090 const Point SU2LHCb(const Point& point) 00091 { 00092 return SU2LHCb()*point; 00093 } 00094 00095 }; 00096 #endif // V16R7_SU2LHCB_H