00001 #ifndef TRLINEAREXTRAPOLATOR_H 00002 #define TRLINEAREXTRAPOLATOR_H 1 00003 00004 // Include file 00005 #include "GaudiAlg/GaudiTool.h" 00006 #include "TrKernel/ITrExtrapolator.h" 00007 00008 // Forward declaration 00009 class TrState; 00010 00024 class TrLinearExtrapolator: public GaudiTool, 00025 virtual public ITrExtrapolator { 00026 00027 public: 00029 TrLinearExtrapolator( const std::string& type, 00030 const std::string& name, 00031 const IInterface* parent ); 00032 00034 virtual ~TrLinearExtrapolator(); 00035 00037 StatusCode propagate( TrState* state, 00038 double z, 00039 ParticleID& pid = ParticleID(211) ); 00040 00042 StatusCode propagate( TrState* state, 00043 HepPlane3D& plane, 00044 ParticleID& pid = ParticleID(211) ); 00045 00047 virtual const HepMatrix& transportMatrix() const; 00048 00049 private: 00050 00052 HepMatrix m_F; 00053 00055 void extrapolate( TrState* state) const; 00056 00057 }; 00058 00059 #endif // TRLINEAREXTRAPOLATOR_H