PandaRoot
BSEmcClusterRadiusAlgo.h
Go to the documentation of this file.
1 #ifndef BSEMCCLUSTERRADIUSALGO_H
2 #define BSEMCCLUSTERRADIUSALGO_H
3 
4 #include "RtypesCore.h"
5 
17  public:
20 
21  Double_t GetModifiedRadius(Double_t t_clusradius, Int_t t_n = 1) const
22  {
23  if (t_n == 0) {
24  t_n = 1;
25  }
26  return t_clusradius + t_n * fSingleCrystalRadius;
27  }
28  // Add single crystal radius to precluster radius, because distance to crystal centre is taken and not its size.
29  // If this correction is not implemented, preclusters consisting of a single crystal will get a radius of 0 and will never be merged to another cluster.
30  // Added multiplier n to allow the use of the diameter, or manually increase the radius of a cluster
31  Double_t GetModifiedXRadius(Double_t xrad, Int_t n = 1) const { return xrad + n * fSingleCrystalRadius; }
32  Double_t GetModifiedYRadius(Double_t yrad, Int_t n = 1) const { return yrad + n * fSingleCrystalRadius; }
33 
34  void SetSingleCrystalRadius(Double_t t_radius) { fSingleCrystalRadius = t_radius; }
35  Double_t GetSingleCrystalRadius() const { return fSingleCrystalRadius; }
36 
37  private:
38  Double_t fSingleCrystalRadius{1.84}; // cm = single crystal radius = sqrt(2)*1.3 = 1.8385, 1.3 = 0.5*crystal size
39 };
40 
41 #endif /*BSEMCCLUSTERRADIUSALGO_H*/
Helper class to determine a precluster radius (used in MakePrecluster)
Double_t GetSingleCrystalRadius() const
Double_t GetModifiedXRadius(Double_t xrad, Int_t n=1) const
void SetSingleCrystalRadius(Double_t t_radius)
Double_t GetModifiedYRadius(Double_t yrad, Int_t n=1) const
Double_t GetModifiedRadius(Double_t t_clusradius, Int_t t_n=1) const