MpdEmcMatching.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //--------------------------------------------------------------------
  2. //
  3. // Description:
  4. // MPD TPC-EMC Matching
  5. //
  6. //
  7. // Author List:
  8. // Alexander Zinchenko LHEP, JINR, Dubna - 1-June-2016
  9. // Alexander Zinchenko LHEP, JINR, Dubna - 8-June-2018 - adapted for projective geometry
  10. //
  11. //--------------------------------------------------------------------
  12. #ifndef MPDEMCMATCHING_H
  13. #define MPDEMCMATCHING_H 1
  14. //#include "MpdEmcDigit.h"
  15. #include "FairTask.h"
  16. #include <TVector3.h>
  17. #include <iostream>
  18. #include <map>
  19. #include <set>
  20. class MpdEmcGeoParams;
  21. class MpdTpcKalmanTrack;
  22. class TClonesArray;
  23. class MpdEmcMatching : public FairTask
  24. {
  25. public:
  26. /** Default constructor **/
  27. MpdEmcMatching();
  28. /** Destructor **/
  29. ~MpdEmcMatching();
  30. /** Virtual method Init **/
  31. virtual InitStatus Init();
  32. /** Virtual method Exec **/
  33. virtual void Exec(Option_t* opt);
  34. void virtual Finish();
  35. private:
  36. /** Input array of MpdEmcPoints **/
  37. TClonesArray* fPointArray;
  38. /** Input array of MCTracks **/
  39. TClonesArray* fMcTrackArray;
  40. /** Input array of EmcRecPoints **/
  41. TClonesArray* fRecPointArray;
  42. /** Input array of TpcKalmanTracks **/
  43. TClonesArray* fTpcTracks;
  44. /** Output array of EmcMatches **/
  45. TClonesArray* fMatchArray;
  46. /** Output array of MpdEmcHit **/
  47. TClonesArray* fDigiArray;
  48. void DoMatching(Int_t itrack);
  49. void GetTowerCoords(TVector3 &pos, Int_t io, Double_t &phiT, Double_t &theT);
  50. MpdEmcGeoParams* fGeoPar;
  51. std::vector<std::multimap<Double_t,Int_t> > fRecPoints;
  52. std::set<Int_t> fSecRows0;
  53. ClassDef(MpdEmcMatching, 1);
  54. };
  55. #endif