61 SetVerbose(1); fNumCallsRK4=0; fNumCallsHelix=0;
62 if(!fStepperNumber) fStepperNumber=4;
98 if(Ang_curve<0.33*pi){
100 fRK4Stepper->
Stepper(yInput,dydx,Step,yOut,yErr);
106 const G4int nvar = 6 ;
112 for(i=0;i<nvar;i++) yIn[i]=yInput[i];
120 for(i=0;i<nvar;i++) {
121 yErr[i] = yOut[i] - yTemp2[i] ;
156 distChord=
GetRadHelix()*(1-std::cos(0.5*Ang_curve));
160 distChord=
GetRadHelix()*(1+std::cos(0.5*(twopi-Ang_curve)));
174 G4cout<<
"In HelixMixedStepper::Number of calls to smallStepStepper = "<<fNumCallsRK4
175 <<
" and Number of calls to Helix = "<<fNumCallsHelix<<
G4endl;
183 if (fVerbose>0)
G4cout<<
"In G4HelixMixedStepper Stepper for small steps is ";
184 switch ( StepperNumber )
CLHEP::Hep3Vector G4ThreeVector
G4DLLIMPORT std::ostream G4cout
void Stepper(const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[])
void SetVerbose(G4int newvalue)
G4HelixMixedStepper(G4Mag_EqRhs *EqRhs, G4int fStepperNumber=0)
G4double DistChord() const
void DumbStepper(const G4double y[], G4ThreeVector Bfld, G4double h, G4double yout[])
G4MagIntegratorStepper * SetupStepper(G4Mag_EqRhs *EqRhs, G4int StepperName)
void SetCurve(const G4double Curve)
void AdvanceHelix(const G4double yIn[], G4ThreeVector Bfld, G4double h, G4double yHelix[], G4double yHelix2[]=0)
G4double GetRadHelix() const
void MagFieldEvaluate(const G4double y[], G4ThreeVector &Bfield)
G4double GetInverseCurve(const G4double Momentum, const G4double Bmag)
void SetAngCurve(const G4double Ang)
G4double GetAngCurve() const
virtual void Stepper(const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[])=0