CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/Alignment/CommonAlignmentParametrization/src/KarimakiAlignmentDerivatives.cc

Go to the documentation of this file.
00001 
00007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00008 
00009 #include "Alignment/CommonAlignmentParametrization/interface/KarimakiAlignmentDerivatives.h"
00010 
00011 
00012 AlgebraicMatrix 
00013 KarimakiAlignmentDerivatives::operator()( const TrajectoryStateOnSurface &tsos ) const
00014 { 
00015 
00016   // Get track parameters on surface
00017   AlgebraicVector5 alivec = tsos.localParameters().mixedFormatVector();
00018 
00019   // [0] q/p  : charged: charge (+ or - one) divided by magnitude of momentum
00020   //            neutral : inverse magnitude of momentum
00021   // [1] dxdz : direction tangent in local xz-plane
00022   // [2] dydz : direction tangent in local yz-plane
00023   // [3] x    : local x-coordinate
00024   // [4] y    : local y-coordinate
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,2);
00032 
00033   aliderivs[0][0]= -1.0;
00034   aliderivs[0][1]=  0.0;
00035   aliderivs[1][0]=  0.0;
00036   aliderivs[1][1]= -1.0;
00037   aliderivs[2][0]=  tanpsi;
00038   aliderivs[2][1]=  tantheta;
00039   aliderivs[3][0]=  vx*tanpsi;
00040   aliderivs[3][1]=  vx*tantheta;
00041   aliderivs[4][0]= -ux*tanpsi;   // New beta sign convention
00042   aliderivs[4][1]= -ux*tantheta; // New beta sign convention
00043   aliderivs[5][0]=  vx;
00044   aliderivs[5][1]= -ux;
00045    
00046   return(aliderivs);
00047 
00048 }