PandaRoot
BSEmcCreateRecoHitProcess.h
Go to the documentation of this file.
1 #ifndef BSEMCCREATERECOHITPROCESS_HH
2 #define BSEMCCREATERECOHITPROCESS_HH
3 #include <memory>
4 #include <string>
5 #include <vector>
6 
7 #include "Rtypes.h"
8 #include "RtypesCore.h"
9 
10 #include "PndContainerI.h"
11 #include "PndParameterRegister.h"
12 #include "PndProcess.h"
13 
15 #include "BSEmcPositionAlgo.h"
16 #include "BSEmcXClMoments.h"
17 
18 class FairParGenericSet;
19 class BSEmcClusteringPar;
20 class BSEmcDigi;
21 class BSEmcCluster;
22 class BSEmcSubCluster;
23 class BSEmcRecoHit;
25 class TBuffer;
26 class TClass;
27 class TMemberInspector;
28 struct BSEmcClusteringData;
29 template <class T>
30 class PndContainerI;
31 template <class T>
33 
46  public:
49  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
50  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
51  virtual void RequestDataContainer(PndContainerRegister *t_register) /*override*/;
52  virtual void GetDataContainer(PndContainerRegister *t_register) /*override*/;
53  virtual void Process() /*override*/;
54  std::vector<BSEmcRecoHit *> CreateRecoHits(const std::vector<const BSEmcDigi *> &t_digiCont, const std::vector<const BSEmcCluster *> &t_clusterCont,
55  const std::vector<const BSEmcSubCluster *> &t_subclusterCont) const;
56 
57  void SetClusteringParName(const std::string &t_parName) { fClusteringParName = t_parName; }
58  void SetClusterPropertiesParName(const std::string &t_parName) { fClusterPropertiesParName = t_parName; }
59 
60  void SetPositionParName(const std::string &t_parName) { fPositionParName = t_parName; }
61  void SetNeighbouringRelationParName(const std::string &t_parName) { fNeighbouringRelationParName = t_parName; }
62 
63  void SetDigiBranchName(const TString &t_branchname) { fDigiBranchname = t_branchname; }
64  void SetClusterBranchName(const TString &t_branchname) { fClusterBranchname = t_branchname; }
65  void SetSubClusterBranchName(const TString &t_branchname) { fSubClusterBranchname = t_branchname; }
66  void SetRecoHitBranchName(const TString &t_branchname) { fRecoHitBranchname = t_branchname; }
67 
68  private:
69  std::string fClusteringParName{""};
70  std::string fClusterPropertiesParName{""};
71  std::string fPositionParName{""};
72  std::string fNeighbouringRelationParName{""};
73 
74  TString fDigiBranchname{""};
75  TString fClusterBranchname{""};
76  TString fSubClusterBranchname{""};
77  TString fRecoHitBranchname{""};
78 
79  PndContainerI<BSEmcDigi> *fDigiArray{nullptr};
80  PndContainerI<BSEmcCluster> *fClusterArray{nullptr};
81  PndContainerI<BSEmcSubCluster> *fSubClusterArray{nullptr};
82  PndMutableContainerI<BSEmcRecoHit> *fRecoHitArray{nullptr};
83  std::unique_ptr<BSEmcEnergyCalculationAlgo> fEnergyProcess{new BSEmcEnergyCalculationAlgo};
84  std::unique_ptr<BSEmcXClMoments> fMomentsProcess{new BSEmcXClMoments};
85  std::unique_ptr<BSEmcPositionAlgo> fPositionAlgo{new BSEmcPositionAlgo};
86  ClassDef(BSEmcCreateRecoHitProcess, 1);
87 };
88 
89 #endif /*BSEMCCREATERECOHITPROCESS_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.
Helper class to calculate the cluster position.
void SetPositionParName(const std::string &t_parName)
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
std::vector< BSEmcRecoHit * > CreateRecoHits(const std::vector< const BSEmcDigi *> &t_digiCont, const std::vector< const BSEmcCluster *> &t_clusterCont, const std::vector< const BSEmcSubCluster *> &t_subclusterCont) const
void SetClusterBranchName(const TString &t_branchname)
Creates for each BSEmcSubCluster a BSEmcRecoHit and fills it with additional information such as Zern...
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
Helper class to calculate Zernike and Lateral Moments.
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
void SetDigiBranchName(const TString &t_branchname)
void SetClusterPropertiesParName(const std::string &t_parName)
virtual void RequestDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and get the processes container requirements.
Interface to a datacontainer to be used in PandaROOT.
void SetRecoHitBranchName(const TString &t_branchname)
Helper class to calculate the Energies of a cluster.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
virtual void GetDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and set the processes container requirements.
represents a reconstructed (splitted) emc cluster
void SetNeighbouringRelationParName(const std::string &t_parName)
void SetSubClusterBranchName(const TString &t_branchname)
virtual ~BSEmcCreateRecoHitProcess()
void SetClusteringParName(const std::string &t_parName)
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...