#include <Alignment/CommonAlignment/interface/SurveyDet.h>
Public Member Functions | |
AlgebraicMatrix | derivatives (unsigned int index) const |
Find the Jacobian for a local point to be used in HIP algo. | |
const align::ErrorMatrix & | errors () const |
align::GlobalPoints | globalPoints () const |
const align::LocalPoints & | localPoints () const |
const align::PositionType & | position () const |
const align::RotationType & | rotation () const |
SurveyDet (const AlignableSurface &, const align::ErrorMatrix &) | |
Set the surface and 9 survey points to find its position and rotation. | |
Private Attributes | |
align::ErrorMatrix | theErrors |
std::vector< align::LocalPoint > | thePoints |
AlignableSurface | theSurface |
Definition at line 15 of file SurveyDet.h.
SurveyDet::SurveyDet | ( | const AlignableSurface & | surface, | |
const align::ErrorMatrix & | errors | |||
) |
Set the surface and 9 survey points to find its position and rotation.
----------- ^ ----------- | . | . | . | | | 4 | 3 | 2 | ----------- | ----------- | . | . | . | L | 5 | 0 | 1 | ----------- | ----------- | . | . | . | | | 6 | 7 | 8 | ----------- v ----------- <---- W ---->
The left sensor shows how the 9 points are chosen (W = width, L = length) The right sensor shows how the points are indexed. Also set the survey errors.
Definition at line 3 of file SurveyDet.cc.
References AlignableSurface::length(), thePoints, and AlignableSurface::width().
00004 : 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 }
AlgebraicMatrix SurveyDet::derivatives | ( | unsigned int | index | ) | const |
Find the Jacobian for a local point to be used in HIP algo.
Does not check the range of index of local point.
Definition at line 24 of file SurveyDet.cc.
References thePoints.
Referenced by SurveyAlignmentPoints::findAlignPars().
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 }
const align::ErrorMatrix & SurveyDet::errors | ( | ) | const [inline] |
Definition at line 73 of file SurveyDet.h.
References theErrors.
Referenced by MuonAlignmentInputXML::do_moveglobal(), MuonAlignmentInputXML::do_rotatelocal(), SurveyDBUploader::getSurveyInfo(), MuonAlignment::recursiveCopySurveyToAlignment(), and MuonAlignmentInputXML::set_one_position().
00074 { 00075 return theErrors; 00076 }
align::GlobalPoints SurveyDet::globalPoints | ( | ) | const [inline] |
Definition at line 83 of file SurveyDet.h.
References thePoints, theSurface, and AlignableSurface::toGlobal().
Referenced by SurveyResidual::calculate().
00084 { 00085 return theSurface.toGlobal(thePoints); 00086 }
const align::LocalPoints & SurveyDet::localPoints | ( | ) | const [inline] |
Definition at line 78 of file SurveyDet.h.
References thePoints.
Referenced by SurveyResidual::calculate(), and align::createPoints().
00079 { 00080 return thePoints; 00081 }
const align::PositionType & SurveyDet::position | ( | ) | const [inline] |
Definition at line 63 of file SurveyDet.h.
References GloballyPositioned< T >::position(), and theSurface.
Referenced by SurveyResidual::calculate(), SurveyDBUploader::getSurveyInfo(), MuonAlignment::recursiveCopySurveyToAlignment(), and TrackerGeometryCompare::surveyToTracker().
00064 { 00065 return theSurface.position(); 00066 }
const align::RotationType & SurveyDet::rotation | ( | ) | const [inline] |
Definition at line 68 of file SurveyDet.h.
References GloballyPositioned< T >::rotation(), and theSurface.
Referenced by SurveyDBUploader::getSurveyInfo(), MuonAlignment::recursiveCopySurveyToAlignment(), and TrackerGeometryCompare::surveyToTracker().
00069 { 00070 return theSurface.rotation(); 00071 }
align::ErrorMatrix SurveyDet::theErrors [private] |
std::vector<align::LocalPoint> SurveyDet::thePoints [private] |
Definition at line 60 of file SurveyDet.h.
Referenced by derivatives(), globalPoints(), localPoints(), and SurveyDet().
AlignableSurface SurveyDet::theSurface [private] |
Definition at line 56 of file SurveyDet.h.
Referenced by globalPoints(), position(), and rotation().