File indexing completed on 2024-04-06 11:56:13
0001
0002
0003
0004
0005
0006
0007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0008
0009 #include "Alignment/CommonAlignmentParametrization/interface/SegmentAlignmentDerivatives4D.h"
0010
0011 AlgebraicMatrix SegmentAlignmentDerivatives4D::operator()(const TrajectoryStateOnSurface &tsos) const {
0012
0013 AlgebraicVector5 alivec = tsos.localParameters().mixedFormatVector();
0014
0015
0016
0017
0018
0019
0020
0021
0022 double tanpsi = alivec[1];
0023 double tantheta = alivec[2];
0024 double ux = alivec[3];
0025 double vx = alivec[4];
0026
0027 AlgebraicMatrix aliderivs(6, 4);
0028
0029
0030 aliderivs[0][0] = -1.0;
0031 aliderivs[0][1] = 0.0;
0032 aliderivs[0][2] = 0.0;
0033 aliderivs[0][3] = 0.0;
0034
0035 aliderivs[1][0] = 0.0;
0036 aliderivs[1][1] = -1.0;
0037 aliderivs[1][2] = 0.0;
0038 aliderivs[1][3] = 0.0;
0039
0040 aliderivs[2][0] = tanpsi;
0041 aliderivs[2][1] = tantheta;
0042 aliderivs[2][2] = tanpsi;
0043 aliderivs[2][3] = tantheta;
0044
0045 aliderivs[3][0] = vx * tanpsi;
0046 aliderivs[3][1] = vx * tantheta;
0047 aliderivs[3][2] = 0;
0048 aliderivs[3][3] = 1.0;
0049
0050 aliderivs[4][0] = -ux * tanpsi;
0051 aliderivs[4][1] = -ux * tantheta;
0052 aliderivs[4][2] = -1.0;
0053 aliderivs[4][3] = 0.0;
0054
0055 aliderivs[5][0] = vx;
0056 aliderivs[5][1] = -ux;
0057 aliderivs[5][2] = tantheta;
0058 aliderivs[5][3] = -tanpsi;
0059
0060 return (aliderivs);
0061 }