View Javadoc

1   package org.lcsim.recon.tracking.vsegment.geom;
2   
3   import java.util.*;
4   
5   import org.lcsim.event.SimTrackerHit;
6   import org.lcsim.geometry.Detector;
7   
8   /**
9    * Any class that implement this interface defines virtual segmentation of either
10   * entire detector or some part of it.
11   * <p>
12   * Additional machinery is provided for chaining <tt>Segmenters</tt> - see
13   * {@link AbstractSegmenter} for details.
14   *
15   * @author D. Onoprienko
16   * @version $Id: Segmenter.java,v 1.1 2008/12/06 21:53:43 onoprien Exp $
17   */
18  public interface Segmenter {
19    
20    /**
21     * Returns a list of <tt>SensorsIDs</tt> corresponding to all virtual segments
22     * in the part of the detector handled by this <tt>Segmenter</tt>.
23     */
24    public List<Integer> getSensorIDs();
25    
26    /**
27     * Returns integer <tt>SensorID</tt> uniquely identifying a {@link Sensor} object
28     * within the whole detector, given the simulated hit. 
29     * Returns "-1" if the hit is outside of any sensor.
30     */
31    public int getSensorID(SimTrackerHit hit);
32    
33    /**
34     * Creates a new {@link Sensor} object given full <tt>SensorID</tt>.
35     */
36    public Sensor getSensor(int sensorID);
37    
38    /**
39     * Detector dependent initialization.
40     */
41    public void detectorChanged(Detector detector);
42    
43    /**
44     * Returns a list of <tt>Sensors</tt> that might contain hits that should be combined
45     * with hits in the <tt>Sensor</tt> whose <tt>sensorID</tt> is supplied as an argument
46     * to form stereo pairs. 
47     * If an empty list is returned, hits on this sensor will be ignored when forming
48     * crosses. If <tt>null</tt> is returned, 
49     * {@link org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitConverter} will, by
50     * default, create a single 3-dimensional hit at the center of the strip.
51     */
52    public List<Integer> getStereoPartners(int sensorID);
53    
54  }