PandaRoot
BSEmcMergeRecoHits.h
Go to the documentation of this file.
1 #ifndef BSEMCMERGERECOHITS_HH
2 #define BSEMCMERGERECOHITS_HH
3 
4 
5 #include "BSEmcCluster.h"
6 #include "BSEmcClusteringData.h"
7 #include "PndContainerI.h"
11 #include "BSEmcPositionAlgo.h"
12 #include "PndParameterRegister.h"
13 #include "PndProcess.h"
14 #include "PndOutputContainerI.h"
15 #include <vector>
16 
17 class FairParGenericSet;
18 class BSEmcClusteringPar;
19 
20 class BSEmcDigi;
21 class BSEmcCluster;
22 class BSEmcSubCluster;
23 class BSEmcRecoHit;
24 
25 
26 class BSEmcMergeRecoHits : public PndProcess<BSEmcClusteringData>
27 {
28 public:
30  virtual ~BSEmcMergeRecoHits();
31  virtual void SetDetectorName(const std::string &t_detectorName);
32  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) ;
33  virtual void SetData(BSEmcClusteringData *t_pdata) ;
34  virtual void Process() ;
35 
36 protected:
44  virtual double CalculateDistance(const TVector3 &firstposition, const TVector3 &secondposition);
45 
52  virtual Int_t FindClosestHit(const BSEmcRecoHit* CurrentRecoHit);
53 
60  virtual void FillTmpSubcluster(BSEmcSubCluster* &TmpSubCluster,const BSEmcSubCluster* SubCluster);
61 
68  virtual void UpdateRecoHit(const BSEmcSubCluster* MainSubCluster, const Int_t MainSubClusterId);
69 
74  virtual void CleanUpRecoHitArray();
75 
76  std::string fClusteringParName{""};
77  std::string fClusterPropertiesParName{""};
78  std::string fPositionParName{""};
82  TString fSubClusterBranchName{""};
87  std::unique_ptr<BSEmcEnergyCalculationAlgo> fEnergyProcess{new BSEmcEnergyCalculationAlgo};
88  std::unique_ptr<BSEmcPositionAlgo> fPositionProcess{new BSEmcPositionAlgo};
90 
91 
93 
94 };
95 
96 #endif /*BSEMCMERGERECOHITS_HH*/
Base Process class.
Definition: PndProcess.h:24
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:31
Container for clustering parameter.
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
const BSEmcCrystalPositionPar * fPositionPar
virtual ~BSEmcMergeRecoHits()
PndOutputContainerI< BSEmcSubCluster > * fSubClusterArray
virtual void SetData(BSEmcClusteringData *t_pdata)
Pass the data container ptrs to the process, and store pointers in class members. ...
Helper class to calculate the cluster position.
PndOutputContainerI< BSEmcCluster > * fClusterArray
virtual void FillTmpSubcluster(BSEmcSubCluster *&TmpSubCluster, const BSEmcSubCluster *SubCluster)
Combine the digis of the given SubCluster and the temporary SubCluster and re-calculate energy and po...
virtual void UpdateRecoHit(const BSEmcSubCluster *MainSubCluster, const Int_t MainSubClusterId)
Update the energy values of the main RecoHit based on the temporary SubCluster.
std::unique_ptr< BSEmcEnergyCalculationAlgo > fEnergyProcess
BSEmcGeoNeighbouringRelationPar * fNeighbouringRelationPar
PndContainerI< BSEmcDigi > * fDigiArray
ClassDef(BSEmcMergeRecoHits, 1)
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
virtual void CleanUpRecoHitArray()
Remove SplitOff RecoHits and compress the RecoHitArray.
Parameter for crystal positions.
PndOutputContainerI< BSEmcRecoHit > * fRecoHitArray
virtual Int_t FindClosestHit(const BSEmcRecoHit *CurrentRecoHit)
Find the Reco Hit, which lies closest to the given RecoHit.
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 double CalculateDistance(const TVector3 &firstposition, const TVector3 &secondposition)
Calculate the distance of two given RecoHit positions.
Container of addresses for data Container used by BSEmcClusteringTask and passed to Clustering Proces...
std::string fNeighbouringRelationParName
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
std::string fClusterPropertiesParName
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
std::string fPositionParName
std::unique_ptr< BSEmcPositionAlgo > fPositionProcess
Interface to a datacontainer to be used in PandaROOT.
std::string fClusteringParName
Helper class to calculate the Energies of a cluster.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
Neigbouring Relations based on a list of detectorIds.
represents a reconstructed (splitted) emc cluster