PandaRoot
BSEmcGeoItem.h
Go to the documentation of this file.
1 #ifndef BSEMCGEOITEM_HH
2 #define BSEMCGEOITEM_HH
3 
4 #include <vector>
5 
6 #include "Rtypes.h"
7 #include "RtypesCore.h"
8 #include "TObject.h"
9 
10 #include "BSEmcDigi.h"
11 
12 class BSEmcDigi;
13 class TBuffer;
14 class TClass;
15 class TMemberInspector;
16 
25 class BSEmcGeoItem : public TObject {
26  public:
27  BSEmcGeoItem();
28  virtual ~BSEmcGeoItem();
29 
30  Bool_t IsSameItem(const BSEmcGeoItem *t_item) const { return GetID() == t_item->GetID(); }
31 
32  Bool_t IsNeighbour(const BSEmcGeoItem *t_item) const;
33  Bool_t HasNeighbours() const { return !fNeighbours.empty(); }
34  Bool_t IsAdded() const { return fIsAdded; }
35  Bool_t IsDigiPresent() const { return fDigis.size() > 0; }
36  Int_t NumberOfNeighbours() const { return fNeighbourCount; }
37 
38  void AddNeighbour(BSEmcGeoItem *t_item);
39  void SetID(Int_t t_uniqueId) { fUniqueID = t_uniqueId; }
40  Int_t GetID() const { return fUniqueID; }
41  const std::vector<BSEmcGeoItem *> &GetNeighbours() const { return fNeighbours; }
42  const BSEmcGeoItem *GetNeighbour(Int_t t_index) const { return fNeighbours.at(t_index); }
43  BSEmcGeoItem *GetNeighbour(Int_t t_index) { return fNeighbours.at(t_index); }
44  void ClearNeighbourList() { fNeighbours.clear(); }
45  void FindClusterCrystals(std::vector<BSEmcGeoItem *> &t_clusterCrystals);
46 
47  void Reset();
48  void AddDigi(const BSEmcDigi *t_digi) { fDigis.push_back(t_digi); }
49  const std::vector<const BSEmcDigi *> &GetDigis() const { return fDigis; }
50  void AddDigiIndex(Int_t t_digiindex) { fDigiIndices.push_back(t_digiindex); }
51  const std::vector<Int_t> &GetDigiIndices() const { return fDigiIndices; }
52 
53  private:
54  Int_t fUniqueID{-1};
55  std::vector<BSEmcGeoItem *> fNeighbours{};
56  Int_t fNeighbourCount{-1};
57  std::vector<const BSEmcDigi *> fDigis{};
58  std::vector<Int_t> fDigiIndices{};
59  Bool_t fIsAdded{kFALSE};
60  ClassDef(BSEmcGeoItem, 1);
61 };
62 
63 #endif /*BSEMCGEOITEM_HH*/
Bool_t IsAdded() const
Definition: BSEmcGeoItem.h:34
const std::vector< Int_t > & GetDigiIndices() const
Definition: BSEmcGeoItem.h:51
Int_t GetID() const
Definition: BSEmcGeoItem.h:40
Bool_t IsDigiPresent() const
Definition: BSEmcGeoItem.h:35
Bool_t IsSameItem(const BSEmcGeoItem *t_item) const
Definition: BSEmcGeoItem.h:30
void ClearNeighbourList()
Definition: BSEmcGeoItem.h:44
Bool_t HasNeighbours() const
Definition: BSEmcGeoItem.h:33
void AddDigi(const BSEmcDigi *t_digi)
Definition: BSEmcGeoItem.h:48
BSEmcGeoItem * GetNeighbour(Int_t t_index)
Definition: BSEmcGeoItem.h:43
const std::vector< BSEmcGeoItem * > & GetNeighbours() const
Definition: BSEmcGeoItem.h:41
const std::vector< const BSEmcDigi * > & GetDigis() const
Definition: BSEmcGeoItem.h:49
void FindClusterCrystals(std::vector< BSEmcGeoItem *> &t_clusterCrystals)
Convenience object for neighbouring relations used by BSEmcRecursiveClustering.
Definition: BSEmcGeoItem.h:25
Bool_t IsNeighbour(const BSEmcGeoItem *t_item) const
virtual ~BSEmcGeoItem()
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
void AddDigiIndex(Int_t t_digiindex)
Definition: BSEmcGeoItem.h:50
void SetID(Int_t t_uniqueId)
Definition: BSEmcGeoItem.h:39
Int_t NumberOfNeighbours() const
Definition: BSEmcGeoItem.h:36
void AddNeighbour(BSEmcGeoItem *t_item)
const BSEmcGeoItem * GetNeighbour(Int_t t_index) const
Definition: BSEmcGeoItem.h:42