StFms  0.0.0
FMS software in the STAR framework
FMSCluster::StFmsClusterFinder Class Reference

#include <StFmsClusterFinder.h>

Public Types

typedef std::list
< FMSCluster::StFmsTower * > 
TowerList
 

Public Member Functions

 StFmsClusterFinder ()
 
 ~StFmsClusterFinder ()
 
void calculateClusterMoments (StFmsTowerCluster *cluster) const
 
int categorise (StFmsTowerCluster *cluster)
 
void setMomentEnergyCutoff (float cutoff=0.5)
 
float momentEnergyCutoff () const
 
int findClusters (TowerList *towers, ClusterList *clusters)
 

Private Member Functions

unsigned locateClusterSeeds (TowerList *towers, TowerList *neighbors, ClusterList *clusters) const
 
unsigned associateTowersWithClusters (TowerList *neighbors, ClusterList *clusters, TObjArray *valleys) const
 
unsigned associateValleyTowersWithClusters (TowerList *neighbors, ClusterList *clusters, TObjArray *valleys) const
 
unsigned associateResidualTowersWithClusters (TowerList *neighbors, ClusterList *clusters) const
 
void associateSubThresholdTowersWithClusters (TowerList *towers, ClusterList *clusters) const
 

Private Attributes

Float_t mEnergyCutoff
 Tower energy cutoff for cluster moments. More...
 
Int_t mNClusts
 Counter for number of found clusters. More...
 

Static Private Attributes

static const unsigned kMaxNClusters = 6
 We stop looking after this many. More...
 

Detailed Description

Form clusters from a collection of FMS towers.

Generate a list of StFmsTowerCluster from a collection of StFmsTower.

Definition at line 36 of file StFmsClusterFinder.h.

Member Typedef Documentation

Constructor & Destructor Documentation

FMSCluster::StFmsClusterFinder::StFmsClusterFinder ( )

Constructor.

Definition at line 321 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

FMSCluster::StFmsClusterFinder::~StFmsClusterFinder ( )

Destructor

Definition at line 325 of file StFmsClusterFinder.cxx.

Member Function Documentation

unsigned FMSCluster::StFmsClusterFinder::associateResidualTowersWithClusters ( TowerList neighbors,
ClusterList clusters 
) const
private

Distribute leftover tower to clusters

These are towers that remain after the valley tower association.

Return the number of neighbors associated with clusters.

Definition at line 523 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

void FMSCluster::StFmsClusterFinder::associateSubThresholdTowersWithClusters ( TowerList towers,
ClusterList clusters 
) const
private

Add "zero" energy towers to the clusters

These low-energy towers were ignored in all prior clustering steps. They serve the purpose of preventing the creation of bogus peaks, where there is no energy deposited at the tower

Definition at line 550 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned FMSCluster::StFmsClusterFinder::associateTowersWithClusters ( TowerList neighbors,
ClusterList clusters,
TObjArray *  valleys 
) const
private

Associate towers with cluster seeds.

Go through a list of unassociated neighbor towers and try to associate each tower with a cluster.

  • If a neighbor can associate with only a single cluster, add it to that cluster and remove it from the neighbor list.
  • If a neighbor could associate with more than one cluster based on currently available information, remove it from the neighbor list and add it to the valley list. We will work out the association of the valley towers later.

Return the number of neighbors either associated with clusters or placed in the valley i.e. the number removed from the neighbor list.

Definition at line 466 of file StFmsClusterFinder.cxx.

Here is the caller graph for this function:

unsigned FMSCluster::StFmsClusterFinder::associateValleyTowersWithClusters ( TowerList neighbors,
ClusterList clusters,
TObjArray *  valleys 
) const
private

Associate valley towers with clusters

Valleys towers are those that were equidistant between seeds after the first round of association. Now that the seeds have some other towers associated with them, use a calculation of the cluster center (using all towers) to find the tower-cluster distance and associate each valley with its nearest cluster.

Return the number of valley neighbors moved to clusters.

Definition at line 500 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

void FMSCluster::StFmsClusterFinder::calculateClusterMoments ( StFmsTowerCluster cluster) const

Calculate moments (mean and sigma of tower (x, y) positions) for a cluster.

Also update the cluster with the current number of towers in it.

Definition at line 329 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

int FMSCluster::StFmsClusterFinder::categorise ( StFmsTowerCluster cluster)

Categorise a cluster based on its energy and tower distribution.

Set the cluster's category field and return that category. See EFmsClusterCategory in StEvent/StFmsCluster.h for valid categories.

Definition at line 338 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

int FMSCluster::StFmsClusterFinder::findClusters ( TowerList towers,
ClusterList clusters 
)

Find clusters from a collection of input towers.

Populate the cluster list with the found clusters. Arguments:

  • towers: input tower list. Note it may be modified (elements erased or reordered) so do not rely on its contents after calling findClusters().
  • clusters: output cluster list. Newly found clusters are appended to the list.

Return the number of found clusters.

Definition at line 368 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

unsigned FMSCluster::StFmsClusterFinder::locateClusterSeeds ( TowerList towers,
TowerList neighbors,
ClusterList clusters 
) const
private

Look for cluster seed towers.

These are the high towers around which the clusters will grow. Fill the cluster list with the found seeds, and the neighbor list with adjacent, non-seed towers that we will later assign to a cluster.

Definition at line 414 of file StFmsClusterFinder.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

float FMSCluster::StFmsClusterFinder::momentEnergyCutoff ( ) const
inline

Return energy cutoff on towers used when calculating cluster moments

Definition at line 66 of file StFmsClusterFinder.h.

void FMSCluster::StFmsClusterFinder::setMomentEnergyCutoff ( float  cutoff = 0.5)
inline

Set energy cutoff on towers used when calculating cluster moments.

Towers below this energy will not be included in the calculation of the cluster's position (mean and sigma x, y).

Definition at line 64 of file StFmsClusterFinder.h.

Here is the caller graph for this function:

Member Data Documentation

const unsigned FMSCluster::StFmsClusterFinder::kMaxNClusters = 6
staticprivate

We stop looking after this many.

Definition at line 85 of file StFmsClusterFinder.h.

Float_t FMSCluster::StFmsClusterFinder::mEnergyCutoff
private

Tower energy cutoff for cluster moments.

Definition at line 147 of file StFmsClusterFinder.h.

Int_t FMSCluster::StFmsClusterFinder::mNClusts
private

Counter for number of found clusters.

Definition at line 148 of file StFmsClusterFinder.h.


The documentation for this class was generated from the following files: