StFms  0.0.0
FMS software in the STAR framework
StFmsClusterFinder.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // $Log$
13 #ifndef STROOT_STFMSPOINTMAKER_STFMSCLUSTERFINDER_H_
14 #define STROOT_STFMSPOINTMAKER_STFMSCLUSTERFINDER_H_
15 
16 #include <list>
17 #include <memory> // For std::unique_ptr
18 
19 #include "Rtypes.h" // Provides ROOT ClassDef macro
20 
21 class TObjArray;
22 
23 namespace FMSCluster { // $NMSPC
24 class StFmsTowerCluster;
25 class StFmsTower;
26 // Typedef a list of cluster unique_ptrs for convenience.
27 // Hide it from CINT as it can't handle parsing the header :(
28 #ifndef __CINT__
29 typedef std::list<std::unique_ptr<StFmsTowerCluster>> ClusterList;
30 #endif // __CINT__
31 
37  public:
38  // Typedef StFmsTower pointer list for convenience
39  typedef std::list<FMSCluster::StFmsTower*> TowerList;
42  // Use default copy constructor and assignment operator.
50  void calculateClusterMoments(StFmsTowerCluster* cluster) const;
57  int categorise(StFmsTowerCluster* cluster);
64  void setMomentEnergyCutoff(float cutoff = 0.5) { mEnergyCutoff = cutoff; }
66  float momentEnergyCutoff() const { return mEnergyCutoff; }
67 #ifndef __CINT__ // Hide ClusterList from CINT
68 
81  int findClusters(TowerList* towers, ClusterList* clusters);
82 #endif // __CINT__
83 
84  private:
85  static const unsigned kMaxNClusters = 6;
86 #ifndef __CINT__ // Hide ClusterList from CINT
87 
94  unsigned locateClusterSeeds(TowerList* towers, TowerList* neighbors,
95  ClusterList* clusters) const;
111  unsigned associateTowersWithClusters(TowerList* neighbors,
112  ClusterList* clusters,
113  TObjArray* valleys) const;
125  unsigned associateValleyTowersWithClusters(TowerList* neighbors,
126  ClusterList* clusters,
127  TObjArray* valleys) const;
136  ClusterList* clusters) const;
145  ClusterList* clusters) const;
146 #endif // __CINT__
147  Float_t mEnergyCutoff;
148  Int_t mNClusts;
149  ClassDef(StFmsClusterFinder, 0)
150 }; // class StFmsClusterFinder
151 } // namespace FMSCluster
152 #endif // STROOT_STFMSPOINTMAKER_STFMSCLUSTERFINDER_H_
Float_t mEnergyCutoff
Tower energy cutoff for cluster moments.
unsigned associateResidualTowersWithClusters(TowerList *neighbors, ClusterList *clusters) const
unsigned locateClusterSeeds(TowerList *towers, TowerList *neighbors, ClusterList *clusters) const
int categorise(StFmsTowerCluster *cluster)
void associateSubThresholdTowersWithClusters(TowerList *towers, ClusterList *clusters) const
std::list< FMSCluster::StFmsTower * > TowerList
void setMomentEnergyCutoff(float cutoff=0.5)
unsigned associateTowersWithClusters(TowerList *neighbors, ClusterList *clusters, TObjArray *valleys) const
Int_t mNClusts
Counter for number of found clusters.
std::list< std::unique_ptr< StFmsTowerCluster > > ClusterList
unsigned associateValleyTowersWithClusters(TowerList *neighbors, ClusterList *clusters, TObjArray *valleys) const
void calculateClusterMoments(StFmsTowerCluster *cluster) const
int findClusters(TowerList *towers, ClusterList *clusters)
static const unsigned kMaxNClusters
We stop looking after this many.