#ifndef FITTER_ABSHIT_H #define FITTER_ABSHIT_H #include #include "TMatrixT.h" #include "TObject.h" #include "AbsTrackRep.h" #include "DetPlane.h" #include "MatrixPrinter.h" class AbsRecoHit : public TObject{ protected: TMatrixT _HMatrix; TMatrixT _hitCoord; TMatrixT _hitCov; public: virtual ~AbsRecoHit(); AbsRecoHit(int NparHit); AbsRecoHit(); virtual void setHMatrix(const AbsTrackRep* stateVector, const TMatrixT& state)=0; inline TMatrixT getHMatrix() const {return _HMatrix;} virtual TMatrixT residualVector(const AbsTrackRep* stateVector, const TMatrixT& state) { setHMatrix(stateVector,state); return ( _hitCoord - (_HMatrix*state )); } virtual double residualScalar(const AbsTrackRep* stateVector, const TMatrixT& state)=0; TMatrixT getRawHitCov() const {return _hitCov;} TMatrixT getRawHitCoord() const {return _hitCoord;} virtual TMatrixT getHitCov(const DetPlane&)=0; virtual TMatrixT getHitCoord(const DetPlane&)=0; // this will call the policy stuff in derived classes virtual const DetPlane& getDetPlane(const AbsTrackRep*)=0; virtual AbsRecoHit* clone() = 0; virtual void Print() {_hitCoord.Print();} ClassDef(AbsRecoHit,1) }; #endif //FITTER_ABSHIT_H