CMS 3D CMS Logo

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

#include <SegmentAlignmentDerivatives4D.h>

Public Member Functions

AlgebraicMatrix operator() (const TrajectoryStateOnSurface &tsos) const
 Returns 6x4 jacobian matrix. More...
 

Detailed Description

Calculates derivatives for 4D Segments

Date:
2007/03/12 21:28:48
Revision:
1.4

(last update by

Author:
P. Martinez

)

Definition at line 16 of file SegmentAlignmentDerivatives4D.h.

Member Function Documentation

AlgebraicMatrix SegmentAlignmentDerivatives4D::operator() ( const TrajectoryStateOnSurface tsos) const

Returns 6x4 jacobian matrix.

Definition at line 11 of file SegmentAlignmentDerivatives4D.cc.

References TrajectoryStateOnSurface::localParameters(), and LocalTrajectoryParameters::mixedFormatVector().

11  {
12  // Get track parameters on surface
14 
15  // [0] q/p : charged: charge (+ or - one) divided by magnitude of momentum
16  // neutral : inverse magnitude of momentum
17  // [1] dxdz : direction tangent in local xz-plane
18  // [2] dydz : direction tangent in local yz-plane
19  // [3] x : local x-coordinate
20  // [4] y : local y-coordinate
21 
22  double tanpsi = alivec[1];
23  double tantheta = alivec[2];
24  double ux = alivec[3];
25  double vx = alivec[4];
26 
27  AlgebraicMatrix aliderivs(6, 4);
28 
29  // delta_x
30  aliderivs[0][0] = -1.0;
31  aliderivs[0][1] = 0.0;
32  aliderivs[0][2] = 0.0;
33  aliderivs[0][3] = 0.0;
34  // delta_y
35  aliderivs[1][0] = 0.0;
36  aliderivs[1][1] = -1.0;
37  aliderivs[1][2] = 0.0;
38  aliderivs[1][3] = 0.0;
39  // delta_z
40  aliderivs[2][0] = tanpsi;
41  aliderivs[2][1] = tantheta;
42  aliderivs[2][2] = tanpsi;
43  aliderivs[2][3] = tantheta;
44  // alpha
45  aliderivs[3][0] = vx * tanpsi;
46  aliderivs[3][1] = vx * tantheta;
47  aliderivs[3][2] = 0;
48  aliderivs[3][3] = 1.0;
49  // beta
50  aliderivs[4][0] = -ux * tanpsi; // New beta sign convention
51  aliderivs[4][1] = -ux * tantheta; // New beta sign convention
52  aliderivs[4][2] = -1.0;
53  aliderivs[4][3] = 0.0;
54  // gamma
55  aliderivs[5][0] = vx;
56  aliderivs[5][1] = -ux;
57  aliderivs[5][2] = tantheta;
58  aliderivs[5][3] = -tanpsi;
59 
60  return (aliderivs);
61 }
const LocalTrajectoryParameters & localParameters() const
CLHEP::HepMatrix AlgebraicMatrix
ROOT::Math::SVector< double, 5 > AlgebraicVector5
AlgebraicVector5 mixedFormatVector() const