MpdEmcDigitizer.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //--------------------------------------------------------------------
  2. //
  3. // Description:
  4. // MPD EMC Digitizer - takes EmcPoints and makes digits
  5. //
  6. //
  7. // Author List:
  8. // Alexander Zinchenko LHEP, JINR, Dubna - 8-May-2016
  9. // Alexander Zinchenko LHEP, JINR, Dubna - 24-June-2018 - adapted to projective geometry
  10. //
  11. //--------------------------------------------------------------------
  12. #ifndef MPDEMCDIGITIZER_H
  13. #define MPDEMCDIGITIZER_H 1
  14. #include "MpdEmcDigit.h"
  15. #include "FairTask.h"
  16. #include <iostream>
  17. #include <map>
  18. class MpdEmcGeoParams;
  19. class TClonesArray;
  20. class MpdEmcDigitizer : public FairTask {
  21. public:
  22. /** Default constructor **/
  23. MpdEmcDigitizer();
  24. /** Destructor **/
  25. ~MpdEmcDigitizer();
  26. /** Virtual method Init **/
  27. virtual InitStatus Init();
  28. /** Virtual method Exec **/
  29. virtual void Exec(Option_t* opt);
  30. void virtual Finish();
  31. private:
  32. /** Input array of MpdEmcPoints **/
  33. TClonesArray* fPointArray;
  34. /** Input array of MCTracks **/
  35. TClonesArray* fMcTrackArray;
  36. /** Output array of MpdEmcHit **/
  37. TClonesArray* fDigiArray;
  38. void RedoId(TClonesArray *digis, TClonesArray *mctrs);
  39. void FindChanPhiZ(Double_t &phi, Double_t &z);
  40. void FindChanPhiThe(Double_t &phi, Double_t &the);
  41. MpdEmcDigit* SearchHit(TString tower);
  42. MpdEmcGeoParams* fGeoPar;
  43. std::map<TString,MpdEmcDigit*> fHitMap; //!
  44. ClassDef(MpdEmcDigitizer, 1);
  45. };
  46. #endif