Go to the documentation of this file.00001
00007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00008
00009 #include "Alignment/CommonAlignmentParametrization/interface/SegmentAlignmentDerivatives4D.h"
00010
00011
00012 AlgebraicMatrix
00013 SegmentAlignmentDerivatives4D::operator()( const TrajectoryStateOnSurface &tsos ) const
00014 {
00015
00016
00017 AlgebraicVector5 alivec = tsos.localParameters().mixedFormatVector();
00018
00019
00020
00021
00022
00023
00024
00025
00026 double tanpsi = alivec[1];
00027 double tantheta = alivec[2];
00028 double ux = alivec[3];
00029 double vx = alivec[4];
00030
00031 AlgebraicMatrix aliderivs(6,4);
00032
00033
00034 aliderivs[0][0]= -1.0;
00035 aliderivs[0][1]= 0.0;
00036 aliderivs[0][2]= 0.0;
00037 aliderivs[0][3]= 0.0;
00038
00039 aliderivs[1][0]= 0.0;
00040 aliderivs[1][1]= -1.0;
00041 aliderivs[1][2]= 0.0;
00042 aliderivs[1][3]= 0.0;
00043
00044 aliderivs[2][0]= tanpsi;
00045 aliderivs[2][1]= tantheta;
00046 aliderivs[2][2]= tanpsi;
00047 aliderivs[2][3]= tantheta;
00048
00049 aliderivs[3][0]= vx*tanpsi;
00050 aliderivs[3][1]= vx*tantheta;
00051 aliderivs[3][2]= 0;
00052 aliderivs[3][3]= 1.0;
00053
00054 aliderivs[4][0]= -ux*tanpsi;
00055 aliderivs[4][1]= -ux*tantheta;
00056 aliderivs[4][2]= -1.0;
00057 aliderivs[4][3]= 0.0;
00058
00059 aliderivs[5][0]= vx;
00060 aliderivs[5][1]= -ux;
00061 aliderivs[5][2]= tantheta;
00062 aliderivs[5][3]= -tanpsi;
00063
00064 return(aliderivs);
00065
00066 }