PandaRoot
BSEmcLateralClusterSplittingProcess.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //--------------------------------------------------------------------------
14 // File and Version Information:
15 // $Id:$
16 //
17 // Description:
18 // Class BSEmcExpClusterSplittingProcess.
19 // Concrete implementation of BSEmcAbsClusterSplitter which splits
20 // on the basis of exponential distance from the bump centroid.
21 //
22 // Environment:
23 // Software developed for the BaBar Detector at the SLAC B-Factory.
24 //
25 // Adapted for the PANDA experiment at GSI
26 //
27 // Author List:
28 // Phil Strother
29 //
30 // Copyright Information:
31 // Copyright (C) 1997 Imperial College
32 //
33 // Modified:
34 // M. Babai
35 //------------------------------------------------------------------------
36 
37 #ifndef BSEMCLATERALCLUSTERSPLITTINGPROCESS_HH
38 #define BSEMCLATERALCLUSTERSPLITTINGPROCESS_HH
39 
40 #include <map>
41 #include <memory>
42 #include <string>
43 #include <vector>
44 
45 #include "Rtypes.h"
46 #include "RtypesCore.h"
47 #include "TString.h"
48 #include "TVector3.h"
49 
52 
53 class BSEmcDigi;
54 class BSEmcCluster;
55 class BSEmcSubCluster;
56 class FairParGenericSet;
57 class BSEmcClusteringPar;
60 class TBuffer;
61 class TClass;
62 class TMemberInspector;
63 struct BSEmcClusteringData;
64 template <class T>
66 template <class T>
68 
79  public:
80  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
81  virtual void SetupParameters(const PndParameterRegister *t_paramRegister) /*override*/;
82  void SetLateralClusterSplittingParName(const std::string t_parName) { fLateralClusterSplittingParName = t_parName; }
83 
86 
87  private:
88  std::string fLateralClusterSplittingParName{""};
89  TArrayD fParArray1;
90  TArrayD fParArray2;
91  TArrayD fParArray3;
92  TArrayD fParArray4;
93 
94  private:
95  virtual Double_t
96  CalculateWeight(Int_t t_currentDigiDetID, Int_t t_currentMaxDetId, const TVector3 &t_currentdigisPosition, const std::map<Int_t, DigiLocationInfo> &t_centroidPositions) const;
97  Double_t LateralDevelopment(const Double_t t_totalEnergy, const TVector3 &t_currentDigiPos, const TVector3 &t_maxDigiPos, const TVector3 &t_showerCenter,
98  const Double_t t_moliereRadius) const;
99 
101 };
102 #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:66
Parameter for crystal positions.
void SetLateralClusterSplittingParName(const std::string t_parName)
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:59
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