CMS 3D CMS Logo

TkRotation.h File Reference

#include "DataFormats/GeometryVector/interface/Basic2DVector.h"
#include "DataFormats/GeometryVector/interface/Basic3DVector.h"
#include "DataFormats/GeometryVector/interface/GlobalVector.h"
#include <iosfwd>

Go to the source code of this file.

Classes

class  TkRotation< T >
 Rotaion matrix used by Surface. More...

Functions

template<class T, class U>
TkRotation< typename
PreciseFloatType< T, U >::Type > 
operator * (const TkRotation< T > &a, const TkRotation< U > &b)
template<class T, class U>
Basic3DVector< U > operator * (const TkRotation< T > &r, const Basic3DVector< U > &v)
template<class T>
std::ostream & operator<< (std::ostream &s, const TkRotation< T > &r)


Function Documentation

template<class T, class U>
TkRotation<typename PreciseFloatType<T,U>::Type> operator * ( const TkRotation< T > &  a,
const TkRotation< U > &  b 
) [inline]

Definition at line 269 of file TkRotation.h.

References TkRotation< T >::xx(), TkRotation< T >::xy(), TkRotation< T >::xz(), TkRotation< T >::yx(), TkRotation< T >::yy(), TkRotation< T >::yz(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().

00269                                                            {
00270     typedef TkRotation<typename PreciseFloatType<T,U>::Type> RT;
00271     return RT( a.xx()*b.xx() + a.xy()*b.yx() + a.xz()*b.zx(),
00272                a.xx()*b.xy() + a.xy()*b.yy() + a.xz()*b.zy(),
00273                a.xx()*b.xz() + a.xy()*b.yz() + a.xz()*b.zz(),
00274                a.yx()*b.xx() + a.yy()*b.yx() + a.yz()*b.zx(),
00275                a.yx()*b.xy() + a.yy()*b.yy() + a.yz()*b.zy(),
00276                a.yx()*b.xz() + a.yy()*b.yz() + a.yz()*b.zz(),
00277                a.zx()*b.xx() + a.zy()*b.yx() + a.zz()*b.zx(),
00278                a.zx()*b.xy() + a.zy()*b.yy() + a.zz()*b.zy(),
00279                a.zx()*b.xz() + a.zy()*b.yz() + a.zz()*b.zz());
00280 }

template<class T, class U>
Basic3DVector<U> operator * ( const TkRotation< T > &  r,
const Basic3DVector< U > &  v 
) [inline]

Definition at line 261 of file TkRotation.h.

References Basic3DVector< T >::x(), TkRotation< T >::xx(), TkRotation< T >::xy(), TkRotation< T >::xz(), Basic3DVector< T >::y(), TkRotation< T >::yx(), TkRotation< T >::yy(), TkRotation< T >::yz(), Basic3DVector< T >::z(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().

00261                                                                                       {
00262   return Basic3DVector<U>( r.xx()*v.x() + r.xy()*v.y() + r.xz()*v.z(),
00263                            r.yx()*v.x() + r.yy()*v.y() + r.yz()*v.z(),
00264                            r.zx()*v.x() + r.zy()*v.y() + r.zz()*v.z());
00265 }

template<class T>
std::ostream & operator<< ( std::ostream &  s,
const TkRotation< T > &  r 
) [inline]

Definition at line 253 of file TkRotation.h.

References lat::endl(), r, s, TkRotation< T >::xx(), TkRotation< T >::xy(), TkRotation< T >::xz(), TkRotation< T >::yx(), TkRotation< T >::yy(), TkRotation< T >::yz(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().

00253                                                                 {
00254   TkRotation<T> rtmp = r;
00255   return s << " (" << rtmp.xx() << ',' << rtmp.xy() << ',' << rtmp.xz() << ") "
00256   << std::endl  << " (" << rtmp.yx() << ',' << rtmp.yy() << ',' << rtmp.yz() << ") "
00257   << std::endl  << " (" << rtmp.zx() << ',' << rtmp.zy() << ',' << rtmp.zz() << ") ";
00258 } 


Generated on Tue Jun 9 17:52:05 2009 for CMSSW by  doxygen 1.5.4