CMS 3D CMS Logo

SurveyDet.cc
Go to the documentation of this file.
2 
5  theSurface(surface),
6  theErrors(errors)
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 }
23 
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 }
align::Scalar width() const
double Scalar
Definition: Definitions.h:27
SurveyDet(const AlignableSurface &, const align::ErrorMatrix &)
Definition: SurveyDet.cc:3
AlgebraicMatrix derivatives(unsigned int index) const
Definition: SurveyDet.cc:24
CLHEP::HepMatrix AlgebraicMatrix
align::Scalar length() const
std::vector< align::LocalPoint > thePoints
Definition: SurveyDet.h:60
Definition: errors.py:1
math::Error< 6 >::type ErrorMatrix
Definition: Definitions.h:39