File indexing completed on 2025-08-03 08:20:15
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include "KFPTrack.h"
0023
0024 #ifdef __ROOT__
0025 ClassImp(KFPTrack);
0026 #endif
0027
0028 void KFPTrack::RotateXY( float alpha )
0029 {
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 const float cA = cos( alpha );
0044 const float sA = sin( alpha );
0045
0046
0047
0048
0049
0050
0051
0052
0053 const float x = GetX(), y = GetY();
0054
0055 SetX( -(x*sA + y*cA) );
0056 SetY( x*cA - y*sA );
0057
0058 const float px = GetPx(), py = GetPy();
0059
0060 SetPx( -(px*sA + py*cA) );
0061 SetPy( px*cA - py*sA );
0062
0063 float cov[21];
0064 for(int iC=0; iC<21; iC++)
0065 cov[iC] = fC[iC];
0066
0067 fC[0] = cA*cA* cov[2] + 2* cA* cov[1]* sA + cov[0]*sA* sA;
0068
0069 fC[1] = -(cA*cA * cov[1]) + cA* (-cov[0] + cov[2])* sA + cov[1]*sA* sA;
0070 fC[2] = cA*cA* cov[0] - 2* cA* cov[1]* sA + cov[2]*sA* sA;
0071
0072 fC[3] = -(cA* cov[4]) - cov[3]* sA;
0073 fC[4] = cA* cov[3] - cov[4]* sA;
0074 fC[5] = cov[5];
0075
0076 fC[6] = cA*cA* cov[11] + cA *(cov[10] + cov[7])* sA + cov[6]*sA* sA;
0077 fC[7] = -(cA*cA * cov[10]) + cA* (cov[11] - cov[6])* sA + cov[7] *sA*sA;
0078 fC[8] = -(cA *cov[12]) - cov[8] *sA;
0079 fC[9] = cA*cA* cov[14] + 2 *cA* cov[13]* sA + cov[9]* sA*sA;
0080
0081 fC[10] = -(cA*cA* cov[7]) + cA* (cov[11] - cov[6])* sA + cov[10]*sA* sA;
0082 fC[11] = cA*cA* cov[6] - cA* (cov[10] + cov[7]) *sA + cov[11]*sA* sA;
0083 fC[12] = cA* cov[8] - cov[12]* sA;
0084 fC[13] = -(cA*cA* cov[13]) + cA* (cov[14] - cov[9])* sA + cov[13]* sA*sA;
0085 fC[14] = cA*cA* cov[9] - 2* cA* cov[13]* sA + cov[14]* sA*sA;
0086
0087 fC[15] = -(cA* cov[16]) - cov[15]* sA;
0088 fC[16] = cA* cov[15] - cov[16]* sA;
0089 fC[17] = cov[17];
0090 fC[18] = -(cA* cov[19]) - cov[18]* sA;
0091 fC[19] = cA* cov[18] - cov[19]* sA;
0092 fC[20] = cov[20];
0093
0094 }