#include <SurveyDet.h>
Public Member Functions | |
AlgebraicMatrix | derivatives (unsigned int index) const |
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 &) | |
Private Attributes | |
align::ErrorMatrix | theErrors |
std::vector< align::LocalPoint > | thePoints |
AlignableSurface | theSurface |
Class to hold survey info.
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().
: theSurface(surface), theErrors(errors) { const align::Scalar W3 = surface.width() / 3.; const align::Scalar L3 = surface.length() / 3.; thePoints.reserve(4); // 4 survey points // thePoints.push_back( align::LocalPoint( 0., 0., 0.) ); thePoints.push_back( align::LocalPoint( W3, 0., 0.) ); // thePoints.push_back( align::LocalPoint( W3, L3, 0.) ); thePoints.push_back( align::LocalPoint( 0., L3, 0.) ); // thePoints.push_back( align::LocalPoint(-W3, L3, 0.) ); thePoints.push_back( align::LocalPoint(-W3, 0., 0.) ); // thePoints.push_back( align::LocalPoint(-W3, -L3, 0.) ); thePoints.push_back( align::LocalPoint( 0., -L3, 0.) ); // thePoints.push_back( align::LocalPoint( W3, -L3, 0.) ); }
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 getHLTprescales::index, and thePoints.
Referenced by SurveyAlignmentPoints::findAlignPars().
{ AlgebraicMatrix jac(6, 3, 0); // 6 by 3 Jacobian init to 0 // jac(1, 1) = S11; jac(1, 2) = S12; jac(1, 3) = S13; // jac(2, 1) = S21; jac(2, 2) = S22; jac(2, 3) = S23; // jac(3, 1) = S31; jac(3, 2) = S32; jac(3, 3) = S33; // jac(4, 1) = u2 * S31; // jac(4, 2) = u2 * S32; // jac(4, 3) = u2 * S33; // jac(5, 1) = -u1 * S31; // jac(5, 2) = -u1 * S32; // jac(5, 3) = -u1 * S33; // jac(6, 1) = u1 * S21 - u2 * S11; // jac(6, 2) = u1 * S22 - u2 * S12; // jac(6, 3) = u1 * S23 - u2 * S13; jac(1, 1) = 1.; jac(2, 2) = 1.; jac(3, 3) = 1.; jac(5, 3) -= jac(6, 2) = thePoints[index].x(); jac(6, 1) -= jac(4, 3) = thePoints[index].y(); return jac; }
const align::ErrorMatrix & SurveyDet::errors | ( | ) | const [inline] |
Definition at line 73 of file SurveyDet.h.
References theErrors.
Referenced by MuonAlignmentInputXML::do_moveglobal(), MuonAlignmentInputXML::do_movelocal(), MuonAlignmentInputXML::do_rotatebeamline(), MuonAlignmentInputXML::do_rotateglobalaxis(), MuonAlignmentInputXML::do_rotatelocal(), SurveyDBUploader::getSurveyInfo(), MuonAlignment::recursiveCopySurveyToAlignment(), and MuonAlignmentInputXML::set_one_position().
{ return theErrors; }
align::GlobalPoints SurveyDet::globalPoints | ( | ) | const [inline] |
Definition at line 83 of file SurveyDet.h.
References thePoints, theSurface, and AlignableSurface::toGlobal().
Referenced by SurveyResidual::calculate().
{ return theSurface.toGlobal(thePoints); }
const align::LocalPoints & SurveyDet::localPoints | ( | ) | const [inline] |
Definition at line 78 of file SurveyDet.h.
References thePoints.
Referenced by SurveyResidual::calculate(), and align::createPoints().
{ return thePoints; }
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().
{ return theSurface.position(); }
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().
{ return theSurface.rotation(); }
align::ErrorMatrix SurveyDet::theErrors [private] |
Definition at line 58 of file SurveyDet.h.
Referenced by errors().
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().