PandaRoot
BSEmcOutOfClusterCorrectionProcess.h
Go to the documentation of this file.
1 #ifndef BSEMCOUTOFCLUSTERCORRECTIONPROCESS_HH
2 #define BSEMCOUTOFCLUSTERCORRECTIONPROCESS_HH
3 
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 
14 class FairParGenericSet;
15 class BSEmcCluster;
16 class BSEmcRecoHit;
17 class BSEmcClusteringPar;
19 class TBuffer;
20 class TClass;
21 class TMemberInspector;
22 struct BSEmcClusteringData;
23 template <class T>
25 
35  public:
38  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
39  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
40  virtual void RequestDataContainer(PndContainerRegister *t_register) /*override*/;
41  virtual void GetDataContainer(PndContainerRegister *t_register) /*override*/;
42  virtual void Process() /*override*/;
43  void CorrectingRecoHitsForLossOfLowEnergyCluster(const std::vector<const BSEmcCluster *> &t_clusterCont, const std::vector<BSEmcRecoHit *> &t_recoHitsCont) const;
44  void SetClusteringParName(const std::string &t_parName) { fClusteringParName = t_parName; }
45 
46  void SetClusterBranchName(const TString &t_branchname) { fClusterBranchname = t_branchname; }
47  void SetRecoHitBranchName(const TString &t_branchname) { fRecoHitBranchname = t_branchname; }
48 
49  private:
50  void UpdateNearestRecoHitEnergies(const BSEmcCluster *t_cluster, std::vector<BSEmcRecoHit *> &t_nearestHits) const;
51  std::vector<BSEmcRecoHit *> FindClosestRecoHits(const BSEmcCluster *t_cluster, const std::vector<BSEmcRecoHit *> &t_recoHitsCont) const;
52 
53  private:
54  TString fClusterBranchname{""};
55  TString fRecoHitBranchname{""};
56 
57  PndContainerI<BSEmcCluster> *fClusterArray{nullptr};
58  PndMutableContainerI<BSEmcRecoHit> *fRecoHitArray{nullptr};
59  std::string fClusteringParName{""};
60 
61  Double_t fSearchConeAngle{0};
62  Double_t fMinClusterEnergy{0};
63  Double_t fClusterActiveTime{0};
65 };
66 
67 #endif /*BSEMCOUTOFCLUSTERCORRECTIONPROCESS_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.
void SetClusteringParName(const std::string &t_parName)
void CorrectingRecoHitsForLossOfLowEnergyCluster(const std::vector< const BSEmcCluster *> &t_clusterCont, const std::vector< BSEmcRecoHit *> &t_recoHitsCont) const
virtual void RequestDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and get the processes container requirements.
void SetRecoHitBranchName(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.
void SetClusterBranchName(const TString &t_branchname)
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
Each low energetic cluster the closest BSEmcRecoHits are searched for and its energy is split between...
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
Interface to a datacontainer to be used in PandaROOT.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.