52 G4ThreeVector mom = G4ThreeVector(yIn[3], yIn[4], yIn[5]);
53 G4double momMag = mom.mag();
56 if(std::abs(kappa)<1.e-20)
63 G4ThreeVector pos = G4ThreeVector(yIn[0], yIn[1], yIn[2]);
67 G4ThreeVector localMomUnit = localMom.unit();
69 G4double x0 = localPos.x();
70 G4double y0 = localPos.y();
73 const G4double halfH = 0.5*h;
74 x0 = x0 + localMomUnit.x()*halfH;
75 y0 = y0 + localMomUnit.y()*halfH;
77 G4double xp = localMomUnit.x();
78 G4double yp = localMomUnit.y();
79 G4double zp = localMomUnit.z();
81 G4double xsq = std::pow(x0, 2);
82 G4double ysq = std::pow(y0, 2);
83 G4double x02My02 = (xsq - ysq);
84 G4double Bx = 4.0*x0*y0 * (x02My02);
85 G4double By = std::pow(x0,4) - 6.0 * xsq * ysq + std::pow(y0,4);
91 localA.setZ( xp*By - yp*Bx);
void ConvertToGlobal(const G4ThreeVector &localPos, const G4ThreeVector &localMom, G4double yOut[], G4double yErr[], const G4double momScaling=1.0)
scaling of momentum in case localMom is a unit vector