/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/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   
00070   //  --- Methods used to implement all the derived classes -----
00071   
00072   void AdvanceHelix( const G4double  yIn[],
00073                      G4ThreeVector Bfld,
00074                      G4double  h,
00075                      G4double  yDrift[]);    // output 
00076   // A first order Step along a drift inside the field.
00077   
00078 private:
00079   G4bool verboseStep;
00080   G4int  verboseEventNumber;
00081   
00082 };
00083 
00084 
00085 inline void BDSDriftStepper::StepperName()
00086 {G4cout<<"BDSDriftStepper"<<G4endl;}
00087 
00088 #endif /* BDSDRIFTSTEPPER_HH */

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7