From 105c8c4e1921828bd9015045195d3336a9b13d5f Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sun, 6 Dec 2020 01:48:38 +0100 Subject: [PATCH] transformGlobalToLine, use mutl3x5Helper to avoid repeating code --- .../TrkExUtils/src/RungeKuttaUtils.cxx | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/Tracking/TrkExtrapolation/TrkExUtils/src/RungeKuttaUtils.cxx b/Tracking/TrkExtrapolation/TrkExUtils/src/RungeKuttaUtils.cxx index cad9de641ba..c0c7b9e546e 100755 --- a/Tracking/TrkExtrapolation/TrkExUtils/src/RungeKuttaUtils.cxx +++ b/Tracking/TrkExtrapolation/TrkExUtils/src/RungeKuttaUtils.cxx @@ -374,7 +374,7 @@ transformGlobalToLine(const Amg::Transform3D& T, par[0] = x*Bx +y*By +z*Bz ; par[1] = x*A[0]+y*A[1]+z*A[2]; - if(!useJac) return; + if(!useJac) {return;} // Condition trajectory on surface // @@ -382,22 +382,17 @@ transformGlobalToLine(const Amg::Transform3D& T, double a = (1.-d)*(1.+d); if(a!=0.) a=1./a; const double X = d*A[0]-P[3], Y = d*A[1]-P[4], Z = d*A[2]-P[5]; - const double d1 = P[10]*A[0]+P[11]*A[1]+P[12]*A[2]; - const double d2 = P[17]*A[0]+P[18]*A[1]+P[19]*A[2]; - const double d3 = P[24]*A[0]+P[25]*A[1]+P[26]*A[2]; - const double d4 = P[31]*A[0]+P[32]*A[1]+P[33]*A[2]; - const double d5 = P[38]*A[0]+P[39]*A[1]+P[40]*A[2]; - const double s1 = (((P[ 7]*X+P[ 8]*Y+P[ 9]*Z)+x*(d1*A[0]-P[10]))+(y*(d1*A[1]-P[11])+z*(d1*A[2]-P[12])))*a; - const double s2 = (((P[14]*X+P[15]*Y+P[16]*Z)+x*(d2*A[0]-P[17]))+(y*(d2*A[1]-P[18])+z*(d2*A[2]-P[19])))*a; - const double s3 = (((P[21]*X+P[22]*Y+P[23]*Z)+x*(d3*A[0]-P[24]))+(y*(d3*A[1]-P[25])+z*(d3*A[2]-P[26])))*a; - const double s4 = (((P[28]*X+P[29]*Y+P[30]*Z)+x*(d4*A[0]-P[31]))+(y*(d4*A[1]-P[32])+z*(d4*A[2]-P[33])))*a; - const double s5 = (((P[35]*X+P[36]*Y+P[37]*Z)+x*(d5*A[0]-P[38]))+(y*(d5*A[1]-P[39])+z*(d5*A[2]-P[40])))*a; + double D[5] = {}; + mutl3x5Helper(D, A, &P[10]); + const double s0 = (((P[ 7]*X+P[ 8]*Y+P[ 9]*Z)+x*(D[0]*A[0]-P[10]))+(y*(D[0]*A[1]-P[11])+z*(D[0]*A[2]-P[12])))*a; + const double s1 = (((P[14]*X+P[15]*Y+P[16]*Z)+x*(D[1]*A[0]-P[17]))+(y*(D[1]*A[1]-P[18])+z*(D[1]*A[2]-P[19])))*a; + const double s2 = (((P[21]*X+P[22]*Y+P[23]*Z)+x*(D[2]*A[0]-P[24]))+(y*(D[2]*A[1]-P[25])+z*(D[2]*A[2]-P[26])))*a; + const double s3 = (((P[28]*X+P[29]*Y+P[30]*Z)+x*(D[3]*A[0]-P[31]))+(y*(D[3]*A[1]-P[32])+z*(D[3]*A[2]-P[33])))*a; + const double s4 = (((P[35]*X+P[36]*Y+P[37]*Z)+x*(D[4]*A[0]-P[38]))+(y*(D[4]*A[1]-P[39])+z*(D[4]*A[2]-P[40])))*a; //pass -1 (As we want do add rather subtract in the helper) - globalToLocalVecHelper(P, -1.*s1, -1.*s2, -1.*s3, -1.*s4, -1.*s5); - + globalToLocalVecHelper(P, -1.*s0, -1.*s1, -1.*s2, -1.*s3, -1.*s4); // Jacobian production - // const double B[3]={Bx,By,Bz}; mutl3x5Helper(&Jac[0],B,&P[7]); mutl3x5Helper(&Jac[5],A,&P[7]); -- GitLab