1 #ifndef BSEMCRECURSIVECLUSTERING_HH 2 #define BSEMCRECURSIVECLUSTERING_HH 11 #include "RtypesCore.h" 30 class TMemberInspector;
31 struct BSEmcClusteringData;
55 std::vector<BSEmcCluster *>
Clustering(
const std::vector<const BSEmcDigi *> &t_digis);
86 void FillGeoItems(
const std::vector<const BSEmcDigi *> &t_digis);
87 std::vector<std::vector<BSEmcGeoItem *>>
SpatialClustering(
const std::vector<const BSEmcDigi *> &t_digis);
88 std::vector<BSEmcCluster *>
ConvertToCluster(
const std::vector<std::vector<BSEmcGeoItem *>> &t_clusterstubs,
const std::vector<const BSEmcDigi *> &t_digis)
const;
ClassDef(BSEmcRecursiveClustering, 1)
PndMutableContainerI< BSEmcCluster > * fClusterArray
Container for clustering parameter.
void FillGeoItems(const std::vector< const BSEmcDigi *> &t_digis)
virtual void SetupParameters(const PndParameterRegister *t_paramRegister)
Fetch all parameters from the PndParameterRegister.
BSEmcRecursiveClustering()
void SetClusterBranchName(const TString &t_branchname)
virtual void SetDetectorName(const std::string &t_detectorName)
Set the Detector name. Important, as most EmcParameter need to know for which detector they need to b...
virtual void GetDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and set the processes container requirements.
virtual ~BSEmcRecursiveClustering()
Helper class to calculate the cluster position.
void SetPositionParName(const std::string &t_parName)
std::string fNeighbouringRelationParName
PndContainerI< BSEmcDigi > * fDigiArray
BSEmcGeoNeighbouringRelationPar * fNeighbouringRelationPar
std::string fClusterPropertiesParName
void SetClusteringParName(const std::string &t_parName)
a cluster (group of neighboring crystals) of hit emc crystals
Double_t fDigiEnergyThreshold
std::vector< BSEmcCluster * > Clustering(const std::vector< const BSEmcDigi *> &t_digis)
virtual void RequestDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and get the processes container requirements.
Convenience object for neighbouring relations used by BSEmcRecursiveClustering.
std::vector< std::vector< BSEmcGeoItem * > > SpatialClustering(const std::vector< const BSEmcDigi *> &t_digis)
represents the reconstructed hit of one emc crystal
std::vector< BSEmcCluster * > ConvertToCluster(const std::vector< std::vector< BSEmcGeoItem *>> &t_clusterstubs, const std::vector< const BSEmcDigi *> &t_digis) const
Double_t fClusterActiveTime
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
Interface to a datacontainer to be used in PandaROOT.
std::set< BSEmcGeoItem * > fChangedCrystals
Helper class to calculate the Energies of a cluster.
void SetDigiBranchName(const TString &t_branchname)
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
Neigbouring Relations based on a list of detectorIds.
std::string fClusteringParName
std::unique_ptr< BSEmcEnergyCalculationAlgo > fEnergyProcess
TString fClusterBranchname
void SetClusterPropertiesParName(const std::string &t_parName)
std::unique_ptr< BSEmcPositionAlgo > fPositionProcess
std::string fPositionParName
std::map< Int_t, std::unique_ptr< BSEmcGeoItem > > fIDToCrystal
void SetNeighbouringRelationParName(const std::string &t_parName)