00001 // $Id: TrackParabolicExtrapolator.h,v 1.1 2005/03/16 14:10:05 hernando Exp $ 00002 #ifndef TRACKPARABOLICEXTRAPOLATOR_H 00003 #define TRACKPARABOLICEXTRAPOLATOR_H 1 00004 00005 // Include files 00006 #include "TrackExtrapolators/TrackExtrapolator.h" 00007 00008 // Forward declaration 00009 class IMagneticFieldSvc; 00010 00023 class TrackParabolicExtrapolator: public TrackExtrapolator 00024 { 00025 00026 public: 00028 TrackParabolicExtrapolator( const std::string& type, 00029 const std::string& name, 00030 const IInterface* parent); 00031 00033 virtual ~TrackParabolicExtrapolator(); 00034 00036 virtual StatusCode initialize(); 00037 00038 00040 virtual StatusCode propagate( State& state, 00041 double z, 00042 ParticleID pid = ParticleID(211) ); 00043 protected: 00044 00046 virtual void updateTransportMatrix( const double dz, State& pState); 00047 00048 protected: 00049 00050 double m_ax; 00051 double m_ay; 00052 HepVector3D m_B; 00053 IMagneticFieldSvc* m_pIMF; 00054 00055 }; 00056 00057 00058 #endif // TRACKPARABOLICEXTRAPOLATOR_H