48                  G4int noIntegrationVariables, 
 
   51     fLastStepLength(0.), fAuxStepper(0)
 
   53   const G4int numberOfVariables =
 
   55                ( ( (noIntegrationVariables-1)/4 + 1 ) * 4 ) );
 
   58   ak2 = 
new G4double[numberOfVariables] ;
 
   59   ak3 = 
new G4double[numberOfVariables] ;
 
   60   ak4 = 
new G4double[numberOfVariables] ;
 
   61   ak5 = 
new G4double[numberOfVariables] ;
 
   62   ak6 = 
new G4double[numberOfVariables] ;
 
   74   fLastInitialVector = 
new G4double[numStateVars] ;
 
   75   fLastFinalVector = 
new G4double[numStateVars] ;
 
   76   fLastDyDx = 
new G4double[numberOfVariables];
 
   78   fMidVector = 
new G4double[numStateVars];
 
   79   fMidError =  
new G4double[numStateVars];
 
  101   delete[] fLastInitialVector;
 
  102   delete[] fLastFinalVector;
 
  132                  b31 = 3.0/40.0 , b32 = 9.0/40.0 ,
 
  133                  b41 = 0.3 , b42 = -0.9 , b43 = 1.2 ,
 
  135                  b51 = -11.0/54.0 , b52 = 2.5 , b53 = -70.0/27.0 ,
 
  138                  b61 = 1631.0/55296.0 , b62 =   175.0/512.0 ,
 
  139                  b63 =  575.0/13824.0 , b64 = 44275.0/110592.0 ,
 
  142                  c1 = 37.0/378.0 , c3 = 250.0/621.0 , c4 = 125.0/594.0 ,
 
  144                                           dc5 = -277.0/14336.0 ;
 
  146  const G4double dc1 = 
c1 - 2825.0/27648.0 ,  dc3 = c3 - 18575.0/48384.0 ,
 
  147     dc4 = c4 - 13525.0/55296.0 , dc6 = c6 - 0.25 ;
 
  152  yOut[7] = yTemp[7]   = yIn[7]; 
 
  159    for(i=0;i<numberOfVariables;i++) 
 
  165  for(i=0;i<numberOfVariables;i++) 
 
  167    yTemp[i] = yIn[i] + b21*Step*dydx[i] ;
 
  171  for(i=0;i<numberOfVariables;i++)
 
  173     yTemp[i] = yIn[i] + Step*(b31*dydx[i] + b32*ak2[i]) ;
 
  177  for(i=0;i<numberOfVariables;i++)
 
  179     yTemp[i] = yIn[i] + Step*(b41*dydx[i] + b42*ak2[i] + b43*ak3[i]) ;
 
  183  for(i=0;i<numberOfVariables;i++)
 
  185     yTemp[i] = yIn[i] + Step*(b51*dydx[i] + b52*ak2[i] + b53*ak3[i] +
 
  190  for(i=0;i<numberOfVariables;i++)
 
  192     yTemp[i] = yIn[i] + Step*(b61*dydx[i] + b62*ak2[i] + b63*ak3[i] +
 
  193                       b64*ak4[i] + b65*ak5[i]) ;
 
  197  for(i=0;i<numberOfVariables;i++)
 
  201     yOut[i] = yIn[i] + Step*(
c1*dydx[i] + c3*ak3[i] + c4*ak4[i] + c6*ak6[i]) ;
 
  206     yErr[i] = Step*(dc1*dydx[i] + dc3*ak3[i] + dc4*ak4[i] +
 
  207               dc5*ak5[i] + dc6*ak6[i]) ;
 
  210     fLastInitialVector[i] = yIn[i] ;
 
  211     fLastFinalVector[i]   = yOut[i];
 
  212     fLastDyDx[i]          = dydx[i];
 
  216  fLastStepLength =Step;
 
  224 G4CashKarpRKF45::StepWithEst( 
const G4double*,
 
  233   G4Exception(
"G4CashKarpRKF45::StepWithEst()", 
"GeomField0001",
 
  247                                 fLastInitialVector[1], fLastInitialVector[2]); 
 
  249                                 fLastFinalVector[1],  fLastFinalVector[2]); 
 
  253   fAuxStepper->
Stepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, 
 
  254            fMidVector,   fMidError );
 
  256   midPoint = 
G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]);       
 
  262   if (initialPoint != finalPoint) 
 
  265      distChord = distLine;
 
  269      distChord = (midPoint-initialPoint).mag();
 
CLHEP::Hep3Vector G4ThreeVector
 
G4CashKarpRKF45(G4EquationOfMotion *EqRhs, G4int numberOfVariables=6, G4bool primary=true)
 
static G4double Distline(const G4ThreeVector &OtherPnt, const G4ThreeVector &LinePntA, const G4ThreeVector &LinePntB)
 
G4int GetNumberOfVariables() const 
 
void Stepper(const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[])
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
G4double DistChord() const 
 
G4int GetNumberOfStateVariables() const 
 
void RightHandSide(const double y[], double dydx[])