39 #ifndef STAR_StPmdClustering
40 #define STAR_StPmdClustering
47 #include "StPmdAbsClustering.h"
48 #include "StThreeVectorF.hh"
62 Bool_t mOptRefineCluster;
69 static const Int_t NColumnMax = 96;;
70 static const Int_t NRowMax = 72;
72 static const Int_t CutOff = 7;
73 static const Int_t MaxHits = 15000;
74 static const Int_t MaxSuperSize = 2000;
75 static const Int_t MaxLocalPeaks = 700;
76 static const Int_t MaxClusterSize = 2000;
77 static const Int_t MaxNeighLP = 35;
80 static const Int_t debug = 0;
83 void CellXY(Int_t, Int_t, Float_t&, Float_t&);
86 Int_t CheckBoundary(Int_t, Int_t, Int_t);
105 Int_t MakeClusters(TClonesArray *);
108 Int_t MakeSuperClusters(Int_t,
StPmdModule*,TClonesArray*);
110 Int_t GetLocalPeaks(Int_t*,TList *);
112 Bool_t BreakSuperCluster(Int_t, Int_t*, TList * );
116 void Cell_eta_phi(Float_t, Float_t, Float_t &, Float_t &);
125 Int_t
crclust(Double_t , Double_t, Int_t, Int_t);
133 Double_t
Dist(Double_t, Double_t, Double_t, Double_t);
140 Int_t
CentroidCal(Int_t,Int_t,Double_t&,Double_t&,Double_t&,Double_t&,Double_t&,Double_t&,Double_t&,Double_t&,Double_t&);
141 void SetAdcCutOff(Double_t adccutoff);
143 void Cluster_Eta_Phi(Float_t, Float_t, Float_t,Float_t&, Float_t&);
146 void SetOptCalibrate(Bool_t a=kTRUE){mOptCalibrate = a;}
147 void SetOptSimulate(Bool_t a=kFALSE){mOptSimulate = a;}
148 void SetOptRefineCluster(Bool_t a=kFALSE){mOptRefineCluster = a;}
158 inline void StPmdClustering::SetAdcCutOff(Double_t adccutoff){
162 inline void StPmdClustering::SetVertexPos(
const StThreeVectorF& vertexPos){
163 mVertexPos = vertexPos;
Bool_t findPmdClusters2(StPmdDetector *)
for Pmd clusters
void printclust(Int_t, Int_t, StPmdCluster *)
distance between two clusters
StPmdHit * GetHit(StPmdDetector *, Int_t, Double_t, Double_t)
for getting hits of each cluster
void findPmdClusters(StPmdDetector *)
for Pmd clusters
void order(Int_t)
for ordering
StPmdClustering(StPmdDetector *pmd_det=0, StPmdDetector *cpv_det=0)
constructor
Int_t CentroidCal(Int_t, Int_t, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &)
for Calculating cluster properties, those clusters having more then two cells
void arrange(Int_t)
ordering
void refclust(StPmdDetector *, Int_t, Int_t, Int_t, StPmdClusterCollection *)
refined clustering
virtual ~StPmdClustering()
destructor
Int_t crclust(Double_t, Double_t, Int_t, Int_t)
crude clustering
Double_t Dist(Double_t, Double_t, Double_t, Double_t)