Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

TrackHerabExtrapolator.h

Go to the documentation of this file.
00001 // $Id: TrackHerabExtrapolator.h,v 1.1 2005/03/16 14:10:05 hernando Exp $
00002 #ifndef TRACKHERABEXTRAPOLATOR_H
00003 #define TRACKHERABEXTRAPOLATOR_H 1
00004 
00005 // Include files
00006 #include "TrackExtrapolators/TrackExtrapolator.h"
00007 
00020 class TrackHerabExtrapolator: public TrackExtrapolator
00021 {
00022 
00023 public:
00025   TrackHerabExtrapolator( const std::string& type, 
00026                           const std::string& name, 
00027                           const IInterface* parent);
00028 
00030   virtual ~TrackHerabExtrapolator();
00031 
00033   virtual StatusCode initialize();
00034 
00035 
00037   virtual StatusCode propagate( State& pState, 
00038                                 double zNew = 0,
00039                                 ParticleID partId = ParticleID(211));
00040 
00041 private:
00042  
00044   void extrapolate( double& zIn,
00045                     double pIn[5], 
00046                     double& zNew, 
00047                     double pOut[5],
00048                     double fQp[25], 
00049                     int& istat);
00050 
00051 
00053   void rk4order( double& z_in ,
00054                  double* p_in   ,
00055                  double& z_out,
00056                  double* p_out,
00057                  double* rkd,
00058                  int& ierror);
00059 
00061   void rk4fast(  double& z_in ,
00062                  double* p_in ,
00063                  double& z_out ,
00064                  double* p_out,
00065                  double* rkd,
00066                  int& ierror );
00067 
00069   void rk5order( double& z_in ,
00070                  double* p_in ,
00071                  double& error ,
00072                  double& z_out ,
00073                  double* p_out,
00074                  double* rkd,
00075                  int& ierror);
00076 
00078   void rk5fast(  double& z_in ,
00079                  double* p_in,
00080                  double& error,
00081                  double& z_out,
00082                  double* p_out,
00083                  double* rkd,
00084                  int& ierror);
00085 
00087   void rk5numde( double& z_in ,
00088                  double* p_in,
00089                  double& error,
00090                  double& z_out,
00091                  double* p_out,
00092                  double* rkd,
00093                  int& ierror);
00094 
00096   void rk5fast(  double& z_in, 
00097                  double* p_in, 
00098                  double& error, 
00099                  double& z_out,
00100                  double* p_out);
00101 
00103   void rk4fast(  double& z_in, 
00104                  double* p_in, 
00105                  double& z_out, 
00106                  double* p_out);
00107  
00108   int m_extrapolatorID;
00109 
00110   double             m_error;  
00111   HepPoint3D         m_point;  
00112   HepVector3D        m_B;      
00113   IMagneticFieldSvc* m_pIMF;   
00114 
00115   // Parameters for Runge-Kutta
00116   double             m_qpCurls;    
00117   double             m_stepMin;    
00118   double             m_stepMinRK5; 
00119 
00120 };
00121 
00122 #endif // TRACKHERABEXTRAPOLATOR_H
00123 
00124 
00125 
00126 
00127 

Generated on Thu Apr 7 22:43:27 2005 for New Track Event Model by doxygen 1.4.1