CMS 3D CMS Logo

SurveyDet Class Reference

Class to hold survey info. More...

#include <Alignment/CommonAlignment/interface/SurveyDet.h>

List of all members.

Public Member Functions

AlgebraicMatrix derivatives (unsigned int index) const
 Find the Jacobian for a local point to be used in HIP algo.
const align::ErrorMatrixerrors () const
align::GlobalPoints globalPoints () const
const align::LocalPointslocalPoints () const
const align::PositionTypeposition () const
const align::RotationTyperotation () 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::LocalPointthePoints
AlignableSurface theSurface


Detailed Description

Class to hold survey info.

Date
2007/10/08 13:21:29
Revision
1.5
Author:
Chung Khim Lae

Definition at line 15 of file SurveyDet.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:33:00 2009 for CMSSW by  doxygen 1.5.4