00001 #ifndef TRKERNEL_ITREXTRAPOLATOR_H 00002 #define TRKERNEL_ITREXTRAPOLATOR_H 00003 00004 #include "GaudiKernel/IAlgTool.h" 00005 #include "CLHEP/Matrix/Matrix.h" 00006 #include "CLHEP/Geometry/Plane3D.h" 00007 #include "Kernel/ParticleID.h" 00008 00009 class TrTrack; 00010 class TrState; 00011 00012 static const InterfaceID IID_ITrExtrapolator( "ITrExtrapolator" , 1, 0 ); 00013 00026 class ITrExtrapolator: virtual public IAlgTool { 00027 public: 00029 static const InterfaceID& interfaceID() { return IID_ITrExtrapolator; } 00030 00032 virtual StatusCode propagate( TrState* state, 00033 ParticleID partId = ParticleID(211)) = 0; 00034 00036 virtual StatusCode propagate( TrState* state, 00037 HepPlane3D plane, 00038 ParticleID partId = ParticleID(211)) = 0; 00039 00041 virtual StatusCode propagate( TrState* state, 00042 double z, 00043 ParticleID partId = ParticleID(211)) = 0; 00044 00046 virtual const HepMatrix& transportMatrix() const = 0; 00047 00048 }; 00049 00050 #endif // TRKERNEL_ITREXTRAPOLATOR_H