00001 #ifndef TRLINEAREXTRAPOLATOR_H
00002 #define TRLINEAREXTRAPOLATOR_H 1
00003
00004
00005 #include "GaudiAlg/GaudiTool.h"
00006 #include "TrKernel/ITrExtrapolator.h"
00007
00008
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 virtual StatusCode propagate( TrState* state,
00038 ParticleID partId = ParticleID(211) );
00039
00041 virtual StatusCode propagate( TrState* state,
00042 HepPlane3D plane,
00043 ParticleID partId = ParticleID(211) );
00044
00046 virtual StatusCode propagate( TrState* state,
00047 double zNew,
00048 ParticleID partId = ParticleID(211) );
00049
00051 virtual const HepMatrix& transportMatrix() const;
00052
00053 private:
00054
00056 HepMatrix m_F;
00057
00059 void extrapolate( TrState* state) const;
00060
00061 };
00062
00063 #endif // TRLINEAREXTRAPOLATOR_H