00001 // $Id: $ 00002 #ifndef TRACKPROJECTORS_TRACKPROJECTOR_H 00003 #define TRACKPROJECTORS_TRACKPROJECTOR_H 1 00004 00005 // Include files 00006 // from Gaudi 00007 #include "GaudiAlg/GaudiTool.h" 00008 00009 #include "Tools/ITrackProjector.h" // Interface 00010 00011 #include "Event/Node.h" 00012 class State; 00013 class Measurement; 00014 00015 00026 class TrackProjector : public GaudiTool, 00027 virtual public ITrackProjector { 00028 public: 00031 virtual double project( const State& state, 00032 const Measurement& meas ) const; 00033 00035 Node& node() const; 00036 00038 double chi2() const; 00039 00041 double residual() const; 00042 00044 double errResidual() const; 00045 00047 TrackProjector( const std::string& type, 00048 const std::string& name, 00049 const IInterface* parent ); 00050 00051 virtual ~TrackProjector( ); 00052 00053 protected: 00054 Node* m_node; 00055 00056 private: 00057 00058 }; 00059 #endif // TRACKPROJECTORS_TRACKPROJECTOR_H