Package org.jlab.rec.dc.cluster
Class ClusterFinder
java.lang.Object
org.jlab.rec.dc.cluster.ClusterFinder
A hit pruning algorithm to reject noise that gives a pattern of hits that are
continguous in the same layer The algorithm first puts the hits in arrays
according to their layer and wire number. Each such array contains all the
hits in the same layer. The algorithm then collects groups of contiguous hits
into a list of hits. The n-first and n-last hits in the list are kept, and
all other hits inbetween pruned. The value of n depends on the size of the
list. A loose clustering algorithm loops over all superlayers, in a sector
and finds groups of hits with contiguous wire index numbers. These clusters
(called clumps of hits) are delimited by layers with no hits at a particular
wire coordinate. These clusters are then refined using fits to their
respective wire indexes as a function of layer number to identify parallel
tracks or overlapping track candidates.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
fillHitArray
(List<Hit> hits, int rejectLayer) Fills 3-dimentional array of hits from input hitsfindClumps
(List<Hit> allhits, ClusterCleanerUtilities ct) FindHitBasedClusters
(List<Hit> allhits, ClusterCleanerUtilities ct, ClusterFitter cf, DCGeant4Factory DcDetector, int numTDCBankRows) FindTimeBasedClusters
(DataEvent event, List<FittedHit> fhits, ClusterFitter cf, ClusterCleanerUtilities ct, IndexedTable tab, DCGeant4Factory DcDetector, TimeToDistanceEstimator tde) Hit[][][]
getLayerEfficiencies
(List<FittedCluster> fclusters, List<Hit> allhits, ClusterCleanerUtilities ct, ClusterFitter cf, EvioDataEvent event) boolean
passHitSelection
(Hit hit) RecomposeClusters
(Map<Integer, ArrayList<FittedHit>> grpHits, DCGeant4Factory dcDetector, ClusterFitter cf) void
setHitArray
(Hit[][][] hitArray) Sets the hit array Array[total_nb_sectors*total_nb_superlayers][total_nb_wires][total_nb_layers]
-
Constructor Details
-
ClusterFinder
public ClusterFinder()
-
-
Method Details
-
getHitArray
- Returns:
- gets 3-dimentional array of hits as Array[total_nb_sectors*total_nb_superlayers][total_nb_wires][total_nb_layers]
-
setHitArray
Sets the hit array Array[total_nb_sectors*total_nb_superlayers][total_nb_wires][total_nb_layers]- Parameters:
hitArray
-
-
fillHitArray
Fills 3-dimentional array of hits from input hits- Parameters:
hits
- the unfitted hitrejectLayer
-
-
findClumps
- Parameters:
allhits
- the list of unfitted hitsct
-- Returns:
- List of clusters
-
FindHitBasedClusters
public List<FittedCluster> FindHitBasedClusters(List<Hit> allhits, ClusterCleanerUtilities ct, ClusterFitter cf, DCGeant4Factory DcDetector, int numTDCBankRows) - Parameters:
allhits
- the list of unfitted hitsct
-cf
-DcDetector
-numTDCBankRows
-- Returns:
- clusters of hits. Hit-based tracking linear fits to the wires are done to determine the clusters. The result is a fitted cluster
-
RecomposeClusters
public List<FittedCluster> RecomposeClusters(Map<Integer, ArrayList<FittedHit>> grpHits, DCGeant4Factory dcDetector, ClusterFitter cf) -
FindTimeBasedClusters
public List<FittedCluster> FindTimeBasedClusters(DataEvent event, List<FittedHit> fhits, ClusterFitter cf, ClusterCleanerUtilities ct, IndexedTable tab, DCGeant4Factory DcDetector, TimeToDistanceEstimator tde) -
passHitSelection
- Parameters:
hit
- the hit- Returns:
- a selection cut to pass the hit (for now pass all hits)
-
getLayerEfficiencies
public EvioDataBank getLayerEfficiencies(List<FittedCluster> fclusters, List<Hit> allhits, ClusterCleanerUtilities ct, ClusterFitter cf, EvioDataEvent event)
-