PandaRoot
BSEmcAddLinksToCluster.h
Go to the documentation of this file.
1 #ifndef BSEMCADDLINKSTOCLUSTER_HH
2 #define BSEMCADDLINKSTOCLUSTER_HH
3 
4 #include <string>
5 #include <vector>
6 
7 #include "Rtypes.h"
8 
9 #include "PndContainerI.h"
10 #include "PndParameterRegister.h"
11 #include "PndProcess.h"
12 
13 #include "BSEmcCluster.h"
14 
15 #include "BSEmcDigi.h"
16 
17 class BSEmcCluster;
18 class BSEmcDigi;
19 class BSEmcSubCluster;
21 class TBuffer;
22 class TClass;
23 class TMemberInspector;
24 struct BSEmcClusteringData;
25 template <class T>
27 template <class T>
29 
41  public:
43  virtual ~BSEmcAddLinksToCluster();
44 
45  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
46  virtual void RequestDataContainer(PndContainerRegister *t_register) /*override*/;
47  virtual void GetDataContainer(PndContainerRegister *t_register) /*override*/;
48  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
49  virtual void Process() /*override*/;
50 
51  void SetDigiBranchName(const TString &t_branchname) { fDigiBranchname = t_branchname; }
52  void SetClusterBranchName(const TString &t_branchname) { fClusterBranchname = t_branchname; }
53  void SetSubClusterBranchName(const TString &t_branchname) { fSubClusterBranchname = t_branchname; }
54 
55  private:
56  TString fDigiBranchname{""};
57  TString fClusterBranchname{""};
58  TString fSubClusterBranchname{""};
59 
60  template <class T>
61  void SetDigiLinksFor(const std::vector<T *> &t_cluster);
62  void SetClusterLinksFor(const std::vector<BSEmcSubCluster *> &t_subcluster);
63 
64  PndContainerI<BSEmcDigi> *fDigis{nullptr};
65  PndMutableContainerI<BSEmcCluster> *fCluster{nullptr};
66  PndMutableContainerI<BSEmcSubCluster> *fSubCluster{nullptr};
67  ClassDef(BSEmcAddLinksToCluster, 1);
68 };
69 
70 #endif /*BSEMCADDLINKSTOCLUSTER_HH*/
virtual void GetDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and set the processes container requirements.
Base Process class.
Definition: PndProcess.h:24
void SetSubClusterBranchName(const TString &t_branchname)
void SetDigiBranchName(const TString &t_branchname)
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
virtual void RequestDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and get the processes container requirements.
Helper Process to add links of BSEmcMCDeposits to clusters and subclusters.
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
void SetClusterBranchName(const TString &t_branchname)
Interface to a datacontainer to be used in PandaROOT.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
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...
represents a reconstructed (splitted) emc cluster
virtual ~BSEmcAddLinksToCluster()