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 #include "BSEmcClusteringData.h"
15 
16 class FairParGenericSet;
17 class BSEmcCluster;
18 class BSEmcRecoHit;
19 class BSEmcClusteringPar;
21 class TBuffer;
22 class TClass;
23 class TMemberInspector;
24 struct BSEmcClusteringData;
25 template <class T>
27 
36 class BSEmcOutOfClusterCorrectionProcess : public PndProcess<BSEmcClusteringData> {
37  public:
40  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
41  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
42  virtual void SetData(BSEmcClusteringData *t_pdata) /*override*/;
43  virtual void Process() /*override*/;
44  void CorrectingRecoHitsForLossOfLowEnergyCluster(const std::vector<const BSEmcCluster *> &t_clusterCont, const std::vector<BSEmcRecoHit *> &t_recoHitsCont) const;
45  void SetClusteringParName(const std::string &t_parName) { fClusteringParName = t_parName; }
46 
47  private:
48  void UpdateNearestRecoHitEnergies(const BSEmcCluster *t_cluster, std::vector<BSEmcRecoHit *> &t_nearestHits) const;
49  std::vector<BSEmcRecoHit *> FindClosestRecoHits(const BSEmcCluster *t_cluster, const std::vector<BSEmcRecoHit *> &t_recoHitsCont) const;
50 
51  private:
52  PndOutputContainerI<BSEmcCluster> *fClusterArray{nullptr};
53  PndOutputContainerI<BSEmcRecoHit> *fRecoHitArray{nullptr};
54  std::string fClusteringParName{""};
55 
56  Double_t fSearchConeAngle{0};
57  Double_t fMinClusterEnergy{0};
58  Double_t fClusterActiveTime{0};
60 };
61 
62 #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 SetData(BSEmcClusteringData *t_pdata)
Pass the data container ptrs to the process, and store pointers in class members. ...
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...
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
Container of addresses for data Container used by BSEmcClusteringTask and passed to Clustering Proces...
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.