/home/cern/BDSIM_new/include/BDSDriftStepper.hh

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 // This code implementation is the intellectual property of
00007 // the GEANT4 collaboration.
00008 //
00009 // By copying, distributing or modifying the Program (or any work
00010 // based on the Program) you indicate your acceptance of this statement,
00011 // and all its terms.
00012 //
00013 // $Id: BDSDriftStepper.hh,v 1.2 2007/11/14 12:57:06 malton Exp $
00014 // GEANT4 tag $Name:  $
00015 //
00016 //
00017 // class BDSDriftStepper
00018 //
00019 // Class description:
00020 //
00021 
00022 // History:
00023 // - Created. G.Blair 1/11/00
00024 
00025 #ifndef BDSDRIFTSTEPPER_HH
00026 #define BDSDRIFTSTEPPER_HH
00027 #include "globals.hh"
00028 #include "G4MagIntegratorStepper.hh"
00029 //#include "G4MagHelicalStepper.hh"
00030 #include "G4Mag_EqRhs.hh"
00031 #include "G4ThreeVector.hh"
00032 #include "G4Navigator.hh"
00033 
00034 class BDSDriftStepper : public G4MagIntegratorStepper
00035 {
00036 
00037   public:  // with description
00038 
00039     BDSDriftStepper(G4Mag_EqRhs *EqRhs);
00040 
00041     ~BDSDriftStepper();
00042 
00043       void Stepper( const G4double y[],
00044                   const G4double dydx[],
00045                   const G4double h,
00046                   G4double yout[],
00047                   G4double yerr[]  );
00048       // The stepper for the Runge Kutta integration.
00049       // The stepsize is fixed, equal to h.
00050       // Integrates ODE starting values y[0 to 6]
00051       // Outputs yout[] and its estimated error yerr[].
00052  
00053 
00054      void StepperName();
00055 
00056      G4double DistChord()const;
00057   /*
00058    void DumbStepper( const G4double yInput[],
00059                      G4ThreeVector Bfld,
00060                      G4double hstep,
00061                      G4double yOut[]);
00062 
00063   */
00064   public: // without description
00065   
00066     G4int IntegratorOrder()const { return 2; }
00067 
00068   protected:
00069     //  --- Methods used to implement all the derived classes -----
00070 
00071     void AdvanceHelix( const G4double  yIn[],
00072                        G4ThreeVector Bfld,
00073                        G4double  h,
00074                        G4double  yDrift[]);    // output 
00075       // A first order Step along a drift inside the field.
00076 
00077   private:
00078   
00079 
00080 };
00081 
00082 
00083 inline void BDSDriftStepper::StepperName()
00084 {G4cout<<"BDSDriftStepper"<<G4endl;}
00085 
00086 #endif /* BDSDRIFTSTEPPER_HH */

Generated on Wed Mar 5 17:25:21 2008 for BDSIM by  doxygen 1.5.3