2// ********************************************************************
 
    3// * License and Disclaimer                                           *
 
    5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
 
    6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
 
    7// * conditions of the Geant4 Software License,  included in the file *
 
    8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
 
    9// * include a list of copyright holders.                             *
 
   11// * Neither the authors of this software system, nor their employing *
 
   12// * institutes,nor the agencies providing financial support for this *
 
   13// * work  make  any representation or  warranty, express or implied, *
 
   14// * regarding  this  software system or assume any liability for its *
 
   15// * use.  Please see the license in the file  LICENSE  and URL above *
 
   16// * for the full disclaimer and the limitation of liability.         *
 
   18// * This  code  implementation is the result of  the  scientific and *
 
   19// * technical work of the GEANT4 collaboration.                      *
 
   20// * By using,  copying,  modifying or  distributing the software (or *
 
   21// * any work based  on the software)  you  agree  to acknowledge its *
 
   22// * use  in  resulting  scientific  publications,  and indicate your *
 
   23// * acceptance of all terms of the Geant4 Software license.          *
 
   24// ********************************************************************
 
   26// G4OldMagIntDriver inline methods implementation
 
   28// V.Grichine, 07.10.1996 - Created
 
   29// --------------------------------------------------------------------
 
   32G4double G4OldMagIntDriver::
 
   33AdvanceChordLimited(G4FieldTrack& track, G4double stepMax, 
 
   34                    G4double epsStep, G4double chordDistance)
 
   36  return ChordFinderDelegate::AdvanceChordLimitedImpl(track, stepMax,
 
   37                                                      epsStep, chordDistance);
 
   41void G4OldMagIntDriver::OnStartTracking()
 
   43  ChordFinderDelegate::ResetStepEstimate();
 
   47G4double G4OldMagIntDriver::GetHmin() const
 
   53G4double G4OldMagIntDriver::Hmin() const
 
   59G4double G4OldMagIntDriver::GetSafety() const
 
   65G4double G4OldMagIntDriver::GetPshrnk() const
 
   71G4double G4OldMagIntDriver::GetPgrow() const
 
   77G4double G4OldMagIntDriver::GetErrcon() const
 
   83void G4OldMagIntDriver::SetHmin(G4double newval)
 
   85  fMinimumStep = newval;
 
   89G4double G4OldMagIntDriver::ComputeAndSetErrcon()
 
   91  errcon = std::pow(max_stepping_increase/GetSafety(),1.0/GetPgrow());
 
   96void G4OldMagIntDriver::ReSetParameters(G4double new_safety)
 
   99  pshrnk = -1.0 / pIntStepper->IntegratorOrder();
 
  100  pgrow  = -1.0 / (1.0 + pIntStepper->IntegratorOrder());
 
  101  ComputeAndSetErrcon();
 
  105void G4OldMagIntDriver::SetSafety(G4double val)
 
  108  ComputeAndSetErrcon();
 
  112void G4OldMagIntDriver::SetPgrow(G4double  val)
 
  115  ComputeAndSetErrcon(); 
 
  119void G4OldMagIntDriver::SetErrcon(G4double val)
 
  125G4int G4OldMagIntDriver::GetMaxNoSteps() const
 
  131void G4OldMagIntDriver::SetMaxNoSteps(G4int val)
 
  137G4int G4OldMagIntDriver::GetVerboseLevel() const
 
  139  return fVerboseLevel;
 
  143void G4OldMagIntDriver::SetVerboseLevel(G4int newLevel)
 
  145  fVerboseLevel = newLevel;
 
  149G4double G4OldMagIntDriver::GetSmallestFraction() const
 
  151  return fSmallestFraction;