View Javadoc

1   package org.lcsim.recon.tracking.vsegment.hit;
2   
3   import java.util.List;
4   
5   import org.lcsim.recon.tracking.vsegment.geom.Sensor;
6   
7   /**
8    * Collection of <tt>DigiTrackerHits</tt> that cannot be unambigously separated.
9    * Clusters are independent in a sense that a track crossing the sensor only
10   * contributes to one cluster. But it is possible for several tracks to 
11   * contribute to one cluster.
12   * 
13   * 
14   * @author D.Onoprienko
15   * @version $Id: TrackerCluster.java,v 1.1 2008/12/06 21:53:44 onoprien Exp $
16   */
17  public interface TrackerCluster {
18    
19  // -- Access to DigiTrackerHits constituting the cluster :  --------------------
20  
21    /** Get list of <tt>DigiTrackerHits</tt> that compose the cluster, sorted by channel ID. */  
22    public List<DigiTrackerHit> getDigiHits();
23  
24  // -- Access to TrackerHits that have been produced from this cluster :  -------
25    
26    /** 
27     * Returns a list of TrackerHits produced from this cluster. 
28     * No new hits are created, and no existing hits are modified by a call to this method,
29     * it simply returns the list of hits that have been associated with this cluster through
30     * prior calls to {@link #addTrackerHit}.
31     */
32    public List<TrackerHit> getTrackerHits();
33    
34    /** Associate <tt>TrackerHit</tt> object with this cluster. */
35    public void addTrackerHit(TrackerHit hit);
36    
37    /** Remove <tt>TrackerHit</tt> object from the list of hits associated with this cluster. */
38    public void removeTrackerHit(TrackerHit hit);
39    
40  // -- Access to Sensor :  ------------------------------------------------------
41    
42    /** Returns the <tt>Sensor</tt> object associated with this cluster. */
43    public Sensor getSensor();
44    
45  // -- Convenience methods :  ---------------------------------------------------
46    
47    /** Returns combined signal of all <tt>DigiTrackerHits</tt> in the cluster. */
48    public double getSignal();
49    
50    /** Returns time associated with the cluster. */
51    public double getTime();
52  
53  }