MpdKfV0Fitter.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef MPDKFV0FITTER_H
  2. #define MPDKFV0FITTER_H
  3. /// \ingroup rec
  4. /// \class MpdKfV0Fitter
  5. /// \brief Kalman filter V0-fitter for the MPD detector
  6. ///
  7. /// \author Alexander Zinchenko, LHEP JINR Dubna
  8. class MpdKalmanTrack;
  9. class MpdTpcKalmanTrack;
  10. class TVector3;
  11. #include "FairTask.h"
  12. #include <TMatrixD.h>
  13. class TClonesArray;
  14. class MpdKfV0Fitter : public FairTask
  15. {
  16. public:
  17. static MpdKfV0Fitter* Instance(); ///< get singleton instance
  18. static MpdKfV0Fitter* Instance(const char *name, const char *title = "FAIR Task"); ///< get singleton instance
  19. virtual void Exec(Option_t * option);
  20. void Reset();
  21. void Register();
  22. void EvalVertex(MpdKalmanTrack* tr[2]); // evaluate V0 for 2 tracks
  23. Double_t FindVertex(MpdKalmanTrack *track1, MpdKalmanTrack *track2, TVector3 &vtx); // find V0 for 2 tracks
  24. void Smooth(MpdKalmanTrack* tr[2]); // smooth (update track momenta and track lengths)
  25. void ComputeAandB(TMatrixD &xk0, const MpdKalmanTrack *track, const MpdKalmanTrack &trackM,
  26. TMatrixD &a, TMatrixD &b, TMatrixD &ck0); // compute matrices of derivatives
  27. void Proxim(const MpdKalmanTrack &track0, MpdKalmanTrack &track); // adjust track params
  28. TMatrixD GetCovariance() { return fCovar; } //access to covariance matrix
  29. protected:
  30. virtual InitStatus Init();
  31. virtual InitStatus ReInit();
  32. virtual void Finish();
  33. virtual ~MpdKfV0Fitter(); ///< Destructor
  34. private:
  35. MpdKfV0Fitter(); ///< Default ctor
  36. MpdKfV0Fitter(const char *name, const char *title = "FAIR Task"); ///< Ctor
  37. // automatic deleting
  38. static void DestroyInstance() { if (fgV0) delete fgV0; }
  39. private:
  40. static MpdKfV0Fitter* fgV0;
  41. Double_t fieldConst; ///< mag. field constant
  42. Double_t fVtx[3]; ///< V0 position
  43. TMatrixD fCovar; ///< covariance matrix
  44. ClassDef(MpdKfV0Fitter, 1);
  45. };
  46. #endif