CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 13 of file SegmentAlignmentDerivatives4D.cc.

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

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