MpdItsToTpcMatching.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef MPD_ITSTOTPCMATCHING_H
  2. #define MPD_ITSTOTPCMATCHING_H
  3. /// \ingroup rec
  4. /// \class MpdItsToTpcMatching
  5. /// \brief Track finder in MPD Inner Tracking System (ITS) using cellular automaton (CA)
  6. ///
  7. /// \author Dmitrii Zinchenko, Alexander Zinchenko, LHEP JINR Dubna
  8. #include "MpdItsHit5spd.h"
  9. #include "MpdVector.h"
  10. #include "FairTask.h"
  11. #include "TH1.h"
  12. #include "TObject.h"
  13. #include "TClonesArray.h"
  14. #include "TVector2.h"
  15. #include <map>
  16. #include <set>
  17. class MpdKalmanHit;
  18. class MpdKalmanTrack;
  19. class MpdItsKalmanTrack;
  20. class MpdTpcKalmanTrack;
  21. class MpdItsToTpcMatching :public FairTask
  22. {
  23. public:
  24. /** Constructor **/
  25. MpdItsToTpcMatching(const char *name="MpdVectorFinder", Int_t iVerbose = 1 );
  26. /** Destructor **/
  27. virtual ~MpdItsToTpcMatching();
  28. /// * FairTask methods
  29. /** Intialisation at begin of run. To be implemented in the derived class.
  30. *@value Success If not kSUCCESS, task will be set inactive.
  31. **/
  32. InitStatus Init();
  33. /** Reinitialisation.
  34. *@value Success If not kSUCCESS, task will be set inactive.
  35. **/
  36. InitStatus ReInit();
  37. /** Intialise parameter containers.
  38. **/
  39. void SetParContainers();
  40. void GetItsTracks(std::multimap <Float_t, MpdItsKalmanTrack*> &m, std::multimap <Float_t, MpdItsKalmanTrack*> &mPhi);
  41. void RefitItsTo27(std::multimap <Float_t, MpdItsKalmanTrack*> &m, std::multimap <Float_t, MpdItsKalmanTrack*> &mPhi);
  42. void RefitTpcTo27(std::multimap <Float_t, MpdTpcKalmanTrack*> &m, std::multimap <Float_t, MpdTpcKalmanTrack*> &mPhi);
  43. void Exec(Option_t * option);
  44. /** Action after each event. **/
  45. void Finish();
  46. void Reset();
  47. //void FillGeoScheme(); // fill Kalman filter geometry manager ///???
  48. private:
  49. //Int_t fNPass;
  50. Int_t fExact; //!< exact ID match if != 0
  51. Int_t fNTracks; // number of found tracks 10.02
  52. TClonesArray *fItsPoints; //! ITS MC points
  53. TClonesArray *fItsTracks; //! ITS tracks
  54. TClonesArray *fTpcTracks; //!< array of TPC tracks
  55. TClonesArray *fMCTracks; //!< array of MC tracks
  56. TClonesArray *fTracks; //! array of ITS tracks
  57. TClonesArray *fTracks1; //! array of TPC tracks
  58. TClonesArray *fTracksRefit; //! array of refit ITS tracks
  59. TClonesArray *fTpcTracksRefit; //! array of refit TPC tracks;
  60. TClonesArray *fKHits; //! array of Kalman hits from Vector Finder
  61. std::set<Int_t> fTpcIndSet; //! unmatched TPC track indices
  62. ClassDef(MpdItsToTpcMatching,0);
  63. };
  64. #endif