52 const TVectorT<double>& uprim,
53 const TVectorT<double>& par) {
55 double Bx=0.;
double By=0.;
58 if(u[2]>350. && u[2]<450.)By=0.5;
60 TVector3 uu(u[0],u[1],u[2]);
66 Bx=B.X();By=B.Y();Bz=B.Z();;
73 double xprim=uprim[0];
74 double yprim=uprim[1];
75 if(TMath::Abs(xprim)>1E4)xprim<0 ? xprim=-1E4 : xprim=1E4;
76 if(TMath::Abs(yprim)>1E4)yprim<0 ? yprim=-1E4 : yprim=1E4;
77 double xprim2=xprim*xprim;
78 double yprim2=yprim*yprim;
79 double dsdz=TMath::Sqrt(1.+xprim2+yprim2);
80 double kappP=0.00299792458*par[0];
81 TVectorT<double> result(u);
83 result[0]=kappP*dsdz*(xprim*yprim*Bx-(1+xprim2)*By+yprim*Bz);
84 result[1]=kappP*dsdz*(-xprim*yprim*By+(1+yprim2)*Bx-xprim*Bz);