ClusterElement.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // $Id$
  2. // Author: artur 2016/04/07
  3. #ifndef __CLUSTERELEMENT_H__
  4. #define __CLUSTERELEMENT_H__
  5. #include <TArrayI.h>
  6. #include <TArrayD.h>
  7. #include <TNamed.h>
  8. #include <set>
  9. ////////////////////////////////////////////////////////////////////////////////
  10. // //
  11. // ClusterElement //
  12. // //
  13. // simplest data memebers interpretation: //
  14. // //
  15. // id[0]: unique id //
  16. // id[1], id[2]: position it 2D-map //
  17. // //
  18. // value[0]: deposit //
  19. // value[1]: deposit error //
  20. // value[2]: background level //
  21. // //
  22. // ClustersID: clusters to which the point belongs //
  23. // //
  24. ////////////////////////////////////////////////////////////////////////////////
  25. typedef std::set<Int_t> CL_IDS;
  26. class ClusterElement: public TNamed {
  27. public:
  28. ClusterElement();
  29. ClusterElement(Int_t uid);
  30. ClusterElement(Int_t uid, Int_t id1, Int_t id2);
  31. virtual ~ClusterElement() {}
  32. virtual void clear(); // clear own data only
  33. virtual void print(Int_t opt = 0) const;
  34. //------------------------------------------------------------
  35. virtual void SetId(Int_t i, Int_t id); // !!! i > 0 !!!
  36. virtual void SetValue(Double_t v) { Value_[0] = v; }
  37. virtual void AddValue(Double_t v) { Value_[0] += v; }
  38. virtual void SetValue(Int_t i, Double_t v);
  39. virtual void AddValue(Int_t i, Double_t v);
  40. //------------------------------------------------------------
  41. Int_t GetId() const { return Id_[0]; }
  42. Double_t GetValue() const { return Value_[0]; }
  43. Int_t GetId(Int_t i) const { return Id_[i]; }
  44. Double_t GetValue(Int_t i) const { return Value_[i]; }
  45. const CL_IDS& GetClsId() const { return ClustersID_; }
  46. Int_t GetNClusters() const;
  47. Int_t* GetClustersID() const;
  48. //------------------------------------------------------------
  49. virtual Bool_t FindCluster(Int_t id) const;
  50. protected:
  51. TArrayI Id_; // id
  52. TArrayD Value_; // own data
  53. CL_IDS ClustersID_; // <cluster ID>
  54. /***** used in Cluster *****/
  55. Bool_t AddCluster(Int_t id);
  56. Bool_t RemoveCluster(Int_t id);
  57. friend class Cluster;
  58. ClassDef(ClusterElement,1)
  59. };
  60. #endif /* __CLUSTERELEMENT_H__ */