CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/DataFormats/GeometryCommonDetAlgo/src/TransverseBoundPlaneFactory.cc

Go to the documentation of this file.
00001 //#include "Utilities/Configuration/interface/Architecture.h"
00002 
00003 #include "DataFormats/GeometryCommonDetAlgo/interface/TransverseBoundPlaneFactory.h"
00004 
00005 BoundPlane* 
00006 TransverseBoundPlaneFactory::operator()(const Surface::GlobalPoint& origin,
00007                                         const Surface::GlobalVector& dir) const {
00008 
00009   // z axis perpendicular to transverse momentum
00010   GlobalVector zAxis = GlobalVector(dir.x(), dir.y(), 0.).unit();
00011 
00012   // y axis coincides with global z
00013   GlobalVector yAxis(0., 0., 1.);
00014 
00015   // x axis obtained by cross product
00016   GlobalVector xAxis = (yAxis.cross(zAxis)).unit();
00017 
00018   Surface::RotationType rot( xAxis.x(), xAxis.y(), xAxis.z(),
00019                              yAxis.x(), yAxis.y(), yAxis.z(),
00020                              zAxis.x(), zAxis.y(), zAxis.z());
00021 
00022   //  Surface::RotationType rot(yAxis, zAxis);
00023 
00024   return new BoundPlane( origin, rot);
00025 }