MpdEmcClusterizerKI.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //-----------------------------------------------------------
  2. //
  3. // Author List:
  4. // D.Peresunko, KI, 2019
  5. //-----------------------------------------------------------
  6. #ifndef MPDEMCCLUSTERIZERKI_H
  7. #define MPDEMCCLUSTERIZERKI_H
  8. // Base Class Headers ----------------
  9. #include <map>
  10. #include "FairLogger.h"
  11. #include "FairTask.h"
  12. // Collaborating Class Declarations --
  13. class TClonesArray;
  14. class TObjArray;
  15. class MpdEmcSimParams;
  16. class MpdEmcGeoUtils;
  17. class MpdEmcClusterKI;
  18. class MpdEmcCalibParams;
  19. class MpdEmcClusterizerKI : public FairTask
  20. {
  21. public:
  22. // Constructors/Destructors ---------
  23. MpdEmcClusterizerKI();
  24. ~MpdEmcClusterizerKI() {}
  25. virtual InitStatus Init();
  26. void FinishTask() {}
  27. virtual void Exec(Option_t* opt);
  28. static double ShowerShape(double dx, double dz); // Parameterization of EM shower
  29. protected:
  30. void PrepareDigits(); // Calibrate, Allpy BadMap, clean...
  31. void MakeClusters(); // Do the job
  32. void MakeUnfoldings(); // Find and unfold clusters with few local maxima
  33. void UnfoldOneCluster(MpdEmcClusterKI* iniClu, Int_t nMax, int* digitId, float* maxAtEnergy);
  34. // Performs the unfolding of a cluster with nMax overlapping showers
  35. // Parameters: iniClu cluster to be unfolded
  36. // nMax number of local maxima found (this is the number of new clusters)
  37. // digitId: index of digits, corresponding to local maxima
  38. // maxAtEnergy: energies of digits, corresponding to local maxima
  39. void EvalClusters();
  40. private:
  41. int fNumberOfClusters; // Number of created clusters
  42. TClonesArray* fDigitsArray; //! Input digits array
  43. TObjArray* fClustersArray; //! output clusters array
  44. MpdEmcSimParams* fSimParams; //! Configuration parameters
  45. MpdEmcGeoUtils* fGeom; //! Geometry class
  46. MpdEmcCalibParams * fCalibData; //! Calibration parameters
  47. ClassDef(MpdEmcClusterizerKI, 1)
  48. };
  49. #endif
  50. //--------------------------------------------------------------
  51. // $Log$
  52. //--------------------------------------------------------------