CMS 3D CMS Logo

sim::FieldStepper Class Reference

#include <SimG4Core/MagneticField/interface/FieldStepper.h>

List of all members.

Public Member Functions

virtual double DistChord () const
 FieldStepper (G4Mag_UsualEqRhs *eq)
virtual int IntegratorOrder () const
G4MagIntegratorStepper * select (const std::string &s)
virtual void Stepper (const double y[], const double dydx[], double h, double yout[], double yerr[])
 ~FieldStepper ()

Private Attributes

G4Mag_UsualEqRhs * theEquation
G4MagIntegratorStepper * theStepper


Detailed Description

Definition at line 9 of file FieldStepper.h.


Constructor & Destructor Documentation

FieldStepper::FieldStepper ( G4Mag_UsualEqRhs *  eq  ) 

Definition at line 18 of file FieldStepper.cc.

00018                                                 :
00019     G4MagIntegratorStepper(eq, 6), theEquation(eq) {}

FieldStepper::~FieldStepper (  ) 

Definition at line 21 of file FieldStepper.cc.

00021 {}


Member Function Documentation

double FieldStepper::DistChord (  )  const [virtual]

Definition at line 27 of file FieldStepper.cc.

References theStepper.

00027 { return theStepper->DistChord(); }

int FieldStepper::IntegratorOrder (  )  const [virtual]

Definition at line 29 of file FieldStepper.cc.

References theStepper.

00030 { return theStepper->IntegratorOrder(); }

G4MagIntegratorStepper * FieldStepper::select ( const std::string &  s  ) 

Definition at line 32 of file FieldStepper.cc.

References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), theEquation, and theStepper.

Referenced by sim::FieldBuilder::configureFieldManager().

00033 {
00034     if      (s == "G4ClassicalRK4")       theStepper = new G4ClassicalRK4(theEquation);
00035     else if (s == "G4SimpleRunge")        theStepper = new G4SimpleRunge(theEquation);
00036     else if (s == "G4SimpleHeum")         theStepper = new G4SimpleHeum(theEquation);
00037     else if (s == "G4CashKarpRKF45")      theStepper = new G4CashKarpRKF45(theEquation);
00038     else if (s == "G4RKG3_Stepper")       theStepper = new G4RKG3_Stepper(theEquation);
00039     else if (s == "G4ExplicitEuler")      theStepper = new G4ExplicitEuler(theEquation);
00040     else if (s == "G4ImplicitEuler")      theStepper = new G4ImplicitEuler(theEquation);
00041     else if (s == "G4HelixExplicitEuler") theStepper = new G4HelixExplicitEuler(theEquation);
00042     else if (s == "G4HelixImplicitEuler") theStepper = new G4HelixImplicitEuler(theEquation);
00043     else if (s == "G4HelixSimpleRunge")   theStepper = new G4HelixSimpleRunge(theEquation);
00044     else if (s == "G4HelixHeum")          theStepper = new G4HelixHeum(theEquation);
00045     else
00046     {
00047         std::cout << " FieldStepper invalid choice, defaulting to G4ClassicalRK4 " << std::endl;
00048         theStepper = new G4ClassicalRK4(theEquation);
00049     }
00050     return theStepper;
00051 }

void FieldStepper::Stepper ( const double  y[],
const double  dydx[],
double  h,
double  yout[],
double  yerr[] 
) [virtual]

Definition at line 23 of file FieldStepper.cc.

References theStepper.

00025 { theStepper->Stepper(y,dydx,h,yout,yerr); }


Member Data Documentation

G4Mag_UsualEqRhs* sim::FieldStepper::theEquation [private]

Definition at line 21 of file FieldStepper.h.

Referenced by select().

G4MagIntegratorStepper* sim::FieldStepper::theStepper [private]

Definition at line 20 of file FieldStepper.h.

Referenced by DistChord(), IntegratorOrder(), select(), and Stepper().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:52:32 2009 for CMSSW by  doxygen 1.5.4