1 package org.lcsim.recon.tracking.trflayer;
2
3 //import trfbase.Hit;
4 import org.lcsim.recon.tracking.trfbase.ETrack;
5 import org.lcsim.recon.tracking.trfbase.Surface;
6 import java.util.*;
7
8 /**
9 * A finder provides access to a list of clusters associated with
10 * a surface.
11 * It provides a method to return the complete list and a
12 * method to return clusters near a specified track at the surface.
13 *<p>
14 * This class is abstract; subclasses provide concrete implementations
15 * for specific surfaces and clusters.
16 *<p>
17 * Layers construct these cluster finders and include them in the layer
18 * status objects returned after layer propagation.
19 *
20 *@author Norman A. Graf
21 *@version 1.0
22 *
23 */
24 public abstract class ClusterFinder
25 {
26
27 //
28
29 /**
30 *Return the type name.
31 *
32 * @return String representation of class type
33 *Included for completeness with C++ version
34 */
35 public static String typeName()
36 { return "ClusterFinder"; }
37
38 //
39
40 /**
41 *Return the type.
42 *
43 * @return String representation of class type
44 *Included for completeness with C++ version
45 */
46 public static String staticType()
47 { return typeName(); }
48
49 // methods
50
51 //
52
53 /**
54 *constructor
55 *
56 */
57 public ClusterFinder()
58 {
59 }
60
61 //
62
63 /**
64 *Return the generic type of this class.
65 * Subclasses must not override.
66 *
67 * @return String representation of class type
68 *Included for completeness with C++ version
69 */
70 public String genericType()
71 { return staticType(); }
72
73 //
74
75 /**
76 *Return the surface.
77 *
78 * @return Surface for this cluster finder
79 */
80 public abstract Surface surface();
81
82 //
83
84 /**
85 *Return all the clusters associated with this surface.
86 *
87 * @return List of clusters this finder manages
88 */
89 public abstract List clusters();
90
91 //
92
93 /**
94 *Return all the clusters near the specified track at the surface.
95 *
96 * @param tre ETrack
97 * @return List of clusters this finder finds close to this track
98 */
99 public abstract List clusters( ETrack tre);
100
101
102 }