25 #ifndef BSEMCEXPCLUSTERSPLITTINGPROCESS_HH 26 #define BSEMCEXPCLUSTERSPLITTINGPROCESS_HH 34 #include "RtypesCore.h" 51 class FairParGenericSet;
57 class TMemberInspector;
58 struct BSEmcClusteringData;
86 virtual void SetDetectorName(
const std::string &t_detectorName) ;
90 virtual void Process() ;
91 std::vector<BSEmcSubCluster *> SubClustering(
const std::vector<const BSEmcDigi *> &t_digiCont,
const std::vector<BSEmcCluster *> &t_clusterCont);
102 std::string fClusteringParName{
""};
103 std::string fClusterPropertiesParName{
""};
104 std::string fPositionParName{
""};
105 std::string fNeighbouringRelationParName{
""};
107 TString fDigiBranchname{
""};
108 TString fClusterBranchname{
""};
109 TString fSubClusterBranchname{
""};
114 std::vector<BSEmcSubCluster *> fSubClusterVector{};
116 Double_t fMoliereRadius{-1};
117 Double_t fExponentialConstant{-1};
118 Int_t fMaxIterations{-1};
119 Double_t fCentroidShift{-1};
120 Int_t fMaxSubClusters{-1};
121 Double_t fMinDigiEnergy{-1};
126 Double_t fClusterEnergyCut{-1};
129 std::vector<DigiLocationInfo> GetEnergyAndLocationInfo(
const std::vector<const BSEmcDigi *> &t_digiCont,
const std::vector<BSEmcDigiInfo_t> &t_digis)
const;
130 void ClearSubClusters(std::map<Int_t, BSEmcSubCluster *> &t_tmpsubClusters)
const;
132 CalculateWeight(Int_t t_currentDigiDetID, Int_t t_currentMaxDetId,
const TVector3 &t_currentdigisPosition,
const std::map<Int_t, DigiLocationInfo> &t_centroidPositions)
const;
133 void UpdateCentroidPositions(
const std::map<Int_t, BSEmcSubCluster *> &t_subClusters, std::map<Int_t, DigiLocationInfo> &t_centroidPositions)
const;
134 void AddDigiWithWeightToSubCluster(Int_t t_digiIdx, Double_t t_weight,
BSEmcSubCluster *t_subcluster);
135 void AddSubClusters(
const std::map<Int_t, BSEmcSubCluster *> &t_subClusters,
const std::vector<BSEmcCluster *> &t_clusterCont, Int_t t_clusterIdx);
136 void SplitIntoMultipleSubCluster(
BSEmcCluster *t_cluster, Int_t t_clusterIdx,
const std::vector<const BSEmcDigi *> &t_digiCont,
const std::vector<BSEmcCluster *> &t_clusterCont);
137 void SplitIntoSingleSubCluster(
BSEmcCluster *t_cluster, Int_t t_clusterIdx);
void SetDigiBranchName(const TString &t_branchname)
Container for clustering parameter.
void SetNeighbouringRelationParName(const std::string &t_parName)
splits clusters on the basis of exponential distance from the subCluster centroid ...
Helper class to calculate the cluster position.
a cluster (group of neighboring crystals) of hit emc crystals
Parameter for crystal positions.
void SetPositionParName(const std::string &t_parName)
represents the reconstructed hit of one emc crystal
void SetClusteringParName(const std::string &t_parName)
void SetClusterBranchName(const TString &t_branchname)
Interface to a datacontainer to be used in PandaROOT.
void SetClusterPropertiesParName(const std::string &t_parName)
Helper class to calculate the Energies of a cluster.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
represents a reconstructed (splitted) emc cluster
simple Struct used in Cluster classes to index crystal. Includes the weight of the crystal on the cur...
void SetSubClusterBranchName(const TString &t_branchname)