12 #ifndef BSEMCCLUSTER_HH 13 #define BSEMCCLUSTER_HH 19 #include "RtypesCore.h" 22 #include "FairMultiLinkedData.h" 23 #include "FairTimeStamp.h" 31 class TMemberInspector;
43 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) {}
61 virtual void Print(
const Option_t *t_opt =
"")
const;
65 Double_t GetEnergy()
const;
66 TVector3 GetPosition()
const;
68 Int_t NumberOfDigis()
const;
73 void SetNSubClusters(UInt_t nSubClusters);
84 void SetTrackEntering(
const FairMultiLinkedData &t_tracks) { fTrackEntering = t_tracks; }
85 void SetTrackExiting(
const FairMultiLinkedData &t_tracks) { fTrackExiting = t_tracks; }
87 std::vector<Int_t> GetMcList(Int_t t_branchId)
const;
91 const std::vector<BSEmcDigiInfo_t> &
GetDigis()
const {
return fDigis; }
92 const std::vector<BSEmcDigiInfo_t> &
GetMaximaDigis()
const {
return fMaxima; }
94 const BSEmcDigi *GetMaximumDigi(
const std::vector<const BSEmcDigi *> &t_digis)
const;
95 Double_t GetMaximumEnergy(
const std::vector<const BSEmcDigi *> &t_digis)
const;
96 BSEmcDigiInfo_t GetMaximumDigiInfo(
const std::vector<const BSEmcDigi *> &t_digis)
const;
97 Double_t CalculateTimeStamp(
const std::vector<const BSEmcDigi *> &t_digis)
const;
100 void AddDigi(Int_t t_arrayindex, Int_t t_detectorId, Double_t t_weight = 1);
101 void AddDigiLink(FairLink t_entrynr);
102 void RemoveDigi(Int_t t_arrayindex);
105 void AddMaximum(Int_t t_arrayindex, Int_t t_detectorid);
106 void RemoveMaximum(Int_t t_arrayindex);
113 void SetRadius(Double_t t_clusradius) { fRadius = t_clusradius; }
126 void invalidateCache(Bool_t);
129 std::vector<BSEmcDigiInfo_t> fDigis{};
130 std::vector<BSEmcDigiInfo_t> fMaxima{};
132 Bool_t fEnergyValid{kFALSE};
133 Double_t fEnergy{-1};
134 Bool_t fWhereValid{kFALSE};
135 TVector3 fWhere{0, 0, 0};
136 UInt_t fNSubClusters{0};
138 FairMultiLinkedData fTrackEntering{};
139 FairMultiLinkedData fTrackExiting{};
141 Double_t fRadius{-1};
142 Double_t fXRadius{-1};
143 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