CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
SurveyDet Class Reference

#include <SurveyDet.h>

Public Member Functions

AlgebraicMatrix derivatives (unsigned int index) const
 
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 &)
 

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

4  :
5  theSurface(surface),
7 {
8  const align::Scalar W3 = surface.width() / 3.;
9  const align::Scalar L3 = surface.length() / 3.;
10 
11  thePoints.reserve(4); // 4 survey points
12 
13 // thePoints.push_back( align::LocalPoint( 0., 0., 0.) );
14  thePoints.push_back( align::LocalPoint( W3, 0., 0.) );
15 // thePoints.push_back( align::LocalPoint( W3, L3, 0.) );
16  thePoints.push_back( align::LocalPoint( 0., L3, 0.) );
17 // thePoints.push_back( align::LocalPoint(-W3, L3, 0.) );
18  thePoints.push_back( align::LocalPoint(-W3, 0., 0.) );
19 // thePoints.push_back( align::LocalPoint(-W3, -L3, 0.) );
20  thePoints.push_back( align::LocalPoint( 0., -L3, 0.) );
21 // thePoints.push_back( align::LocalPoint( W3, -L3, 0.) );
22 }
align::Scalar width() const
double Scalar
Definition: Definitions.h:27
const align::ErrorMatrix & errors() const
Definition: SurveyDet.h:73
AlignableSurface theSurface
Definition: SurveyDet.h:56
align::Scalar length() const
align::ErrorMatrix theErrors
Definition: SurveyDet.h:58
std::vector< align::LocalPoint > thePoints
Definition: SurveyDet.h:60

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 getHLTprescales::index, and thePoints.

Referenced by SurveyAlignmentPoints::findAlignPars().

25 {
26  AlgebraicMatrix jac(6, 3, 0); // 6 by 3 Jacobian init to 0
27 
28 // jac(1, 1) = S11; jac(1, 2) = S12; jac(1, 3) = S13;
29 // jac(2, 1) = S21; jac(2, 2) = S22; jac(2, 3) = S23;
30 // jac(3, 1) = S31; jac(3, 2) = S32; jac(3, 3) = S33;
31 
32 // jac(4, 1) = u2 * S31;
33 // jac(4, 2) = u2 * S32;
34 // jac(4, 3) = u2 * S33;
35 
36 // jac(5, 1) = -u1 * S31;
37 // jac(5, 2) = -u1 * S32;
38 // jac(5, 3) = -u1 * S33;
39 
40 // jac(6, 1) = u1 * S21 - u2 * S11;
41 // jac(6, 2) = u1 * S22 - u2 * S12;
42 // jac(6, 3) = u1 * S23 - u2 * S13;
43 
44  jac(1, 1) = 1.; jac(2, 2) = 1.; jac(3, 3) = 1.;
45 
46  jac(5, 3) -= jac(6, 2) = thePoints[index].x();
47  jac(6, 1) -= jac(4, 3) = thePoints[index].y();
48 
49  return jac;
50 }
CLHEP::HepMatrix AlgebraicMatrix
std::vector< align::LocalPoint > thePoints
Definition: SurveyDet.h:60
const align::ErrorMatrix & SurveyDet::errors ( ) const
inline
align::GlobalPoints SurveyDet::globalPoints ( ) const
inline

Definition at line 83 of file SurveyDet.h.

References thePoints, theSurface, and AlignableSurface::toGlobal().

Referenced by SurveyResidual::calculate().

84 {
86 }
AlignableSurface theSurface
Definition: SurveyDet.h:56
std::vector< align::LocalPoint > thePoints
Definition: SurveyDet.h:60
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
const align::LocalPoints & SurveyDet::localPoints ( ) const
inline

Definition at line 78 of file SurveyDet.h.

References thePoints.

Referenced by SurveyResidual::calculate(), and align::createPoints().

79 {
80  return thePoints;
81 }
std::vector< align::LocalPoint > thePoints
Definition: SurveyDet.h:60
const align::PositionType & SurveyDet::position ( ) const
inline
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().

69 {
70  return theSurface.rotation();
71 }
AlignableSurface theSurface
Definition: SurveyDet.h:56
const RotationType & rotation() const

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