MpdEtofMatching.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //------------------------------------------------------------------------------------------------------------------------
  2. #ifndef __MPD_ETOF_MATCHING_H
  3. #define __MPD_ETOF_MATCHING_H 1
  4. //------------------------------------------------------------------------------------------------------------------------
  5. /// \class MpdEtofMatching
  6. ///
  7. /// \brief
  8. /// \author Sergei Lobastov (LHE, JINR, Dubna)
  9. //------------------------------------------------------------------------------------------------------------------------
  10. #include <TObject.h>
  11. #include <TVector3.h>
  12. #include "MpdTofUtils.h"
  13. #include "MpdTofHit.h"
  14. #include "MpdTofMatchingData.h"
  15. #include "FairTask.h"
  16. //------------------------------------------------------------------------------------------------------------------------
  17. class MpdEctKalmanTrack;
  18. class TClonesArray;
  19. //class LMatchingFilter;
  20. class MpdTofMatchingQA;
  21. class MpdKalmanFilter;
  22. //------------------------------------------------------------------------------------------------------------------------
  23. class MpdEtofMatching : public FairTask
  24. {
  25. public:
  26. enum kMode {kBruteForce, kIntervalTree, kSmearingDummyTracks};
  27. private:
  28. TClonesArray *aMcPoints; //! <--- MC input
  29. TClonesArray *aMcTracks; //! <--- MC input
  30. TClonesArray *aTofHits; //! <--- input TOF hits
  31. TClonesArray *aKFectTracks; //! <--- input KF Ect Tracks
  32. TClonesArray *aTofMatchings; //! ---> output
  33. kMode fMode;
  34. Bool_t fDoTest, fUseMCData, fDoMCTest;
  35. TRandom2 *pRandom;
  36. Int_t fNSmeared; // default = 20, N samples for kSmearingDummyTracks method
  37. Double_t fTofZpos, fTofRmax; // [cm]
  38. Double_t fThreshR, fThreshTheta; // [cm], acceptance window
  39. MpdKalmanFilter *pKF; //!
  40. MpdTofMatchingQA *pMatchingQA; //!
  41. // LMatchingFilter *pMF; //!
  42. bool EstTrackOnPlane(const MpdEctKalmanTrack *tr, Double_t Z, TVector3& pos, Double_t& length, TVector3& Mom, Int_t& charge)const;
  43. public:
  44. MpdEtofMatching(const char *name = "ETOF Matching", Int_t verbose = 1, Bool_t DoTest = false, const char *flnm = "QA.MpdEtofMatching.root");
  45. ~MpdEtofMatching();
  46. InitStatus Init();
  47. void Exec(Option_t * option);
  48. void Finish();
  49. void SetETofZposition(Double_t z){ fTofZpos = z; };
  50. ClassDef(MpdEtofMatching,1) // MpdEtofMatching
  51. };
  52. //------------------------------------------------------------------------------------------------------------------------
  53. #endif