00001
00002 #ifndef LHCBINTERFACES_ITRACKPROJECTOR_H
00003 #define LHCBINTERFACES_ITRACKPROJECTOR_H 1
00004
00005
00006 #include "GaudiKernel/IAlgTool.h"
00007
00008 #include "CLHEP/Matrix/Matrix.h"
00009
00010 class State;
00011 class Measurement;
00012
00013 static const InterfaceID IID_ITrackProjector ( "ITrackProjector", 1, 0 );
00014
00023 class ITrackProjector : virtual public IAlgTool {
00024 public:
00025
00026 static const InterfaceID& interfaceID() { return IID_ITrackProjector; }
00027
00030 virtual StatusCode project( const State& state,
00031 Measurement& meas ) = 0;
00032
00034 virtual const HepVector& projectionMatrix() const = 0;
00035
00037 virtual double chi2() const = 0;
00038
00040 virtual double residual() const = 0;
00041
00043 virtual double errResidual() const = 0;
00044
00045 };
00046
00047
00048
00049
00050
00051 #endif // LHCBINTERFACES_ITRACKPROJECTOR_H