24 #ifndef BSEMCCLUSTER_HH 25 #define BSEMCCLUSTER_HH 31 #include "RtypesCore.h" 34 #include "FairMultiLinkedData.h" 35 #include "FairTimeStamp.h" 43 class TMemberInspector;
55 BSEmcDigiInfo_t(Int_t t_digiIdx = -1, Int_t t_detId = 0, Double_t t_weight = 1.0) : fDigiIdx(t_digiIdx), fDetectorId(t_detId), fWeight(t_weight) {}
73 virtual void Print(
const Option_t *t_opt =
"")
const;
77 Double_t GetEnergy()
const;
78 TVector3 GetPosition()
const;
80 Int_t NumberOfDigis()
const;
85 void SetNSubClusters(UInt_t nSubClusters);
96 void SetTrackEntering(
const FairMultiLinkedData &t_tracks) { fTrackEntering = t_tracks; }
97 void SetTrackExiting(
const FairMultiLinkedData &t_tracks) { fTrackExiting = t_tracks; }
99 std::vector<Int_t> GetMcList(Int_t t_branchId)
const;
103 const std::vector<BSEmcDigiInfo_t> &
GetDigis()
const {
return fDigis; }
106 const BSEmcDigi *GetMaximumDigi(
const std::vector<const BSEmcDigi *> &t_digis)
const;
107 Double_t GetMaximumEnergy(
const std::vector<const BSEmcDigi *> &t_digis)
const;
108 BSEmcDigiInfo_t GetMaximumDigiInfo(
const std::vector<const BSEmcDigi *> &t_digis)
const;
109 Double_t CalculateTimeStamp(
const std::vector<const BSEmcDigi *> &t_digis)
const;
112 void AddDigi(Int_t t_arrayindex, Int_t t_detectorId, Double_t t_weight = 1);
113 void AddDigiLink(FairLink t_entrynr);
114 void RemoveDigi(Int_t t_arrayindex);
117 void AddMaximum(Int_t t_arrayindex, Int_t t_detectorid);
118 void RemoveMaximum(Int_t t_arrayindex);
125 void SetRadius(Double_t t_clusradius) { fRadius = t_clusradius; }
138 void invalidateCache(Bool_t);
141 std::vector<BSEmcDigiInfo_t> fDigis{};
142 std::vector<BSEmcDigiInfo_t> fMaxima{};
144 Bool_t fEnergyValid{kFALSE};
145 Double_t fEnergy{-1};
146 Bool_t fWhereValid{kFALSE};
147 TVector3 fWhere{0, 0, 0};
148 UInt_t fNSubClusters{0};
150 FairMultiLinkedData fTrackEntering{};
151 FairMultiLinkedData fTrackExiting{};
153 Double_t fRadius{-1};
154 Double_t fXRadius{-1};
155 Double_t fYRadius{-1};
void SetEnergy(Double_t t_energy)
Double_t GetRadius() const
BSEmcDigiInfo_t(Int_t t_digiIdx=-1, Int_t t_detId=0, Double_t t_weight=1.0)
FairMultiLinkedData GetTrackExiting() const
void SetTrackExiting(const FairMultiLinkedData &t_tracks)
const std::vector< BSEmcDigiInfo_t > & GetDigis() const
void SetXRadius(Double_t t_xrad)
Double_t GetYRadius() const
const std::vector< BSEmcDigiInfo_t > & GetMaximaDigis() const
FairMultiLinkedData GetTrackEntering() const
void SetPosition(const TVector3 &t_pos)
a cluster (group of neighboring crystals) of hit emc crystals
void SetRadius(Double_t t_clusradius)
Double_t GetXRadius() const
Int_t GetNumberOfDigis() const
void SetTrackEntering(const FairMultiLinkedData &t_tracks)
represents the reconstructed hit of one emc crystal
void SetYRadius(Double_t t_yrad)
Bool_t operator==(const BSEmcDigiInfo_t &t_other)
simple Struct used in Cluster classes to index crystal. Includes the weight of the crystal on the cur...
Int_t GetNumberOfSubCluster() const