CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Alignment/CommonAlignment/src/SurveyDet.cc

Go to the documentation of this file.
00001 #include "Alignment/CommonAlignment/interface/SurveyDet.h"
00002 
00003 SurveyDet::SurveyDet(const AlignableSurface& surface,
00004                      const align::ErrorMatrix& errors):
00005   theSurface(surface),
00006   theErrors(errors)
00007 {
00008   const align::Scalar W3 = surface.width()  / 3.;
00009   const align::Scalar L3 = surface.length() / 3.;
00010 
00011   thePoints.reserve(4); // 4 survey points
00012 
00013 //   thePoints.push_back( align::LocalPoint( 0.,  0., 0.) );
00014   thePoints.push_back( align::LocalPoint( W3,  0., 0.) );
00015 //   thePoints.push_back( align::LocalPoint( W3,  L3, 0.) );
00016   thePoints.push_back( align::LocalPoint( 0.,  L3, 0.) );
00017 //   thePoints.push_back( align::LocalPoint(-W3,  L3, 0.) );
00018   thePoints.push_back( align::LocalPoint(-W3,  0., 0.) );
00019 //   thePoints.push_back( align::LocalPoint(-W3, -L3, 0.) );
00020   thePoints.push_back( align::LocalPoint( 0., -L3, 0.) );
00021 //   thePoints.push_back( align::LocalPoint( W3, -L3, 0.) );
00022 }
00023 
00024 AlgebraicMatrix SurveyDet::derivatives(unsigned int index) const
00025 {
00026   AlgebraicMatrix jac(6, 3, 0); // 6 by 3 Jacobian init to 0
00027 
00028 //   jac(1, 1) = S11; jac(1, 2) = S12; jac(1, 3) = S13;
00029 //   jac(2, 1) = S21; jac(2, 2) = S22; jac(2, 3) = S23;
00030 //   jac(3, 1) = S31; jac(3, 2) = S32; jac(3, 3) = S33;
00031 
00032 //   jac(4, 1) = u2 * S31;
00033 //   jac(4, 2) = u2 * S32;
00034 //   jac(4, 3) = u2 * S33;
00035 
00036 //   jac(5, 1) = -u1 * S31;
00037 //   jac(5, 2) = -u1 * S32;
00038 //   jac(5, 3) = -u1 * S33;
00039 
00040 //   jac(6, 1) = u1 * S21 - u2 * S11;
00041 //   jac(6, 2) = u1 * S22 - u2 * S12;
00042 //   jac(6, 3) = u1 * S23 - u2 * S13;
00043 
00044   jac(1, 1) = 1.; jac(2, 2) = 1.; jac(3, 3) = 1.;
00045 
00046   jac(5, 3) -= jac(6, 2) = thePoints[index].x();
00047   jac(6, 1) -= jac(4, 3) = thePoints[index].y();
00048 
00049   return jac;
00050 }