00001 // $Id: TrackProjector.h,v 1.1 2005/05/25 15:51:47 cattanem Exp $ 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 // from TrackInterfaces 00010 #include "TrackInterfaces/ITrackProjector.h" // Interface 00011 00012 // from TrackEvent 00013 #include "Event/State.h" 00014 #include "Event/Measurement.h" 00015 00025 class TrackProjector : public GaudiTool, 00026 virtual public ITrackProjector { 00027 public: 00028 00031 virtual StatusCode project( const State& state, 00032 Measurement& meas ); 00033 00034 00036 virtual const HepVector& projectionMatrix() const; 00037 00039 double chi2() const; 00040 00042 double residual() const; 00043 00045 double errResidual() const; 00046 00048 TrackProjector( const std::string& type, 00049 const std::string& name, 00050 const IInterface* parent ); 00051 00052 virtual ~TrackProjector( ); 00053 00054 protected: 00055 00056 void computeResidual(const State& state, const Measurement& meas); 00057 void computeErrorResidual(const State& state, const Measurement& meas); 00058 00059 protected: 00060 double m_residual; 00061 double m_errResidual; 00062 HepVector m_H; 00063 00064 private: 00065 00066 }; 00067 #endif // TRACKPROJECTORS_TRACKPROJECTOR_H