#ifndef HKalMdcHit_h #define HKalMdcHit_h // from ROOT #include "TMatrixD.h" class TRotation; class TVector3; #include "TVectorD.h" // from hadeskalman #include "hkalmdcmeaslayer.h" #include using namespace std; #include class HKalMdcHit : public TObject { private: TVectorD hitVec; //! Hit vector. TVectorD errVec; //! Error vector. TMatrixD fErr; //! Error matrix. //TMatrixDDiag errMat; HKalMdcMeasLayer *measLayer; //! Measurement layer where hit was detected. Double_t chi2; // Distance of the observation to the smoothed track state. (Used for DAF.) Double_t weight; // Weight of the measurement compared to its competitors. (Used for DAF.) protected: virtual void setHitVec(const TVector3 &newhit); virtual void setHitVec(const TVectorD &newhit); virtual void setHitAndErr(const TVector3 &newhit, const TVector3 &newerr); virtual void setHitAndErr(const TVectorD &newhit, const TVectorD &newerr); public: HKalMdcHit(Int_t dim); HKalMdcHit(Double_t *hit, Double_t *err, const HKalMdcMeasLayer &layer, Int_t dim, Double_t weight=1.); HKalMdcHit(const TVector3 &hit, const TVector3 &err, const HKalMdcMeasLayer &layer, Int_t dim, Double_t weight=1.); virtual ~HKalMdcHit(); static Bool_t areCompetitors(const HKalMdcHit &hit1, const HKalMdcHit &hit2); virtual Int_t Compare (const TObject *obj) const; virtual void print (const Option_t *opt="") const; virtual void transformHit (const TRotation *transMat); virtual void transformLayer(const TRotation *transMat); virtual Double_t getChi2 () const { return chi2; } virtual Int_t getDimension() const { return hitVec.GetNrows(); } virtual TVectorD const& getHitVec () const { return hitVec; } virtual void getHitVec3 (TVector3 &hit3) const; virtual TMatrixD const& getErrMat () const { return fErr; } virtual TVectorD const& getErrVec () const { return errVec; } virtual void getErrVec3 (TVector3 &err3) const; virtual Double_t getWeight () const { return weight; } virtual HKalMdcMeasLayer const& getMeasLayer() const { return *measLayer; } virtual Bool_t IsSortable () const { return kTRUE; } virtual void setChi2 (Double_t chi) { chi2 = chi; } virtual void setWeight (Double_t w) { weight = w; } ClassDef(HKalMdcHit, 0) }; #endif // HKalMdcHit_h