StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
StFgtSeededClusterAlgo Class Reference

#include <StFgtSeededClusterAlgo.h>

Inheritance diagram for StFgtSeededClusterAlgo:
StFgtIClusterAlgo

Public Member Functions

virtual Int_t doClustering (const StFgtCollection &fgtCollection, StFgtStripCollection &strips, StFgtHitCollection &clusters)
 the main function, using a collection of strips tht fired to build clusters of neighbouring strips More...
 
virtual Int_t Init ()
 
virtual Int_t Finish ()
 
virtual void setJumpSingleStrip (Bool_t jump)
 
void setThreshold2AddStrip (Float_t v)
 
void setDb (StFgtDb *pDb)
 

Protected Member Functions

Int_t addStrips2Cluster (StFgtHit *clus, StFgtStrip **itSeed, StFgtStrip **itVecBegin, StFgtStrip **itVecEnd, Bool_t direction, Int_t sidedSize)
 migrated to A2C maker More...
 
Bool_t isSameCluster (StFgtStrip **itSeed, StFgtStrip **nextStrip)
 function to check if the strip belongs to the cluster. If it returns false we stop adding strips to the cluster
 
void FillClusterInfo (StFgtHit *cluster, StFgtStripCollection &allStrips)
 fill in cluster info like charge from the strips More...
 
void doStripFit (void *stripsT)
 
Float_t doClusterShapeFit (void *stripsT)
 
void setNumAdditionalStrips (Int_t numStrips)
 

Protected Attributes

Int_t numAdditionalStrips
 
StFgtDbmDb
 
int mMaxTimeBin
 

Detailed Description

This class implements the IClusterAlgo interface, in particular the doClustering function. The implemented algo (simple) agregates all strips that are above threshold to clusters. It respects the fact that at the inner radius only every second P-Strip exist. There is a cutoff on the maximum numbers of strips per cluster as a safety in case of noisy data.

Copy constructor and assignment operator omitted deliberately

Definition at line 85 of file StFgtSeededClusterAlgo.h.

Member Function Documentation

Int_t StFgtSeededClusterAlgo::addStrips2Cluster ( StFgtHit clus,
StFgtStrip **  itSeed,
StFgtStrip **  itVecBegin,
StFgtStrip **  itVecEnd,
Bool_t  direction,
Int_t  sidedSize 
)
protected

migrated to A2C maker

function to add strips to clusters, used recursively

doesn't matter if it is adjacent... dead strips are deleted, so the the next strip can be further away and there is no telling how far.

this only goes on for a maximum distance of two, and has to be same layer and even as well

if the last add was successful and the cluster is not too big, go to next one...

Definition at line 723 of file StFgtSeededClusterAlgo.cxx.

References isSameCluster().

Referenced by doClustering().

Int_t StFgtSeededClusterAlgo::doClustering ( const StFgtCollection fgtCollection,
StFgtStripCollection strips,
StFgtHitCollection clusters 
)
virtual

the main function, using a collection of strips tht fired to build clusters of neighbouring strips

main interface to the clustering.

run over all strips, find seeds, use those to start clusters

this code only ensures that we don't swallow other seeds, however it does not prevent that a close seed eats into the cluster we are building but since we check for rising strips, the next seed is a true seed of its own,

check for ringing around cluster

this might not be such a good idea since it is not taking into account geo ids. If we run zs, this will not work—>fixed

Implements StFgtIClusterAlgo.

Definition at line 854 of file StFgtSeededClusterAlgo.cxx.

References addStrips2Cluster(), FillClusterInfo(), and kStOk.

void StFgtSeededClusterAlgo::FillClusterInfo ( StFgtHit cluster,
StFgtStripCollection allStrips 
)
protected

fill in cluster info like charge from the strips

phi strip in r <20

begin fitting

let's keep it though...

cout <<"disc: " <<disc << endl;

Definition at line 312 of file StFgtSeededClusterAlgo.cxx.

Referenced by doClustering().


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