Main Page | Class List | File List | Class Members | File Members | Related Pages

CSCHitList Class Reference

The hit list maintains lists of hits for a single chamber. More...

#include <CSCHitList.h>

List of all members.

Public Member Functions

 CSCHitList ()
 Constructor for intialization.
 ~CSCHitList ()
 Destructor.
void Print ()
 Prints the contents of the hit list for debugging.
int GetNumHits (int layer)
CSCHitGetHit (int layer, int hitNumber)
 Provides access to the hits.
int FindHits (CSCCluster *cluster, double signif=3.1)
 Finds hits in a cluster and adds them to the list.
void FindHits (CSCChamber *csc, double signif=3.1)
 Adds all hits in a chamber to the hit list.
void Clear ()
 Remove all hits in the hit list.
void FindMatch (int layer, int hitNum)
 Find a matching hit based on charge sum.
void FindMatch (CSCHit *hit)
 Find a matching hit based on charge sum.
CSCHitGetLargestHit (int layer)
 Search for the largest hit in a layer.


Detailed Description

The hit list maintains lists of hits for a single chamber.

The hits are grouped into 8 layers: 0-3 are the X layers, and 4-7 are the Y layers. The number of available hits is obtained by calling GetNumHits().

Filling the hit list is done after pedestal subtraction:

       //fill hitlist with cluster data
        for (chamber=0; chamber<event.GetNumChamber(); chamber++){
          CSCChamber* csc = event.GetChamber(chamber);
          cal.Calibrate(csc); // CalServer looks up pedestals
          hitList[chamber].FindHits (csc); // find hits
        } // next chamber

Note:
Since the hit finder finds small amplitude hits where no real hit is present, use only the largest hit per layer in cosmic test data with GetLargestHit().
Status:
95% complete and well tested.


Member Function Documentation

void CSCHitList::Clear  ) 
 

Remove all hits in the hit list.

Call this if you are reusing a hitlist object.

void CSCHitList::FindHits CSCChamber csc,
double  signif = 3.1
 

Adds all hits in a chamber to the hit list.

The list is cleared of old hits before new hits are added. The clusters should be calibrated first.

See also:
CslServer().
Parameters:
csc a pointer to a CSCChamber().
signif multiplies the noise of the channel to obtain the threshold. Defaults to 3.1.

int CSCHitList::FindHits CSCCluster cluster,
double  signif = 3.1
 

Finds hits in a cluster and adds them to the list.

This hitfinding algorithm looks at 3 consequtive strips: The center amplitude must be larger than a threshold, and larger than the left and right strips amplitude. The left or the right amplitude must be larger than the threshold. The default threshold is set to 3.1 times the noise of the channel. The clusters should be calibrated first.

See also:
CslServer().
Parameters:
cluster a pointer to the cluster that contains hits.
signif multiplies the noise of the channel to obtain the threshold. Defaults to 3.1.
Returns:
the number of hits found in that cluster.
Todo:
Study efficiency vs. threshold.

void CSCHitList::FindMatch CSCHit hit  ) 
 

Find a matching hit based on charge sum.

This is an alternative interface to FindMatch(int layer, int hitNum).

Parameters:
hit a pointer to the hit to be matched.

void CSCHitList::FindMatch int  layer,
int  hitNum
 

Find a matching hit based on charge sum.

Parameters:
layer is the layer number. If it is between 0 and 3, then the original hit is an X hit, and this method will search for the best match in the Y layer. If layer is between 4-7, then the original is in the Y layer and the corresponding X layer is searched for a match.
hitNum is the hit index in the hitlist of that layer, ranging from 0 to GetNumHits().
Returns:
nothing, the pointer to the matching hit is stored on the CSCHit() object that layer and hitNum refers to.
Todo:
use peaking time to improve matches.

CSCHit * CSCHitList::GetHit int  layer,
int  hitNumber
 

Provides access to the hits.

Parameters:
layer the detector layer: 0-3 are the X layers, and 4-7 are the Y layers.
hitNumber is the index of the hit array for the layer in the range 0 - GetNumHit().
Returns:
a pointer to the hit, or NULL if layer or hitNumber is out of range.

CSCHit * CSCHitList::GetLargestHit int  layer  ) 
 

Search for the largest hit in a layer.

Parameters:
layer the layer in which to seach, 0-3 for X and 4-7 for Y.
Returns:
a pointer to the hit that has the largest charge, based on the sum of center, left, and right amplitude.

int CSCHitList::GetNumHits int  layer  )  [inline]
 

Parameters:
layer is the layer number: 0-3 are the X layers, and 4-7 are the Y layers.
Returns:
the number of hits for this layer.


The documentation for this class was generated from the following files:
Generated on Wed Oct 29 10:35:18 2008 for CSCRead by  doxygen 1.3.9.1