PandaRoot
BSEmcLateralClusterSplittingProcess.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id:$
4 //
5 // Description:
6 // Class BSEmcExpClusterSplittingProcess.
7 // Concrete implementation of BSEmcAbsClusterSplitter which splits
8 // on the basis of exponential distance from the bump centroid.
9 //
10 // Environment:
11 // Software developed for the BaBar Detector at the SLAC B-Factory.
12 //
13 // Adapted for the PANDA experiment at GSI
14 //
15 // Author List:
16 // Phil Strother
17 //
18 // Copyright Information:
19 // Copyright (C) 1997 Imperial College
20 //
21 // Modified:
22 // M. Babai
23 //------------------------------------------------------------------------
24 
25 #ifndef BSEMCLATERALCLUSTERSPLITTINGPROCESS_HH
26 #define BSEMCLATERALCLUSTERSPLITTINGPROCESS_HH
27 
28 #include <map>
29 #include <memory>
30 #include <string>
31 #include <vector>
32 
33 #include "Rtypes.h"
34 #include "RtypesCore.h"
35 #include "TString.h"
36 #include "TVector3.h"
37 
40 
41 class BSEmcDigi;
42 class BSEmcCluster;
43 class BSEmcSubCluster;
44 class FairParGenericSet;
45 class BSEmcClusteringPar;
48 class TBuffer;
49 class TClass;
50 class TMemberInspector;
51 struct BSEmcClusteringData;
52 template <class T>
54 template <class T>
56 
67  public:
68  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
69  virtual void SetupParameters(const PndParameterRegister *t_paramRegister) /*override*/;
70  void SetLateralClusterSplittingParName(const std::string t_parName) { fLateralClusterSplittingParName = t_parName; }
71 
74 
75  private:
76  std::string fLateralClusterSplittingParName{""};
77  TArrayD fParArray1;
78  TArrayD fParArray2;
79  TArrayD fParArray3;
80  TArrayD fParArray4;
81 
82  private:
83  virtual Double_t
84  CalculateWeight(Int_t t_currentDigiDetID, Int_t t_currentMaxDetId, const TVector3 &t_currentdigisPosition, const std::map<Int_t, DigiLocationInfo> &t_centroidPositions) const;
85  Double_t LateralDevelopment(const Double_t t_totalEnergy, const TVector3 &t_currentDigiPos, const TVector3 &t_maxDigiPos, const TVector3 &t_showerCenter,
86  const Double_t t_moliereRadius) const;
87 
89 };
90 #endif /*BSEMCLATERALCLUSTERSPLITTINGPROCESS_HH*/
Container for clustering parameter.
splits clusters on the basis of exponential distance from the subCluster centroid ...
splits clusters on the basis of more complicated lateral shower developement parametrization distance...
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
Parameter for crystal positions.
void SetLateralClusterSplittingParName(const std::string t_parName)
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
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...
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
virtual void SetupParameters(const PndParameterRegister *t_paramRegister)
Fetch all parameters from the PndParameterRegister.
represents a reconstructed (splitted) emc cluster