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);
00012
00013
00014 thePoints.push_back( align::LocalPoint( W3, 0., 0.) );
00015
00016 thePoints.push_back( align::LocalPoint( 0., L3, 0.) );
00017
00018 thePoints.push_back( align::LocalPoint(-W3, 0., 0.) );
00019
00020 thePoints.push_back( align::LocalPoint( 0., -L3, 0.) );
00021
00022 }
00023
00024 AlgebraicMatrix SurveyDet::derivatives(unsigned int index) const
00025 {
00026 AlgebraicMatrix jac(6, 3, 0);
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
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 }